Discord.js |如何停止awaitReactions

问题描述

因此,我已经做出了反应。 10000 ms之后,赠品结束,一切正常。现在,我想在10000毫秒之前停止赠品,因为我添加了“赠品结束”命令。我还有一个问题,如果我(没有机器人程序)的反应比胜利者少,那么会发生以下情况:@ x,@ y,@ z,...,(3个反应和7个胜利者)。我可以剪掉吗?

const Discord = require('discord.js');
const bot = new Discord.Client();

bot.channels.get(giveawayChannelid).fetchMessage(messageID)
      .then(message => {  
      const filter = (reaction,user) => {
        return reaction.emoji.name === '?' && user.id != bot.user.id;
      };
      
      message.awaitReactions(filter,{time: 10000,errors: ['time'] })
      .catch(collected => {
        const reaction = collected.first();
        winnersEnd=reaction.users.filter((user) => !user.bot).random(winners);
      });
    }); 

解决方法

您应该使用全局变量,当赠品开始时设置为true,停止时设置为false,以及锁定条件,可能在过滤器回调?中。 还应该在消息awaitReaction选项中使用最大设置

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...