繁体   English   中英

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

[英]Discord Bot Development: How do I stop this infinite loop?

这会调用并从 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)) ;
};

下面是一个请求后的控制台日志,它发送一个链接这是一个请求后的控制台日志,它发送一个链接

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

这是发送到频道之后

您的机器人正在响应自身。 您可以使用message.author.bot排除它以回复自身。

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

希望这会有所帮助!

你可以这样做:

if(message.author.bot) return;

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

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

如果 bot 属性返回 false,它将照常工作 - 仅适用于像你我这样的用户,以及许多其他人!

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

console.log(message.author.bot);

它将记录消息作者的 bot 属性的布尔值。 您可以在此处阅读有关布尔值(true/false) 的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM