为了账号安全,请及时绑定邮箱和手机立即绑定

Discord.js 机器人欢迎会员,分配角色并向他们发送 DM

Discord.js 机器人欢迎会员,分配角色并向他们发送 DM

红糖糍粑 2023-07-20 14:46:52
所以当新成员加入Guild[不和谐服务器]时。机器人应该在某个频道(ID = 766716351007686696)发送消息,向他们发送直接消息,然后添加角色(Human Bean)。这是我现在拥有的代码,它不起作用,底部有错误client.on('guildMemberAdd', member =>{    const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")    const channelwelcomeEmbed = new Discord.MessageEmbed()        .setColor('#ffd6d6')        .setTitle('Welcome!')        .setDescription(`${member} just joined the discord! Make sure to read #rules!`)        .setTimestamp();    channel.send(channelwelcomeEmbed);    const dmwelcomeEmbed = new Discord.MessageEmbed()        .setColor('#ffd6d6')        .setTitle('Welcome!')        .setDescription("For Help Using @Pro Bot#7903, Send The Command `!help` In Server")        .setTimestamp();    member.send(dmwelcomeEmbed);    let role6 = message.guild.roles.cache.find(role => role.name == "Human Bean"); //BASIC ROLE, EVERYONE GETS IT    if(!role6) return message.reply("Couldn't find that Role .")    member.roles.add(role6);});错误消息是;    const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")                    ^ReferenceError: message is not defined
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您的代码看起来不错,问题是未触发该事件。那是因为不和谐默认关闭了“特权意图”。

由于数据的敏感性,某些意图被定义为“特权”。这些意图是:

  • GUILD_PRESENCES

  • GUILD_MEMBERS

其影响之一就是您正在经历的情况,即不起作用的guildMemberAdd事件。

好消息是您只需一个简单的步骤即可解决此问题。只需在Discord 开发人员门户中启用特权网关意图,它就应该可以正常工作。

//img1.sycdn.imooc.com//64b8d8b90001ed7516840618.jpg

查看完整回答
反对 回复 2023-07-20
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

使固定:const channel = member.guild.channels.cache.get('CHANNEL ID')

您需要使用member而不是message. 因为guildMemberAdd函数使用member.

client.on('guildMemberAdd', member => {


查看完整回答
反对 回复 2023-07-20
  • 2 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信