You need to enable JavaScript to run this app. Discord bot触发用户消息关键词后意外重复发送回复问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Discord bot触发用户消息关键词后意外重复发送回复问题求助

问题原因

你的Bot陷入了无限触发循环:你设定的匹配关键词oranges同时出现在Bot的回复内容Yum! I love eating oranges!中,Bot自身发送的消息也会被message事件捕获,匹配到关键词后会再次发送回复,反复重复就形成了 spam。

解决方案

在消息处理逻辑的最开头增加判断条件,只要消息发送方是Bot账号就直接终止当前处理流程,不需要执行后续的关键词匹配。

修改后的核心代码如下:

s4d.client.on('message', (s4dmessage) => {
  // 过滤Bot自身发送的消息
  if (s4dmessage.author.bot) return;
  if (s4dmessage.content.includes('oranges')) {
    s4dmessage.channel.send('Yum! I love eating oranges!');
  }
});

额外说明

  • 如果你使用的是discord.js v13及以上版本,message事件已经被官方废弃,需要替换为messageCreate事件,避免后续出现兼容问题
  • 如果你需要保留响应其他Bot消息的能力,也可以把判断条件改为if (s4dmessage.author.id === s4d.client.user.id) return,仅过滤当前Bot自己发送的消息即可

内容的提问来源于stack exchange,提问作者clkhlum02

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 18:36:03