【问题标题】:Discord.js, on guildMemberAdd doesn't run every timeguildMemberAdd 上的 Discord.js 并非每次都运行
【发布时间】:2021-02-02 10:57:52
【问题描述】:

我不明白这是怎么回事,有时这行得通,有时它不会增加几个小时的人并随机重新开始工作关于如何解决这个问题的任何想法?

编辑:GUILD Member Add 每次都会运行,只是不会每次都添加角色。

    const Discord = require('discord.js');
    const bot = new Discord.Client();
    const token = '';
    
    bot.on('ready', () => {
        console.log('Bot is online!'); 
    })
    
    bot.on("guildMemberAdd", member => {
    var role = member.guild.roles.cache.find(role => role.name === "Member");
    setTimeout(function () {
        member.roles.add(role);
        // see if they have a role
        if (member.roles.cache.find(r => r.name !== "Member")) {
            member.roles.add(role);
            console.log(member.id);
        }
    }, 3000);
});


bot.login(token);

【问题讨论】:

  • 请提供更多关于您的代码和您要解决的问题的描述。 “我不明白发生了什么有时这行得通”并没有告诉我们有关您的代码的任何信息。将自定义方法的名称放在标题中没有用,因为没有人知道那是什么。我建议更新您的标题,以反映您在 Discord 或 Javascript 方面的问题,因为这会吸引专家查看您的问题。
  • 可能是因为 Discord API 比较滞后。在添加角色之前尝试在成员添加事件中添加延迟
  • @ApocalypseCalculator 我更新了我的代码,使其工作得更好但不是很完美,你还有其他想法吗?

标签: javascript node.js discord.js


【解决方案1】:

我不知道是怎么回事,因为我的代码没有太大变化,但它一直在完美地工作。

const Discord = require('discord.js');
const bot = new Discord.Client();
const token = 'TOKEN_ID_HERE';

//checking to see if they subscribed
bot.on('ready', () => {
    console.log('Bot is online!');
})

bot.on('guildMemberAdd', member => {
    bot.channels.cache.get('CHANNEL_ID_HERE').send('<@' + member.id + '>');

    let role = member.guild.roles.cache.get("ROLE_ID_HERE");
    member.roles.add(role).then(console.log('DiscordID: ' + member.id));
});

bot.login(token);

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2012-07-13
    • 2021-06-02
    • 2021-10-02
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多