我在 discord.js 中创建了一个带有欢迎信息的 Discord 机器人,但每当有人加入该机器人时,它就会不断发送垃圾邮件。
这是我的代码
client.on("guildMemberAdd", async (newMember) => {
client.on("message", (msg) => {
// IMPORTANT NOTE: Make Sure To Use async and rename bot to client or whatever name you have for your bot events!
if (msg.author.bot) return;
const welcomeChannel = newMember.guild.channels.cache.find((channel) => channel.name.includes("welcome"));
welcomeChannel.send(`**${newMember.user.username}** had joined ${msg.guild.name}`);
});
});
答案 0 :(得分:3)
每当有人加入您的公会时,机器人都会为 message
事件创建一个侦听器。假设有 2 个人加入您的服务器;创建了 2 个 message
侦听器,当有人在任何频道中发送消息时,您的机器人将发送两次欢迎消息。每次有新成员加入时,这个数字都会增加。
您不应该在事件中监听事件。
在这种情况下,您根本不需要 message
事件,只需 guildMemberAdd
。
client.on('guildMemberAdd', member => {
const welcomeChannel = member.guild.channels.cache.find(channel => channel.name.includes('welcome'));
if (!welcomeChannel) return console.error('Welcome channel not found.');
welcomeChannel.send(`**${member.user.tag}** had joined ${member.guild.name}`).catch(console.error);
});