DiscordJS V12 配置dispose:true后reactionCollector的remove事件仍无法触发
解决方案
移除reactionCollector配置中的
max: 1参数
你当前设置了收集器最多收集1次符合条件的反应,第一次collect事件触发后收集器就会自动终止,后续所有反应移除操作都不会被监听。如果需要同时监听反应添加和移除行为,删除该参数即可,若有收集次数限制需求,可调整为大于1的合理数值。初始化Client时开启部分结构配置
Discord.js v12默认只会触发完全缓存的消息、反应相关事件,若被移除的反应对应消息/反应本身不在本地缓存中,remove事件就无法触发。在客户端初始化代码中添加如下配置即可:
const client = new Discord.Client({ partials: ['MESSAGE', 'REACTION'] })
确认事件权限配置正常
如果是监听服务器内的消息反应,确保你的机器人账号已被授予读取消息历史权限,该权限是接收反应移除事件的必要条件;如果是监听私聊场景的反应,确保客户端未屏蔽私聊相关事件。验证触发场景符合过滤规则
只有移除的反应是✅、▶️两种之一时,才会命中你的reactionFilter触发remove事件,移除其他表情的操作不会被该收集器捕获。
内容的提问来源于stack exchange,提问作者Aquaphor
相关产品推荐
相关产品推荐

