此方法从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)) ;
};
在发送到频道之后,它只是不停地发布链接,而不仅仅是控制台中显示的链接
答案 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.