Discord Bot 开发:如何停止这个无限循环?
Discord Bot Development: How do I stop this infinite loop?
这会从 random.dog 调用并检索一条狗 url,当发布 link 进行记录时,它会停在一个位置,但是当使用下面的 message.channel.send 时,它会运行一个调用的无限循环,防止这种情况的最佳方法是什么,并且只发送一个 link 然后停止直到再次调用它?
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)) ;
};
下面是发送一个请求后的控制台日志 link
下面是发送到频道后,它只是不停地发布 link 而不是控制台中显示的那个
您的机器人正在响应自己。您可以使用 message.author.bot
.
将其排除在回复自身之外
if(!message.author.bot) {
// Do something if message doesn't come from a bot.
}
我希望这段代码能帮助你走上正确的道路,祝你好运!
你可以这样做:
if(message.author.bot) return;
这不仅会阻止机器人在其自身上执行命令等,还会阻止任何机器人使用您的机器人。
因为如果 bot 属性 returns true 它会检查消息的作者,它会 return;
.
如果 bot 属性 returns false 它将正常工作 - 仅适用于像你我这样的用户,以及许多其他用户!
您可以通过执行以下代码来尝试:
console.log(message.author.bot);
它将记录消息作者的 bot 属性 的布尔值。
You can read more about booleans (true/false) here.
这会从 random.dog 调用并检索一条狗 url,当发布 link 进行记录时,它会停在一个位置,但是当使用下面的 message.channel.send 时,它会运行一个调用的无限循环,防止这种情况的最佳方法是什么,并且只发送一个 link 然后停止直到再次调用它?
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)) ;
};
下面是发送一个请求后的控制台日志 link
下面是发送到频道后,它只是不停地发布 link 而不是控制台中显示的那个
您的机器人正在响应自己。您可以使用 message.author.bot
.
if(!message.author.bot) {
// Do something if message doesn't come from a bot.
}
我希望这段代码能帮助你走上正确的道路,祝你好运!
你可以这样做:
if(message.author.bot) return;
这不仅会阻止机器人在其自身上执行命令等,还会阻止任何机器人使用您的机器人。
因为如果 bot 属性 returns true 它会检查消息的作者,它会 return;
.
如果 bot 属性 returns false 它将正常工作 - 仅适用于像你我这样的用户,以及许多其他用户!
您可以通过执行以下代码来尝试:
console.log(message.author.bot);
它将记录消息作者的 bot 属性 的布尔值。 You can read more about booleans (true/false) here.