node.js - 在使用 MessageCollector 达到设置的时间限制后如何触发代码?
问题描述
我正在创建一个 eval 命令。我希望它最多等待 1 分钟的响应。我得到了那个工作,但我怎么知道何时达到时间限制?在旧版本的 discord.js 中,您通常会在 await-messages 之后添加一个 .catch。但是对于版本 13,建议您使用 MessageCollector。我在网上找不到关于时间限制的任何信息。
这是我的代码:
interaction.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collector.on('collect',async msg => {
//my eval command
}
感谢所有帮助!
解决方案
经过几分钟的研究,我发现了一些东西!在定义收集器时,它带有三个事件。其中之一是“结束”事件。示例:这里当它记录所有收集的项目时。
我使用的代码:
interaction.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collector.on('collect',async msg => {
//my eval command
}
collector.on('end',async collected, reason => {
if(reason == "time"){
//make bot say time
end
}
如果您需要任何帮助,请在此答案下方评论!