2016-07-04 134 views
0

所以我想要做的是创建一个“冷却”像我的不和机器人系统,我试过使用数据库方法,here这不适合我。setTimeout客户端使用命令

我正在使用discord.js包。

这里是我的代码:

if (msg.content.startsWith("!point")) { 
    var usr = msg.content.split(" ").slice(1).join(" "); 
    if (!usr) { 
    bot.sendMessage(msg, "```Error: 1\n Reason: Please state a name.```"); 
    return; 
    } 
    if (usr == msg.author.username) { 
    bot.sendMessage(msg, "```Error: 3\n Reason: You're unable to point yourself.```"); 
    return; 
    } 
    if (!db["users"][usr]) { 
    db["users"][usr] = 0; 
    } 
    console.log(usr + " has " + db["users"][usr]); 
    db["users"][usr] += 1; 
    console.log(usr + " now has " + db["users"][usr]); 
    fs.writeFileSync('database.json', JSON.stringify(db)); 
    bot.sendMessage(msg, usr + " has received 1 point"); 
} 
+0

你没有提及你的问题是什么? – Iceman

+0

我的问题是,我不知道该怎么做.. – swagster

回答

0

除非这是非常重要的是,冷却生存崩溃,或者冷却是一个很长的时间我建议创建一个对象与被要么通道或用户密钥或服务器ID取决于您想要应用的速率限制。然后每次运行一个命令时都会将其设置为当前时间。像

rateLimitObject[msg.author.id] = "current time";

东西然后每当有人运行一个命令,只是确保当前时间比超过一定数额更与索引的对象的时候更大。 如果你只是想阻止人们发送垃圾邮件,那么类似于pvpcraft中使用的东西可能会更理想。 https://github.com/macdja38/pvpcraft/blob/master/middleware/rateLimits.js

相关问题