列出对特定消息做出反应的人
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