gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 04:31:06 26 4
gpt4 key购买 nike

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

  • react 的名称(例如:smile:)
  • 使用react的用户(例如 RandomUser#4654、ILikePotatoes#1639)
  • 以及有多少人对此表情符号做出了 react (例如计数:2)

我试过使用 ReactionCollector,但它不适用于在调用事件之前添加的 react 。我也尝试过使用名为 discord-fetch-all 的外部模块,但它所做的只是发送 Promise { <Pending> }undefined当我使用 .then() .

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

预先感谢您的帮助。

最佳答案

您可以使用以下方式获取您想要检查 react 的特定消息:

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

然后,您可以使用 forEach

遍历消息缓存 react 中的每个 react

然后,在.forEach中,可以通过reaction._emoji.name获取emoji名称,通过使用该reaction的用户数reaction.count 以及所有通过获取消息对消息使用react的用户: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();
});

关于discord.js - 如何从特定消息中获取所有反应? [Discord.js],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71901155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com