我有一个机器人,它从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.');
});
答案 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