为什么我的 discord bot 通过添加以下代码来发送垃圾邮件?
Why my discord bot spams messages by adding the following code?
我正在 discord.js
中为 Discord 编写一个基本的审核机器人。但是通过添加以下代码来回复“你好!”每当有人从列表中发送消息时,机器人就会发送大量“你好!”的垃圾邮件。频道中的消息。
client.on("message", async message =>{
if (message.content == "Hi" || message.content == "hi" || message.content == "hello" || message.content == "Hello" || message.content == "hi!" || message.content == "Hi!" || message.content == "Hello!" || message.content == "hello!")
{
message.channel.send(`Hello!`)
}
});
有人可以解释为什么会发生这种情况并提供解决方案吗?我试着在网上搜索,但无法正确地表达问题,所以我没有得到答案。
P.S.: 我还在学习 JavaScript 并且我正在 replit.com 中编写代码,如果这很重要的话!
正如 esqew 在他们的评论中指出的那样,您的机器人陷入了回复自己消息的事件循环中。处理此问题的一种简单方法是忽略来自所有机器人的消息,或仅忽略机器人自己的消息,如下所示。
client.on("message", async message => {
// Method A: Ignore all Bots
if(message.author.bot) return;
// Method B: Ignore self only
if(message.author.id == client.user.id) return;
// Insert rest of event code here, etc...
});
参见 User.bot
(Discord.js 文档)
我正在 discord.js
中为 Discord 编写一个基本的审核机器人。但是通过添加以下代码来回复“你好!”每当有人从列表中发送消息时,机器人就会发送大量“你好!”的垃圾邮件。频道中的消息。
client.on("message", async message =>{
if (message.content == "Hi" || message.content == "hi" || message.content == "hello" || message.content == "Hello" || message.content == "hi!" || message.content == "Hi!" || message.content == "Hello!" || message.content == "hello!")
{
message.channel.send(`Hello!`)
}
});
有人可以解释为什么会发生这种情况并提供解决方案吗?我试着在网上搜索,但无法正确地表达问题,所以我没有得到答案。
P.S.: 我还在学习 JavaScript 并且我正在 replit.com 中编写代码,如果这很重要的话!
正如 esqew 在他们的评论中指出的那样,您的机器人陷入了回复自己消息的事件循环中。处理此问题的一种简单方法是忽略来自所有机器人的消息,或仅忽略机器人自己的消息,如下所示。
client.on("message", async message => {
// Method A: Ignore all Bots
if(message.author.bot) return;
// Method B: Ignore self only
if(message.author.id == client.user.id) return;
// Insert rest of event code here, etc...
});
参见 User.bot
(Discord.js 文档)