获取对具有特定表情符号的消息做出反应的用户数量

时间:2018-03-10 06:31:35

标签: javascript node.js discord.js

如何获得与表情符号对特定消息做出反应的用户数量

message.channel.fetchMessage(message.id).then(function(r){
    return console.log(r.reactions.filter(a => a.emoji.name == '')).users.size
})

2 个答案:

答案 0 :(得分:0)

<MessageReaction>count属性,返回

  

给出相同反应的人数

这正是您正在寻找的内容,因此您可以映射集合以获取count属性,如下所示:

message.channel.fetchMessage(message.id).then(r => {
    return console.log(r.reactions.filter(a => a.emoji.name == '').map(reaction => reaction.count)[0]);
});

答案 1 :(得分:0)

这是一个非常有趣的问题,我不确定为什么,但users道具似乎并不准确。此外,usersCollection,没有.size属性。

相反,我建议使用<MessageReaction>.count属性。像这样:

message.channel.fetchMessage('<message id>')
.then(msg => {
    let downVoteCollection = msg.reactions.filter(rx => rx.emoji.name == '');

    console.log(downVoteCollection.first().count);
})
.catch(console.error);

您可以使用.first()的{​​{1}}方法,因为您只会返回返回的downvote表情符号,因此只会返回一种类型的Collection集合。