首页 > 解决方案 > 在使用 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
               }

感谢所有帮助!

标签: node.jsdiscord.js

解决方案


经过几分钟的研究,我发现了一些东西!在定义收集器时,它带有三个事件。其中之一是“结束”事件。示例:这里当它记录所有收集的项目时。

我使用的代码:

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

               }

如果您需要任何帮助,请在此答案下方评论!


推荐阅读