【问题标题】:guildMemberAdd event not working even with intents enabled. (discord.js)即使启用了意图,guildMemberAdd 事件也不起作用。 (discord.js)
【发布时间】:2023-03-14 07:10:01
【问题描述】:

我正在尝试在我的 discord 机器人上设置欢迎消息功能,但无论我做什么,该机器人似乎都无法使用 guildMemberAdd。我知道新的更新,并且按照建议,我已经打开了Private Giveaway Intents 下的两个选项。但它仍然不起作用。这是我的代码:

client.on('guildMemberAdd', member => {
    const emb = new MessageEmbed()
          .setColor('#FFBCC9')
          .setTitle("new member")
          .setDescription("welcome to the server!")
    member.guild.channels.get('780902470657376298').send(emb);
});

我也在网上找到了一个建议使用这个的答案:

const { Client, Intents } = require("discord.js");

const client = new Discord.Client({ ws: { intents: new Discord.Intents(Discord.Intents.ALL) }});

但无论我怎么写,我的机器人都不会上线,除非我使用 const client = new Discord.Client(); 括号中没有任何内容。

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    随着 v12 的推出,为了获得完整的频道列表,您只能在服务器中获取缓存的频道。因此为什么你应该改变这一行:

    member.guild.channels.get('780902470657376298').send(emb);
    

    到:

    member.guild.channels.cache.get('780902470657376298').send(emb);
    

    【讨论】:

      【解决方案2】:

      您传入的意图参数错误。这是正确的做法。

      
      const { Client, Intents } = require("discord.js");
      
      const client = new Discord.Client({ ws: { intents: ['GUILDS', 'GUILD_MESSAGES', 'GUILD_MEMBERS', 'GUILD_PRESENCES'] } });
      

      如果你使用这个,guildMemberAdd 事件将会发出。

      确保您在开发者门户中开启了 Intent。如图所示https://i.imgur.com/WfBLtXY.png

      【讨论】:

        猜你喜欢
        • 2022-06-25
        • 2021-03-01
        • 1970-01-01
        • 2022-01-09
        • 2020-04-17
        • 2011-10-30
        • 2021-09-04
        相关资源
        最近更新 更多