获取对邮件的特定反应的计数

时间:2018-11-07 18:54:13

标签: discord discord.js

我正在尝试创建一个机器人,该机器人将删除具有一定数量thumbsdown反应的邮件。我无法确定邮件中特定反应的计数。

基本上,我创建了一个命令来等待消息并将其添加到我的msgarray中。在每条消息之后,我要遍历数组并删除具有指定反应量的所有消息。

这是我到目前为止所拥有的:

var msgarray = [];
const msgs = await message.channel.awaitMessages(msg => {
  msgarray.push(msg);
  for (i = 0; i < msgarray.length; i++) {
    // I'm not sure where to go from here, I want to make an if statement that checks
    // for a certain amount of thumbsdown reactions on the message
    if (msgarray[i].reactions) {
      // incomplete
    }
  }
});

这是我第一次使用javascript编程,因此如果此代码没有太大意义,我深表歉意。

1 个答案:

答案 0 :(得分:0)

TextChannel.awaitMessages()使用Collection进行解析,因此您使用的msg参数不是单个消息,而是多个消息的集合。
另外,最好使用messageReactionAdd事件来检查仅在消息得到响应时的消息,该事件每次有人添加响应时都会触发。
它应该看起来像这样:

// this code is executed every time they add a reaction
client.on('messageReactionAdd', (reaction, user) => {
  let limit = 10; // number of thumbsdown reactions you need
  if (reaction.emoji.name == '' && reaction.count >= limit) reaction.message.delete();
});