我试图发出一个静音命令,该命令除了发布角色本身外,还会将其删除,因此它不担心机器人的短期重启。 (如果您通过settimeout删除了角色,就像我发现的所有版本的Mutute命令一样,它都会被重置)。我决定通过一个json文件列出Mat的用户列表,该bot会在其中自动写入这些用户,这没有问题。但是要编辑此文件,就减少静音剩余时间的值而言,这就是问题所在。不好意思的英语道歉,也许是一个愚蠢的问题(我是新手)。
if(message.content.startsWith(prefix + 'mute')) {
let muteduser = message.mentions.members.first();
let mutedtime = args[1];
muteduser.addRole(muterole);
message.reply(`${muteduser} has been muted for ${mutedtime} min`);
fs = require('fs');
fs.appendFileSync("mute.json", `\n${muteduser}`,'utf8');
fs.appendFileSync("mute.json", `\n${mutedtime}`);
}
const interval = 60000;
(function tick(){
fs.readFile("mute.json", function(text){
var data = JSON.parse(fs.readFileSync("mute.json"));
console.log(data);
var i;
for(i=0;i<data.length;++i)
{
if(parseInt(data[i+1], 10) != 0){
data[i+1] = parseInt(data[i+1]) - 1;
}
if((data[i])==0){
(data[i]).removeRole(muterole);
}
}
console.log("success");
});
setTimeout(tick, interval);
});