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

标签 javascript node.js discord.js

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

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

为复选标记表情符号制作过滤器:

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

try catch 命令 block 本身之外的 react (因为如果我在命令 block 中执行此操作,则事件将不起作用:

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

我得到的错误几乎是预料之中的,但我想解决这个问题:

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

ReferenceError: collector is not defined

也许是全局变量或设置消息 ID 然后获取?帮助我。

最佳答案

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

 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
      });
 });

关于javascript - Discord.js:如何发送消息并收集 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57452056/

相关文章:

javascript - 如何以 express 方式发送比较哈希?服务器到客户端

javascript - 让IE加载其他js文件

javascript - html 文档之间的多向滚动

node.js - node fluent-ffmpeg流输出错误码1

node.js - 尝试从 channel ID 获取公会

javascript - 如何从特定列、特定表中选择所有内容,然后将它们插入数组中?

javascript - 重叠命令?

Javascript:如何更改点击事件上的 TextGeometry?

javascript - 如何在 Meteor 中切换文本中随机句子的颜色

node.js - 我可以在为服务器提供 API 的同时提供静态文件吗?