2017-11-06 6 views
1

음악에 대한 건너 뛰기 기능이있는 불협화음 봇을 만들고 있지만 누군가가 할 수 없게 만드는 방법을 알아 내지 못합니다. 투표를 여러 번 건너 뛰십시오. 너희들이 나를 도울 수 있다면불화 봇이 한 명으로부터 여러 표를 얻지 못하게하려면 어떻게해야합니까?

case "skip": 
     var server = servers[message.guild.id]; 
     if(message.guild.members.get(message.author.id).roles.exists('name','Super Skip')){ // checks if the member has the super skip role 
      skipvotes = 0; // sets skipvotes back to 0 
      messagesend("Skipping Song") 
      server.dispatcher.end(); // skips song 
      message.delete(); // deletes message that sent the commmand 
      return; 
     } 
     skipvotes++ // increases the skipvotes 
     if(skipvotes != 5) { // checks if the number of skips is 5 or not 
      message.delete(); 
      messagesend(5-skipvotes + " more vote(s) to skip the song") // sends the message saying how many more votes to skip the song 
     } else if(skipvotes === 5){ 
      skipvotes = 0; // sets the number of skipvotes back to 0 
      if(server.dispatcher){ 
       message.delete(); 
       messagesend("Skipping song") 
       server.dispatcher.end(); // skips the song 
      } 
     } 
     break; 

는 이미 배열에서 투표 한 사람들의

답변

2

스토어는 ID의 좋은 것 : 지금까지 여기 내 코드입니다. 각 투표마다 해당 ID가 배열에 이미 있는지 확인하십시오. 그렇지 않으면 투표를 무시하십시오.

http 요청을 벗어나는 범위에서 배열을 선언해야합니다. (나는 이것이 서버 코드라고 가정하고, 불화 봇의 작동 방식에 익숙하지 않다.) 아마 데이터베이스에 저장할 가치가 없을 것이다.

var voters = [] 

정수 카운터를 배열의 길이로 바꿉니다.

case "skip": 
     var server = servers[message.guild.id]; 
     if(message.guild.members.get(message.author.id).roles.exists('name','Super Skip')){ // checks if the member has the super skip role 
      voters = [] 
      messagesend("Skipping Song") 
      server.dispatcher.end(); // skips song 
      message.delete(); // deletes message that sent the commmand 
      return; 
     } 

     if(voters.find(id=>id == message.author.id)) 
      return; 

     voters.push(message.author.id) 

     if(voters.length != 5) { // checks if the number of skips is 5 or not 
      message.delete(); 
      messagesend(5-voters.length + " more vote(s) to skip the song") // sends the message saying how many more votes to skip the song 
     } else if(voters.length === 5){ 
      voters = [] 
      if(server.dispatcher){ 
       message.delete(); 
       messagesend("Skipping song") 
       server.dispatcher.end(); // skips the song 
      } 
     } 
     break;