如何访问从 awaitReactions 收集的反应?

How can I access collected reaction from awaitReactions?

这是我的代码,我想访问收集的表情符号并将它们作为回复发回。我还插入了从 collected.

获得的对象

这里是对象数据的link:https://pastebin.com/MDm9dsvD

const emojis = [
  'booknquill',
  'balloon1',
  'rail',
  'Alex',
  'cookie1',
  'fish1',
  'Agent',
  'cake1',
  'pickaxe',
  'water',
  'Steve',
  'Apple',
  'carro1t',
  'panda',
  'sign',
  'potion',
  'map1',
  'llama1',
];

let msg = await message.channel.send('`What is your Code ?....`');

for (let i = 0; i < emojis.length; i++) {
  let reactionEmoji = message.guild.emojis.cache.find(
    (emoji) => emoji.name === emojis[i],
  );
  msg.react(reactionEmoji);
}

let reactedEmojis = [];

for (let i = 0; i < emojis.length; i++) {
  reactedEmojis.push(
    message.guild.emojis.cache.find((emoji) => emoji.name === emojis[i]),
  );
}

const filter = (reaction, user) => {
  return !user.bot;
};

msg
  .awaitReactions({ filter, max: 4, time: 60000, errors: ['time'] })
  .then((collected) => {
    console.log(collected.size);
    let userReaction = collected[0];
    console.log(collected[0]);
    message.channel.send(userReaction._emoji.name);
  });

collected 是一个集合,而不是数组,因此您不能简单地使用 [0] 访问第一项。您可以使用 .first(), .last(), .at() 等方法来访问项目。

要获得第一个收集的物品,您可以使用let userReaction = collected.first()let userReaction = collected.at(0)