Discord.js:如何发送消息并收集消息

时间:2019-08-11 17:16:26

标签: javascript node.js discord.js

我希望discord.js机器人在执行命令时发送一条消息,对其进行响应,然后捕获用户的所有响应以执行某些操作,例如响应它们。没有时间限制应适用于反应。我还应该提到我正在使用命令处理程序,并且消息是从除index.js之外的另一个文件发送的(应该在其中收集)。

我尝试做一个收集器,但是无论我怎么做,收集器变量都没有定义或不起作用。我知道它应该是事实的收集者。

为选中标记表情符号创建过滤器:

  return reaction.emoji.name === `✅` && user.id === call.message.author.id;
}

尝试在命令块本身之外捕获响应(因为如果我在命令块中执行该操作,则该事件将不起作用:

collector.on(`collect`, (reaction, reactionCollector) => {
    console.log(`Caught ${reaction.emoji.name}`);
});

我遇到的错误是非常可预期的,但我想解决:

collector.on(`collect`, (reaction, reactionCollector) => {
^

ReferenceError: collector is not defined

也许是全局变量或设置了消息ID,然后进行提取?救救我。

1 个答案:

答案 0 :(得分:1)

为什么不将Collector包含在command.js中?

 const time = 60000 //amount of time to collect for in milliseconds

 receivedMessage.channel.send("Hello World")
 .then(async function (message) {
      await message.react('✅')
      const filter = (reaction, user) => {
           return //YOUR FILTER HERE;
      };

      const collector = message.createReactionCollector(filter, { time: time });

      collector.on('collect', (reaction, reactionCollector) => {
           //do stuff
      });
 });