Javascript Discord bot仍对一个事件多次应答
已经找到了,但是没有答案:C 所以我的问题是一样的,使用Discord.js lib,这是我的代码:Javascript Discord bot仍对一个事件多次应答,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,已经找到了,但是没有答案:C 所以我的问题是一样的,使用Discord.js lib,这是我的代码: client.on('message', msg => { var splittedMessage = msg.content.split("#"); if (msg.channel.type == "dm") { if (msg.content === "booya") { msg.channel.send('Hello
client.on('message', msg => {
var splittedMessage = msg.content.split("#");
if (msg.channel.type == "dm") {
if (msg.content === "booya") {
msg.channel.send('Hello there, ' + msg.author.username)
.then(msg => console.log('Sent #' + msg.id + ': ' + msg.content))
.catch(console.error);
return
} else {
msg.channel.send('No query found')
.then(msg => console.log('Sent #' + msg.id + ': ' + msg.content))
.catch(console.error);
return
}
}
});
结果如下:在所有消息上触发事件
消息
,即使是bot发送的消息:
在创建消息时发出
因此,您通过发送消息不断触发事件
解决方案是,如果作者与bot本身不同,则始终检查作者(bot用户属性为
bot.user
:)首先,如果使用Visual Studio代码,则可以运行同一程序/bot的多个实例。
Visual Studio中的终端代码:因此,每次编辑并启动脚本时,它都会创建一个“新”终端(即另一个实例)。这些实例的位置:
然后按下所有实例上的循环按钮(下拉菜单旁边)。然后再次启动脚本-应该没问题。是否有可能对bot自身发送的消息调用
client.on('message')
?您是否尝试过console.log(message)
查看发生了什么事?@AKX例如,此代码只运行了一次:请不要在多个问题中添加相同的答案。回答最好的一个,并将其余的标记为重复项。看见