2016-07-04 53 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