【发布时间】:2021-04-24 16:53:46
【问题描述】:
我的代码中有一个 MessageReactionRemoveEvent,它会在反应被删除时触发。
但是,我也让我的机器人执行一些自动反应删除(删除用户的反应)。
我想防止在机器人删除反应时触发MessageReactionRemoveEvent。
我的防止MessageReactionRemoveEvent被机器人触发的代码:
if (event.getMember().getUser().equals(event.getJDA().getSelfUser())) return;
但MessageReactionRemoveEvent 中的 getUser() 方法总是返回做出反应的用户的 ID,而不是机器人的 ID。
我的问题是如何检测机器人是否删除了某个反应?
【问题讨论】:
-
为什么不能只使用 User#isBot?
-
这是因为MessageReactionRemoveEvent总是返回做出反应的用户而不是移除反应的用户。使用 isBot() 总是会出错。
-
我认为不和谐不会将其发送给机器人。您可能需要自己缓存反应。
-
任何我可以参考的来源?感谢您的帮助。
-
我的错。我与缓存混淆了一些东西。您可以尝试使用审核日志。
标签: java discord discord-jda