Discord.js V(12) messageReactionAdd 监听器不工作

Posted

技术标签:

【中文标题】Discord.js V(12) messageReactionAdd 监听器不工作【英文标题】:Discord.js V(12) messageReactionAdd listener not working 【发布时间】:2020-09-26 03:18:10 【问题描述】:
client.on('messageReactionAdd', (reaction, user) => 
console.log('If u see this I actually work...');
);

这根本不起作用...我只尝试了一个简单的console.log,但它没有运行代码...我运行client.on('raw', console.log);只是为了检查它确实表明我做出了反应但仍然...为什么即使console.log实际上被触发了,它也不能工作???我查看了有关此的其他问题,每个人都说您需要缓存消息,但这没有意义,因为它甚至不能做一个简单的console.log('If u see this I actually work...');

编辑:这里是一个例子......因为我意识到我很不清楚我指的是什么......我是说当我点击并添加对消息的反应时......听众确实表明它发生在我运行client.on('raw', console.log); 时 下面的输出显示侦听器实际上确实触发了,但是事件侦听器范围内的代码没有像使用类似的东西那样执行 client.on('message', msg => );

这是client.on('raw', console.log);的输出

Object t: "MESSAGE_REACTION_ADD", s: 20, op: 0, d: Object events.js:315 0

正如我所提到的,它确实注意到我添加了一个反应,但是我范围内的代码……没有执行……我假设有一个简单的解决方法,我只是还没有找到,但任何帮助都是很棒。

【问题讨论】:

client.on("messageReactionAdd") 我相信只适用于缓存消息 是的,我知道它只适用于缓存的消息......但问题是我可能没有得到......当它被调用时,console.log 不起作用,因为它不是任何形式的消息,或者它是一个不同的问题......我遇到了获取输出的问题......当监听器激活它说它确实但是它没有执行监听器范围内的代码,这只是一个简单的 console.log 什么?监听器messageReactionAdd 不会在非缓存消息上激活,仅此而已。你是怎么得出它确实激活的结论的?因为client.on("raw") 是的,如果您运行原始文件,它将输出事件侦听器已按原样触发...但是,当我单击反应时,事件侦听器范围内的代码不会执行。 是的,你知道,它成功了,再次为你的愚蠢感到抱歉......你不必回复,因为这很烦人,但只是想说谢谢你让我意识到它需要已经被缓存,而不是缓存在实际的事件侦听器范围内。 【参考方案1】:

需要事先缓存消息...

channel.messages.fetch('message.id', boolean)
^^^^^^^                 ^^^^^^^^^^   ^^^^^^^

带有消息的频道 |味精ID |是否缓存

【讨论】:

以上是关于Discord.js V(12) messageReactionAdd 监听器不工作的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js v12.2.0 |根据反应添加角色

Discord.js v12 - 如何添加角色?

FS 事件 Message.js 在 Discord.js v12 中不起作用

Discord.js v12 清除命令

discord.js 中的音量命令

消息嵌入中的 Discord.js v12 图像