如何回复机器人放置的用户反应?

时间:2020-07-03 14:10:17

标签: javascript discord.js

我有一个机器人,它从api查找统计信息,如果他们搜索不在api中的名称,它将返回一些与其搜索的前三个字母匹配的选项。该机器人将为用户添加反应,以选择列出的名称之一, bot with players to search

现在,对于我无法弄清的部分,当用户选择其中一种反应时,我该如何答复? 我确实尝试了100种不同的方法,但无法让它们正常工作。 这是我要扩展的代码,

message.channel.send(`Could not find player, are you looking for \n` /*+ newArray[0].Name*/);
     for (i = 0; i < player5.length; i++)
     message.channel.send((options[i]) + " " + player5[i].Name)
     
     if(newArray.length >5){
        message.channel.send(`Plaease refine your search, there are ` + (newArray.length - 4) + ` more results \nOr choose reaction to lookup player`).then(function(message) {
   
     for (var i = 0; i < player5.length; i++) {
        message.react(options[i]);
     }
    })
    }else if (newArray.length <5) {
        message.channel.send(`Choose a reaction to lookup player`).then(function(message) {
   
            for (var i = 0; i < player5.length; i++) {
               message.react(options[i])
                }
            
        });   
           
    }

这是我尝试过的一件事,

const filter = (reaction, user) => {
                return ['1️⃣', '2️⃣'].includes(reaction.emoji.name) && user.id === message.author.id;
                  };
           
            //let filter = (reaction, user) => reaction.emoji.name == '1️⃣' && user.id == message.author.id || reaction.emoji.name == '2️⃣' && user.id == message.author.id;
            


            message.awaitReactions(filter, { max: i+1, time: 30000, errors: ['time'] })
                .then(collected => {
                    const reaction = collected.first();
            
                    if (reaction.emoji.name === '1️⃣' && reaction.count > 1) {
                        message.reply('you picked ' + player5[0].Name );
                    } else if (reaction.emoji.name === '2️⃣' && reaction.count > 1){
                        message.reply('you picked ' + player5[1].Name);
                    }
                })
                .catch(collected => {
                    message.reply('you reacted with neither a thumbs up, nor a thumbs down.');
                });
            

1 个答案:

答案 0 :(得分:0)

这就是我的工作方式,

if (reaction.emoji.name === '1️⃣' && reaction.count > 1) {
             let player1 = statsValue.filter(function (entry) {
                 return entry.PlayerName === player5[0].Name;
             }) // remainder of code