You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js开发中机器人统计自身添加的表情反应问题如何解决

问题原因

你代码中的机器人过滤逻辑完全没有生效,问题出在if (user.bot);这一行末尾多余的分号:JavaScript中分号代表单条语句结束,这就导致你写的判断逻辑变成了空语句,不管触发反应的是不是机器人账号,后续代码都会正常执行,最终出现统计自身反应的问题。
你之前的旧项目中应该没有这个多余分号,复制代码过程中误加了格式字符,才会出现旧功能正常、新项目报错的情况。

修复方案
  • 删掉if (user.bot)后的分号,补充return逻辑,修改为:
if (user.bot) return;
  • 调整后的完整事件开头参考:
client.on('messageReactionAdd', async (reaction, user) =>  { 
   //bot is counting its own reaction
   if (reaction.message.partial) await reaction.message.fetch();

   if (reaction.partial) await reaction.fetch();
   // 正确过滤所有机器人触发的反应
   if (user.bot) return;
   if(!reaction.message.guild) return;  
   
   if (reaction.message.channel.id === channel) {
      if (reaction.emoji.name === reactone) {
         // 后续业务逻辑
注意事项

JavaScript中if、for等流程控制语句后如果直接跟分号,会被判定为语句体为空,后续所有代码都会脱离控制逻辑执行,写代码时要注意规避这类语法陷阱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:09:02