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

Discord.js v13下createReactionCollector的collect事件不触发问题求助

问题原因及解决方案

你的问题核心是缺失GUILD_MESSAGE_REACTIONS intent,discord.js v13对所有事件做了细粒度的intent划分,和服务器内消息反应相关的事件必须单独启用对应intent才能触发,这是collect事件无响应的最常见诱因。

具体排查修复步骤:

  • 1. 补充缺失的Intent
    修改客户端初始化代码,在intents数组中添加GUILD_MESSAGE_REACTIONS项:
const client = new Discord.Client({
 intents: ['GUILD_VOICE_STATES', 'GUILD_MESSAGES', 'GUILD_MEMBERS', 'GUILDS', 'GUILD_MESSAGE_REACTIONS']
});
  • 2. 检查开发者门户配置
    进入Discord开发者门户对应应用的Bot设置页,确认Message Content Intent等权限开关已经开启,部分权限需要单独申请才能生效。
  • 3. 优化过滤器逻辑(可选但推荐)
    你当前的过滤器直接返回true,会捕获所有反应事件包括机器人自身的操作,建议调整为仅响应触发分页的用户操作,避免逻辑异常:
const filter = (reaction:MessageReaction, user:User) => {
    return user.id === msg.author.id && emojiList.includes(reaction.emoji.name);
}
  • 4. 权限校验
    确认机器人在对应频道拥有添加反应、管理消息权限,避免权限不足导致操作被Discord接口拦截。

修改完成后重启服务即可正常触发collect事件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:15:03