首页 > 解决方案 > Bot 没有在听 guildMemberAdd

问题描述

我刚刚注册,因为有些事情真的让我很困扰:我有以下代码:

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('guildMemberAdd', (member) => {
    console.log('New member.')
    const welcomeEmbed = new Discord.MessageEmbed()
    .setImage(member.user.avatarURL())
    .setColor('#e9fa2a')
    .setAuthor("Mangoly Assistant")
    .setTitle("New member in server")
    .setDescription('Welcome <@${member.id}> to the server! If you are new, please be sure to check out or rules channel and some useful links. We are glad to be having you here, everyone wave hello! :wave:')
    .setFooter('Created by kostis;#4464. || Mangoly Assistant')
    client.channels.cache.get('825130442197434418').send(welcomeEmbed)
});

client.once('ready', () => {
    console.log('Bot is ready')
})

client.login(nice try);

出于某种原因,当我离开并重新加入服务器时,嵌入根本没有发送到频道。我在控制台中没有错误。关于可能出了什么问题的任何想法?谢谢。:)

标签: javascriptdiscorddiscord.jsbots

解决方案


邀请机器人时,您需要启用“服务器成员意图”。转到 Discord Developer Portal > Bot > 滚动到底部 > 确保检查了服务器成员的意图 服务器成员意图框已选中

您还应该能够在您的代码中手动启用它,但不知道该怎么做。我认为是这样的:

//Client declaration
const client = new Discord.Client({
ws: {
intents: ['GUILD_MEMBERS']
}
})

另外,快速的事情:要在字符串中使用 ${variableHere} ,它必须是带有反引号( ` )的字符串,如下所示:

var a = 'abc';
var b = '${a}d' //returns ${a}d
var c = `${a}d` //returns abcs

推荐阅读