discord.js机器人回复自己 – 防止发生这种情况

我目前正在编写我的第一个不和谐机器人,而且他们已经可以播放YouTube音乐了! :D但是我遇到了一个问题,看起来没有任何帮助,或者我太盲目了¯_(ツ)_ /嗯,这是问题所在:

if (message.content.includes("Good Job") || message.content.includes("good job")) { message.channel.sendMessage("Good Job everyone :smirk:"); } 

正如你所看到的,如果有人input“好工作”(这只是一个例子),那么机器人会回答“干得好每个人:傻笑:),但垃圾邮件将开始:机器人读取自己的消息,并回复。我怎样才能防止机器人回答自己?:/欣赏我得到的每一个帮助!

       

网上收集的解决方案 "discord.js机器人回复自己 – 防止发生这种情况"

在消息事件中使用这个:

 if (message.author.bot) return; 

更多信息: https : //anidiotsguide.gitbooks.io/discord-js-bot-guide/coding-guides/a-basic-command-handler.html

你的机器人回答自己的原因是因为你放在哪里:

if(message.content.includes(“Good Job”)|| message.content.includes(“good job”))

基本上,如果一段文字中包含 “Good Job”或“good job”这样的话,就可以查看聊天内容。 当你的机器人发送:

message.channel.sendMessage(“Good Job everyone:smirk:”);

作为回答,它创build了一个循环,因为该消息包含 “Good Job” 这个词 ,基本上一次又一次地运行代码。

当然,解决这个问题最简单的方法是让你改变它给出的答案,不要包含Good Job这个词,但是有更好的解决scheme来确保它不会发生在你可能做的所有命令上。

正如@Jörmungandr所说,在消息下的事件包括:

如果(message.author.bot)返回;

以确保它不会发生。 它基本上检查消息的作者是否是一个机器人,如果是,它会忽略它。

discord.js