discord.js机器人回复自己 – 防止发生这种情况
我目前正在编写我的第一个不和谐的机器人,而且他们已经可以播放YouTube音乐了! :D但是我遇到了一个问题,看起来没有任何帮助,或者我太盲目了¯_(ツ)_ /嗯,这是问题所在:
if (message.content.includes("Good Job") || message.content.includes("good job")) { message.channel.sendMessage("Good Job everyone :smirk:"); }
正如你所看到的,如果有人input“好工作”(这只是一个例子),那么机器人会回答“干得好每个人:傻笑:),但垃圾邮件将开始:机器人读取自己的消息,并回复。我怎样才能防止机器人回答自己?:/欣赏我得到的每一个帮助!
在消息事件中使用这个:
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