我有一个不和谐机器人,我希望有一个阵列,其中包含滥用音量和音乐命令的用户ID,这样我就可以拿走他们的能力并使用!nomusic
等命令将其恢复。 !musicback
,但我不知道如何在配置文件中添加或删除ids
数组。我最好的猜测是使用fs
并将成员的id
推入数组,但我不知道我将如何做到这一点(我对node.js
很新。特别是fs
,很抱歉,如果这是一件非常容易的事,并且真的很愚蠢的问题。)
到目前为止,这是我已经走了多远(很多程序没有包括在内,因此更容易阅读)
function readNoMusicJSON() {
return JSON.parse(fs.readFileSync("./nomusic.json"));
}
var badmusicusers = readNoMusicJSON();
function nomusicsfoyou(badmusicusers, userId) {
return nomusic.concat([userId]);
}
function saveNoMusicFile(badmusicusers) {
fs.writeFileSync("./nomusic.json");
}
bot.on('message', async message => {
//some code ommited due to lack of importance
var args = message.content.slice(config.prefix.length).trim().split(/ +/g);
var command = args.shift().toLowerCase();
switch(command){
case"music":
if(badmusicusers.find(id=>id == message.author.id)) return;
// more ommitted code that don't matter
break;
case "nomusic":
let sadmusicboi = message.mentions.members.first();
badmusicusers = nomusicsfoyou((badmusicusers, sadmusicboi.id));
saveNoMusicFile(badmusicusers);
break;
}
})
答案 0 :(得分:3)
假设您的config bannedUsers.json文件中有bannedUsers列表。
["user-id-1", "user-id-2"]
在程序启动时,您将文件读入变量:
function readBannedUsers() {
return JSON.parse(fs.readFileSync("./bannedUsers.json"));
}
var bannedUsers = readBannedUser();
每当您想要禁止用户时:
function banUser(bannedUsers, userId) {
return bannedUsers.concat([userId]);
}
function saveBannedUsers(bannedUsers) {
fs.writeFileSync("./bannedUsers.json");
}
bannedUsers = banUser(bannedUsers, "user-3");
saveBannedUsers(bannedUsers);
这就是全部。