首页 > 解决方案 > 向对消息做出反应的人发送 DM - Discord JS

问题描述

我正在尝试向对消息做出反应的前 5 个人发送消息,但是它只会向第一个做出反应的人发送 DM,并且不允许其他任何人做出反应或接收 DM。

我该怎么做?

case 'await':
  message.channel.sendMessage('React for dm').then(sentMessage => {
    sentMessage.react('1️⃣').then(() => sentMessage.react('2️⃣'));

    const filter = (reaction, user) => {
      return ['1️⃣', '2️⃣'].includes(reaction.emoji.name);
    };

    sentMessage.awaitReactions(filter, {
        max: 1,
        time: 60000,
        errors: ['time']
      })
      .then(collected => {
        const reaction = collected.first();

        if (reaction.emoji.name === '1️⃣') {
          message.author.sendMessage('I told you I would!')
        }
      })
  })

标签: javascriptnode.jsdiscorddiscord.js

解决方案


你有max: 1告诉收集器在成功收集 1 个反应后退出。您应该将其设置为 5。

之后,您需要循环collected发送 DM 给他们所有人,而不是使用 first()。


推荐阅读