Discord.js没有看到表情符号的反应

时间:2018-02-09 18:54:19

标签: javascript node.js discord.js

所以我在过去的几天里一直在努力学习如何开展这项工作。 我试图这样做,当有人提交某人时,它会要求确认,然后是console.logs。但是当我按下支票时,它什么也没做。

  // aca!evidence [URL] [ign/name]
  const checkChannel = client.channels.find("name", "testbotchannel");
  const ign = args[1];
  const link = args[2];
  const filter = (reaction, user) => reaction.emoji.name === '✅';

  if(!ign) {
    message.channel.send(`Please define a username`);
  } else if (!link) {
    message.channel.send(`Please define a URL`);
  } else {
    message.reply(`Thanks for submitting! We will review this asap!`)
    .then(msg => {
        msg.delete(10000)
      });
    checkChannel.send(`${message.author} submitted ${ign} (${link})`).then(async message => {
      await message.react("✅")
      await message.react("❎")
      message.awaitReactions(filter)
      .then(() => console.log(`Collected`))
      .catch(console.error)
    });
  }

1 个答案:

答案 0 :(得分:0)

我认为你想要的不是.awaitReactions(...)而是.createReactionCollector(...)。使用此方法,您可以使用“收集”事件创建响应邮件上每个反应的事件。

以下是文档中的一个示例,适用于checkChannel.send(...)

行之后的代码
message.react('✅')
.then(mReaction => message.react('❎') )
.then(mReaction => {
    const collector = message.createReactionCollector(reactionFilter, { time: 15000 });
    collector.on('collect', r => console.log(`Collected ${r.emoji.name}`));
    collector.on('end', collected => console.log(`Collected ${collected.size} items`));
})
.catch(console.log);

P.S。我不使用await库,但我相信你可以根据自己的需要调整它。如果您有任何问题,请告诉我