gpt4 book ai didi

javascript - 有没有办法在 DiscordJS 中获得对旧消息的 react

转载 作者:行者123 更新时间:2023-12-04 15:58:17 25 4
gpt4 key购买 nike

我正在使用 DiscordJs V12.3.1,我正在尝试返回对旧消息使用react的用户列表。 (在机器人启动之前创建的)。

在我当前的实现中,我通过 ID 获取消息,映射所有反应,然后获取 react ,最后映射 react 中的用户。

let cacheChannel = msg.guild.channels.cache.get(channelID); 
if(cacheChannel){
cacheChannel.messages.fetch(messageID).then(reactionMessage => {
reactionMessage.reactions.cache.map(async function(reaction){
reaction.fetch().then(r => {
r.users.cache.map(item => {
if(!item.bot) console.log(item.id);
})
})
});
});
}

上述代码适用于自机器人启动以来做出的任何反应,但无法找到在机器人启动之前对消息使用react的用户。

有没有更好的方法来解决这个问题?

提前致谢。

编辑:根据 Lioness100 的评论更新了上述代码

EDIT2:设法让它与resolve()一起工作,请参阅下面的答案

最佳答案

没错,通过使用 .resolve() 而不是通过缓存获取或映射,设法让它工作。

var getReactedUsers = async(msg, channelID, messageID, emoji) => {
let cacheChannel = msg.guild.channels.cache.get(channelID);
if(cacheChannel){
cacheChannel.messages.fetch(messageID).then(reactionMessage => {
reactionMessage.reactions.resolve(emoji).users.fetch().then(userList => {
return userList.map((user) => user.id)
});
});
}
}

希望如果有人遇到同样的问题,这会有所帮助。 (注意:您必须通过表情符号,但您可以使用问题中或Lioness评论中发布的方法检索已 react 的表情符号列表)

感谢 Lioness100 的回复。

关于javascript - 有没有办法在 DiscordJS 中获得对旧消息的 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64241315/

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