【问题标题】:Get first reaction that the user picks discord.js获得用户选择 discord.js 的第一反应
【发布时间】:2021-08-15 05:11:59
【问题描述】:

我正在向用户发送一个测验,并尝试倾听他们的第一反应。问题是我怎样才能得到每个人选择而不是其他人的第一反应?我找不到一种方法来确定每个人首先选择的反应,因为很多时候用户会选择很多反应。

类似:

红色是什么颜色?

???? ??? ????

每个用户都用机器人提供的反应来回答,一段时间后机器人会显示正确的答案以及赢家和输家。

const embed = new Discord.MessageEmbed()
  .setColor(0x00AE86)
  .setDescription('the quizz');

message.channel.send({
  embed
}).then(async m => {
  let emojis = icons.slice(0, size.length);

  for (var i = 0; i < emojis.length; i++) {
    await m.react(icons[i]);
  }

  const filter = (reaction, user) => {
    return emojis.includes(reaction.emoji.name) && !user.bot;
  };

  m.awaitReactions(filter, {
      time: 60000
    })
    .then(collected => {

      const reaction = collected.array();

      for (var i = 0; i < reaction.length; i++) {
        let users = reaction[i].users.cache.array();
        console.log(users);

        for (var k = 1; k < users.length; k++) {
          let wallet = db.get(args[1] + '_' + users[k].id);
          if (parseInt(args[0]) > wallet) {

            message.channel.send('You don't have money.');
            return;
          } else {
            let bet = icons.indexOf(reaction[i].emoji.name);
            let answer = users[k].id + ',' + size[ans];
            db.push('answer_xx', answer);
            m.channel.send('We saved your answer.');
          }
        }
      }
    })
});

【问题讨论】:

    标签: node.js discord discord.js


    【解决方案1】:

    我之前的回答没有回答这个问题,在为您的问题提交编辑以进行澄清后,我相信我现在明白您想要什么了。

    防止人们多次反应和触发您的机器人的最佳方法是从您发送的消息中删除所有反应:

    message.reactions.removeAll().catch(error => console.error('Failed to clear reactions: ', error));
    

    如果此解决方案还不够,您需要将已回答的用户存储在某处,并在他们做出反应后对其用户 ID 使用过滤器。

    const filter = (reaction, user, USERS) => {
    return emojis.includes(reaction.emoji.name) && !user.bot;
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 2021-06-22
      • 2021-03-29
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多