如何从特定消息中获取所有反应? [Discord.js]

How do I fetch all reactions from a specific message? [Discord.js]

所以,我想为我的机器人创建一个命令,它可以从给定的消息 ID 中获取所有反应并将这三个类别存储到数组中,对于每个反应:

我试过使用 ReactionCollector,但它不适用于在调用事件之前添加的反应。我也尝试过使用一个名为 discord-fetch-all 的外部模块,但它所做的只是在我使用 [=13= 时发送 Promise { <Pending> }undefined ].

PS:我已经设置了一个命令处理程序,它以消息 ID 作为参数。

提前感谢您的帮助。

您可以通过以下方式获取您想要检查反应的特定消息:

const messageReacted = client.channels.cache.get('channelId').messages.fetch('messageId')

然后,您可以使用以下方式查看消息中的每个反应:

messageReacted.reactions.cache.forEach()

其中,您可以使用 reaction._emoji.name 获取表情符号名称,使用此反应的用户数量 reaction.count 以及对消息做出反应的所有用户 const usersWhoReacted = await reaction.users.fetch().

您的最终代码可能类似于:

const messageReacted = await client.channels.cache
  .get('channelId')
  .messages.fetch("messageId");

messageReacted.reactions.cache.forEach(async(reaction) => {
  const emojiName = reaction._emoji.name
  const emojiCount = reaction.count
  const reactionUsers = await reaction.users.fetch();
});