列出对特定消息做出反应的人

Posted

技术标签:

【中文标题】列出对特定消息做出反应的人【英文标题】:Make a list of people who reacted a specific message 【发布时间】:2021-08-14 06:51:57 【问题描述】:

是否可以列出对不和谐的特定消息做出反应的人?

ID du 消息: '315274607072378891'

频道: '846414975156092979'

反应:

代码会在这里执行:

bot.on("ready", async () => 


结果:

Reaction_users: [
id_user1,
id_user2,
...]

提前感谢您提供的帮助。

【问题讨论】:

【参考方案1】:

非常感谢您的帮助,非常好。 问题没有解决。这是表格:

users: ReactionUserManager 
    cacheType: [class Collection extends Collection],
    cache: Collection(0) [Map] ,
    reaction: [Circular *2]
,
let reactions = message.reactions.cache.get(EMOJI).users.cache.filter(reaction => reaction.users.id);

console.log(reactions)

结果:集合(0) [地图]

【讨论】:

给出的代码与我上面给你的解决方案不匹配【参考方案2】:

首先你需要先获取消息然后你需要从消息中获取反应

解决方案:

bot.on("ready", async () => 
   let channel = bot.channels.cache.get('846414975156092979');
   let message = channel.fetch('315274607072378891');
   let reactions = messsage.reactions.cache.filter(reaction => reaction.users.id);

【讨论】:

他需要一个用户ID而不是用户列表 使用.map()而不是.filter()不是更好吗? 在这种情况下我认为是一样的 @HellCatVN 非常感谢您的帮助,非常好。问题没有解决。这是表格:用户:ReactionUserManager cacheType: [class Collection extends Collection],缓存:Collection(0) [Map] ,reaction: [Circular *2] ,让反应 = message.reactions.cache.get( emoji_giveaway).users.cache.filter(reaction => react.users.id); console.log(reactions) 结果:Collection(0) [Map] 【参考方案3】:

首先您需要获取消息channel.fetchMessage();。 可以使用client.channels.cache.get('id') 获取频道。

所以总的来说你可以做类似的事情

bot.on("ready", async () => 
    const channel = client.channels.cache.get('846414975156092979');
    const message = channel.fetch('315274607072378891');
    const userReactions = message.reactions.cache.filter(reaction => reaction.users.id);
    console.log(userReactions)

【讨论】:

以上是关于列出对特定消息做出反应的人的主要内容,如果未能解决你的问题,请参考以下文章

如何向对消息做出反应的用户添加特定角色

如何获取对特定消息做出反应的用户的不和谐 ID discord.js

如何使用特定的 webhook 使机器人对特定频道下的消息做出反应

使用 discord.js 收集对消息做出反应的用户

对自己的消息做出反应的 Discord 机器人

向对机器人消息问题作出反应的用户添加角色