javascript - 即使在获取时,机器人也不会检测到自己的反应
问题描述
如果用户单击第二个反应,我的不和谐机器人应该删除最后一个反应。我尝试获取消息、反应和反应用户。无论我做什么,如果我的机器人在反应后重新启动,reaction.me
总是错误的。我怎样才能解决这个问题?
这是我当前的代码:
//trying to detect a 2nd user reaction gives expected result
console.log('Reaction.me: ', reaction.me) //always false no matter how many times I click the reaction
if(user.bot) return;
if(reaction.partial) await reaction.fetch().catch(console.log)
if(reaction.message.partial) await reaction.message.fetch().catch(console.log);
await reaction.users.fetch()
await reaction.message.reactions.cache.find(r => r.emoji.name === (reaction.emoji.name === '⬆️') ? '⬇️' : '⬆️').users.fetch()
if(!reaction.me) return; //always returns early here
注意:经过进一步测试,似乎在缓存中reaction.me
找到了客户端用户,但仍然存在false
. 它确实解决了我的问题,但我想了解为什么我有这个问题reaction.me
。
解决方案
推荐阅读
- c# - 如何使用反射在泛型参数中传递类型?
- github - 如何导航页面的 GitHub 存储库?
- php - PHP - 最大的三重产品解决方案
- spring-integration - 使用 Java DSL 的消息传递网关的回复通道
- mongodb - 如何在没有 objectid 的情况下获得 mongodb 执行结果?
- sql - 在 Oracle 中用 JOIN 替换 IN 子句
- php - 为什么 URL 不能使用 XAMPP 转到其他文件夹目录?
- flutter - 如何解决移动应用程序中的“被 CORS 策略阻止”?不是网络应用程序
- angular - ViewEncapsulation 中的 None 选项不起作用
- arrays - 子进程无法访问 MPI 中的数组