Discord bot重启后reaction.me始终为false 无法检测自身反应如何解决
Discord bot
reaction.me重启后返回false的问题原因及修复 异常根本原因
reaction.me是discord.js库提供的本地缓存标记字段,仅当bot在当前运行周期内主动调用接口添加对应反应时,才会被自动设为true。它不属于Discord官方接口返回的原生字段,也不会随你主动拉取反应数据、拉取反应用户列表的操作自动更新。- bot重启后,所有本地缓存的
me标记会被全部清空,即便你后续拉取了反应的完整用户列表、已经能在缓存中找到bot自身的ID,库也不会自动更新reaction.me的取值,因此会一直返回false。
修复方案
不需要依赖reaction.me做判断,直接通过拉取到的反应用户列表校验bot自身ID是否存在即可,示例代码:
// 原有逻辑:if(!reaction.me) return; 替换为如下代码 if (!reaction.users.cache.has(client.user.id)) return;
内容的提问来源于stack exchange,提问作者MrMythical
相关产品推荐
相关产品推荐

