【发布时间】:2020-08-02 09:12:30
【问题描述】:
我编写了一个 12.0.2 版本的 discord.js 机器人,一些功能已经运行了一段时间,但现在无法正常工作,而且似乎与空缓存有关,但我无法弄清楚如何解决它。
这里是场景:
我让我的机器人每周在服务器上发布一条消息,而公会成员有一周的时间对此消息做出反应。在本周末,我想分析对机器人的反应以决定做什么(我不能让机器人 24/7 运行以等待反应)。
这是我的问题:
在获取此特定消息后,到目前为止我所做的是
msg.reactions.resolve('✅').users.fetch().then(somestuff),但几周后它停止运行,现在抛出(node:2336) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'users' of null。
我已经通过一些调试步骤发现msg.reactions.cache 是空的,因此我认为问题出在此处,但我找不到如何填充它。
这是msg.reactions 包含的内容:
ReactionManager {
cacheType: [Function: Collection],
cache: Collection [Map] {},
message: Message {
details_about_the_message_that_confirm_it_is_the_desired_one_that_have_been_reacted_to
}
}
请问有人知道如何解决这个问题吗?任何帮助将不胜感激,谢谢!
【问题讨论】:
-
您是否尝试过调试从 Discord API 返回的内容?我假设您正在获取消息(例如
channel.messages.fetch(id)),因此您可以看到data.reactions在 this line 中的内容。 -
@cherryblossom 您好,很抱歉您的回答和我的回答之间有很长的时间!我已经编辑了我的问题以添加有关
data.reactions的详细信息 -
我意识到我将表情符号解析为反应是错误的;这应该仍然有效,因为 Discord.js 使用表情符号名称(实际的 Unicode 表情符号)或自定义表情符号的 ID。我已经删除了我的错误答案,对此感到抱歉。
-
没什么坏处,别担心。
标签: discord.js