我如何查看用户是否已经使用投票进行了投票,是否已经投票;停止计票? discord.js

时间:2020-03-28 08:57:26

标签: javascript discord discord.js

我正在尝试为我朋友的一台服务器编程一个discord bot。他希望ban命令成为多数表决对象,如果一个用户试图禁止另一个用户,则该漫游器会对该消息添加响应,并且当时间限制到期时,该漫游器会根据是否有该用户来决定禁止该用户。 5票赞成。否则,禁令将无法通过。

但是,我的问题是,一个用户可以继续对壁虱表情符号做出反应,这为“是”添加了越来越多的选票。我正在寻找一种方法,可以查看用户是否已经投票,如果已经投票,则使其其他投票不增加得分。

我的代码如下:

        const user = msg.mentions.users.first();
        if(!user) return msg.reply("You need to @ someone you want me to ban");
        await msg.react('✅');
        await msg.react('❌');

        const filter = (reaction, user) => reaction.emoji.name === '✅' && msg.author.id;
        const collector = msg.createReactionCollector(filter, { time: 15000 });
        let yesvotes = 0
        collector.on('collect', collected => {
            console.log(`Collected ${collected.emoji.name}`)
            yesvotes += 1;
        });
        collector.on('end', collected => {
            msg.channel.send(`Collected ${yesvotes} votes`)
            if(yesvotes >= 5) {
                // ban the user
            }
        });```

1 个答案:

答案 0 :(得分:0)

我修复了第5行的小问题,其中只有消息作者可以做出反应。 我将用户存储到数组中,并且仅在列表中没有用户时才将其添加到计数中。 ^^

Dtb