Discord.js - 随机获取一个有反应的用户

Posted

技术标签:

【中文标题】Discord.js - 随机获取一个有反应的用户【英文标题】:Discord.js - Get a random user with a reaction 【发布时间】:2020-11-29 11:25:37 【问题描述】:

所以我做了一个赠品,我想随机获得一个对 ???? 有反应的用户,但是没有用。

bot.channels.get(giveawayChannelid).fetchMessage(messageID)
    .then(message =>   
      let reaction = message.reactions.find(r => r.emoji.name == '????');
  if (reaction) 
      var randomUser = reaction.users.random(1);
   
  );

【问题讨论】:

【参考方案1】:
        bot.channels.cache // make sure you use cache object
            .get(giveawayChannelid)
    .messages.fetch(messageID) // fetchMessage is deprecated with v12, use messages.fetch instead
                .then(message =>   
                  let reaction = message.reactions.cache // cache object ?
            .find(r => r.emoji.name == '?');
              if (reaction) 
                  reaction
                    .users.cache.array() // get all users who reacted
                    .filter((u) => !u.bot) // filter out bots
                    .random(); // get random user
               
        );

【讨论】:

它不起作用,因为'无法读取未定义的属性'get'' 您使用的是什么版本的 discord.js? 它的最新版本(1.47.3) 嗯,这很奇怪。我也在使用最新的 discord.js 版本,这对我有用。 但我使用 fetchMessage 因为 message.fetch 不起作用

以上是关于Discord.js - 随机获取一个有反应的用户的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 如何从 fetchMessage 事件中获取“反应用户”列表?

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

过滤来自特定用户的反应 discord.js

从反应 discord.js 中获取消息 ID

discord.js :reaction.message.author.tag 正在发送没有反应的用户,而不是消息作者

从特定消息中删除特定用户反应 - Discord.js