命令冷却 1 分钟不工作不和谐机器人

时间:2021-03-07 16:53:31

标签: node.js discord.js

在这里,我尝试设置命令冷却时间,这样人们就不会在我的 Discord 机器人上发送垃圾邮件并快速致富!问题是虽然我写的代码没有做我想要它做的事!它只是忽略 talkRecently 这是我的代码:

var eco = require('discord-economy');
const editJsonFile = require("edit-json-file");

const prefix = '.'; 
const talkedRecently = new Set();

exports.run = async (client, message, args, ops) => {
    if (talkedRecently.has(message.author.id)) {
            message.channel.send("Wait 1 minute before getting typing this again. - " + message.author);
    } else {
            var job2 = ['actor/actress','astronaut','baker','barber','biologist','chef','doctor','dentist','farmer','nurse','jounalist','police officer','vet','vocalist','zoologist','waiter/waitress'];

            const user = message.author.id;
            var number = Math.floor(Math.random() * (500 + 1));
            
            let check = eco.FetchBalance(user);
            if(!check) {
                eco.SetBalance(user, 0);
            }

            eco.AddToBalance(user, number)
                
            var job = job2[Math.floor(Math.random() * job2.length)];
            
            message.channel.send(`You have worked as a **${job}** and you have earned ${number}`);
        }

        talkedRecently.add(message.author.id);
        setTimeout(() => {
          // Removes the user from the set after a minute
          talkedRecently.delete(message.author.id);
        }, 60000);
    }
        

1 个答案:

答案 0 :(得分:0)

排除样板代码


var arrayOfIntervalUsed = []
var arrOfIds = [];
client.on("message", (msg) => {

arrOfIds.push(msg.author.id)
if(arrOfIntervalUsed.indexOf(msg.author.id) === -1){
setInterval(() => { 
arrOfIntervalUsed.push(msg.author.id) // so the bot isn't duplicating itself
if(arrOfIds.filter(() => {
return msg.author.id 
}).length > 10){
msg.reply("Stop spamming")
arrOfIds = arrOfIds.filter(() => {
return !msg.author.id

})
}

}, 60000)
}
})

编辑: 如果您不希望任何命令都起作用,如果它们是垃圾邮件,则默认情况下添加一个变量 true,该变量在您的 if 语句中必须为真,以了解它是什么命令,并且在上面的代码中,有关停止垃圾邮件的消息将其设为 false 但如果您想要它回来添加另一个 setInterval 之外,它会恢复设定的毫秒数。