2017-11-06 6 views
1

불화 봇이 있는데 볼륨과 음악 명령을 남용하는 사용자의 사용자 ID가있는 배열을 가지고 있기 때문에 !nomusic!musicback과 같은 명령을 사용하여 기능을 다시 사용할 수는 있지만, 아무리 내가 어떻게 설정 파일의 배열에서 그들의 ids을 추가하거나 제거하게 만들지는 모른다. 내 최선의 추측은 fs을 사용하고 배열에 회원의 id을 푸시해야합니다. 그러나이 작업을 수행하는 방법에 대해 잘 모릅니다. (매우 신품입니다. node.js 및 특히 fs입니다. 일이 이렇게와node.js를 사용하여 JSON의 배열에 문자열을 추가하는 방법은 무엇입니까?

는 지금까지 내가 그것을 읽고 쉽게 그래서 포함되지 않은 프로그램의 (많이)

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

지금까지 해보신 것을 공유 할 수 있습니까? 조작하려는 객체/배열의 예는 무엇입니까? 객체에 문자열을 추가하는 것은 간단합니다 :'exampleObject.thing = '! nomusic';' – Dominik

답변

3

당신의 목록을 가지고 가정을 어떻게 돼있다) 물어 정말 바보합니다 귀하의 설정 bannedUsers.json 파일에 금지 된 사용자.

["user-id-1", "user-id-2"] 

프로그램의 시작에, 당신은 변수로 파일을 읽어

function banUser(bannedUsers, userId) { 
    return bannedUsers.concat([userId]); 
} 

function saveBannedUsers(bannedUsers) { 
    fs.writeFileSync("./bannedUsers.json"); 
} 

bannedUsers = banUser(bannedUsers, "user-3"); 
saveBannedUsers(bannedUsers); 

전부 : 사용자를 금지 할 때마다

function readBannedUsers() { 
    return JSON.parse(fs.readFileSync("./bannedUsers.json")); 
} 

var bannedUsers = readBannedUser(); 

.

+0

좋아요.이 모든 것이 있지만 사용자의 ID가 배열에 있는지 확인하는 방법을 알 수는 없습니다. 나는 if (readNoMusicJSON(). find (id => id == message.author.id)) return;을 시도했으나 작동하지 않는 것 같다. ReadNoMusicJSON은 대답의 readBannedUsers 함수와 동일합니다.) – kittrz

+0

좋아요, 나는 readNoMusicJSON()을 내 프로그램의 bameUsers 변수에 해당하는 "badmusicusers"로 대체 한 다른 것을 생각했지만 그 중 하나가 작동하지 않는 것. – kittrz