Discord.js:如何发送消息并从中收集响应 [英] Discord.js: How to send a message and collect reactions from it

查看:215
本文介绍了Discord.js:如何发送消息并从中收集响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want the discord.js bot to send a message when a command is executed, react on it and then catch all reactions from users to do certain stuff, like respond to them. No time limit should be applied to reactions. I should also mention that I'm using a command handler and the message is being sent from another file than index.js (in which the collect even should occur).

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

I tried doing a collector but no matter how I do it, the collector variable is not defined or not working. I know it should be a collector for a fact though.

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

Making a filter for the checkmark emoji:

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

试图捕获命令块本身之外的反应(因为如果我在

Trying to catch reactions outside the command block itself (because if I do it IN the block the event won't work:

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

我所遇到的错误几乎可以预期,但是我想解决这个问题:

The errors I get are pretty much expected but I want to solve that:

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

ReferenceError: collector is not defined

也许是全局变量或设置消息ID,然后再获取吗?

Maybe a global variable or setting the message id and then fetching? Help me.

推荐答案

为什么不在您的command.js中包含收集器?

Why not include the Collector in your 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
      });
 });

这篇关于Discord.js:如何发送消息并从中收集响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆