Discord.js Bot 欢迎会员,分配角色并向他们发送 DM
Discord.js Bot Welcomes Member, Assign a Role and send them a DM
因此,当新成员加入 Guild
[不和谐服务器] 时。机器人应该在某个频道(ID = 766716351007686696)中发送消息,向他们发送直接消息,然后添加角色(人豆)。这是我现在的代码,它不起作用,底部有错误
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
你的代码看起来没问题,问题是事件没有被触发。那是因为 discord 默认关闭了“特权意图”。
由于数据的敏感性,一些意图被定义为“特权”。这些意图是:
GUILD_PRESENCES
GUILD_MEMBERS
其中一个影响就是您正在经历的,即不工作 guildMemberAdd
事件。
好消息是您可以通过一个简单的步骤解决这个问题。只需在 discord developer portal 中启用 Privileged Gateway Intents,它应该可以正常工作。
如果您想阅读更多相关信息
修复:const channel = member.guild.channels.cache.get('CHANNEL ID')
您需要使用 member
而不是 message
。因为 guildMemberAdd
函数使用 member
.
client.on('guildMemberAdd', member => {
因此,当新成员加入 Guild
[不和谐服务器] 时。机器人应该在某个频道(ID = 766716351007686696)中发送消息,向他们发送直接消息,然后添加角色(人豆)。这是我现在的代码,它不起作用,底部有错误
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
你的代码看起来没问题,问题是事件没有被触发。那是因为 discord 默认关闭了“特权意图”。
由于数据的敏感性,一些意图被定义为“特权”。这些意图是:
GUILD_PRESENCES
GUILD_MEMBERS
其中一个影响就是您正在经历的,即不工作 guildMemberAdd
事件。
好消息是您可以通过一个简单的步骤解决这个问题。只需在 discord developer portal 中启用 Privileged Gateway Intents,它应该可以正常工作。
如果您想阅读更多相关信息
修复:const channel = member.guild.channels.cache.get('CHANNEL ID')
您需要使用 member
而不是 message
。因为 guildMemberAdd
函数使用 member
.
client.on('guildMemberAdd', member => {