Discord.js: How to send a message and collect reactions from it(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 中包含 Collector?
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:如何发送消息并从中收集反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Discord.js:如何发送消息并从中收集反应


- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- addEventListener 在 IE 11 中不起作用 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07