问题描述
因此,我已经做出了反应。 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选项中使用最大设置