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

Discord.js中reaction collector不符合过滤规则仍触发如何解决?

问题根因

你代码里的createReactionCollector配置参数写错了,导致过滤器完全没生效。
Discord.js 的createReactionCollector方法的配置项中,指定过滤逻辑的字段名是固定的filter。你自定义的过滤函数变量名是filter2,直接按{filter2, time: 50000}传参后,配置对象里只有一个无效的filter2属性,没有识别到可用的过滤规则,所以所有在时间范围内的反应都会触发收集器。

修复方案

把配置项里的过滤函数对应到filter字段即可:

const filter2 = (reaction, user) => {
  return reaction.emoji.name === '👎' && user.id === message.author.id;
};

// 修正配置项的字段名
const collector = confirmedMessage.createReactionCollector({filter: filter2, time: 50000});
collector.on('collect', (reaction, user) => {
  console.log("PLEASE");
});

如果想简化代码,也可以直接把过滤函数的变量名改成filter,直接传{filter, time: 50000}就能正常生效。

内容的提问来源于stack exchange,提问作者tan shi yu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:39:05