如何从特定消息中获取所有反应? [Discord.js]
How do I fetch all reactions from a specific message? [Discord.js]
所以,我想为我的机器人创建一个命令,它可以从给定的消息 ID 中获取所有反应并将这三个类别存储到数组中,对于每个反应:
- 反应的名称(例如:微笑:)
- 做出反应的用户(例如 RandomUser#4654、ILikePotatoes#1639)
- 以及有多少人对此表情符号做出了反应(例如计数:2)
我试过使用 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();
});
所以,我想为我的机器人创建一个命令,它可以从给定的消息 ID 中获取所有反应并将这三个类别存储到数组中,对于每个反应:
- 反应的名称(例如:微笑:)
- 做出反应的用户(例如 RandomUser#4654、ILikePotatoes#1639)
- 以及有多少人对此表情符号做出了反应(例如计数:2)
我试过使用 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();
});