Discord Bot被提及后重复回复问题求助
Discord Bot重复回复问题修复
你编写的提及触发回复代码出现了重复回复的问题(截图显示Bot连续发送多条"Hi"消息),核心问题有两个:
- 条件判断逻辑错误:原代码中
|| '<@!935849545789763585>'并非有效的比较逻辑,非空字符串在布尔判断中始终为真,导致所有消息都会触发回复,包括Bot自己发的内容。 - 未过滤Bot自身消息:Bot发送的"Hi"会触发
messageCreate事件,再次进入判断逻辑,形成循环回复。
修复后的代码:
client.on("messageCreate", (message) => { // 跳过Bot自身发送的消息,避免循环触发 if (message.author.bot) return; const botUserId = "935849545789763585"; // 正确判断消息是否为两种格式的Bot提及 const isBotMentioned = message.content === `<@${botUserId}>` || message.content === `<@!${botUserId}>`; if (isBotMentioned) { message.channel.send('Hi'); } });
内容的提问来源于stack exchange,提问作者LusciousORC
相关产品推荐
相关产品推荐

