Discord Bot开发:如何停止这个无限循环?

时间:2018-09-30 13:13:26

标签: javascript discord discord.js

此方法从random.dog调用并检索狗的URL,在发布链接以记录日志时,它停在一个位置,但是在下面使用message.channel.send时,它会无限循环调用,这是最好的方法为防止这种情况,只发送一个链接,然后停止直到再次被调用?

const animals = require('relevant-animals')

client.on("message", (message) => {                   
if(message.content.includes("dog")){ 
animals.dog().then(s => message.channel.send(s)) ; 
animals.dog().then(s => console.log(s)) ;
};

以下是控制台日志,在发送一个请求后,它发送一个链接 This is console log after one request it sends one link

在发送到频道之后,它只是不停地发布链接,而不仅仅是控制台中显示的链接

This is after send to channel

2 个答案:

答案 0 :(得分:6)

您的机器人正在回应自己,请排除他通过使用message.author.bot来回复自己。

if(message.author.bot === false) {
   // Do something if message doesn't come from a bot.
}

希望这会有所帮助!

答案 1 :(得分:0)

您可以这样做:

if(message.author.bot) return;

这不仅会阻止bot自身执行命令等,还会阻止任何bot使用您的bot。

由于它会检查消息的作者,如果bot属性返回true,则将return;

如果bot属性返回false,它将照常运行-仅适用于您和我以及其他许多用户!

您可以通过执行以下代码来尝试此操作:

console.log(message.author.bot);

它将记录消息作者的bot属性的布尔值。 You can read more about booleans (true/false) here.