gaber-elsayed

tournament-bot

Mar 22nd, 2021
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const client = new Discord.Client();
  3.  
  4. let flipFlop;
  5. let user;
  6. let userId;
  7.  
  8. let whitelist = [];
  9.  
  10. client.login(process.env.TOKEN);
  11.  
  12. client.on('ready',()=>{client.user.setActivity('Darwin Project', { type: 'PLAYING' })})
  13.  
  14. client.on('message', (message) => {
  15.  
  16. if(whitelist.includes(message.member.id) && (message.content === "!mute" || message.content === "!demute") && message.member.voice.channelID){
  17. switch (message.content){
  18. case "!mute":
  19. message.member.voice.setMute(true);
  20. break;
  21. case "!demute":
  22. message.member.voice.setMute(false);
  23. break;
  24. }
  25. }
  26.  
  27. // Les commandes qui suivent sont réservées aux administrateurs
  28. if(message.member.hasPermission('ADMINISTRATOR') === false) return;
  29.  
  30. if(message.content === "!game start" && message.member.voice.channelID){flipFlop = muteDemute(true, message);
  31. message.channel.send("```Que la partie commence !```");}
  32.  
  33. else if(message.content === "!game finish" && message.member.voice.channelID) {flipFlop = muteDemute(false, message);
  34. message.channel.send("```La partie est terminée, vous pouvez de nouveau parler.```");}
  35.  
  36. else if(message.content.startsWith('!whitelist add')){ // Ajouter quelqu'un à la whitelist
  37. user = message.content.substring(15);
  38. userId = user.substring(3).slice(0,-1);
  39. message.channel.send(`${user} est maintenant whitelisté. Il peut désormais utiliser la commande **!mute** et **!demute** et ne sera plus affecté par les mute/demute généraux.`);
  40. whitelist.push(userId);
  41. }
  42.  
  43. else if(message.content.startsWith('!whitelist remove')){ // Supprimer quelqu'un de la whitelist
  44. user = message.content.substring(18);
  45. userId = user.substring(3).slice(0,-1);
  46. message.channel.send(`${user} n'est plus whitelisté.`);
  47. whitelist.splice(whitelist.indexOf(userId));
  48. }
  49.  
  50. else if(message.content === "!whitelist list"){
  51. let whitelistList = "";
  52.  
  53. for(let i=0; i < whitelist.length; i++){
  54. whitelistList = whitelistList + ", " + client.users.cache.get(whitelist[i]).username;
  55. }
  56. message.channel.send("```Whitelist :" + whitelistList.substring(1) + "```");
  57. }
  58.  
  59. })
  60.  
  61. // Mute/demute tous les utilisateurs d'un canal lorsque la commande est effectuée
  62. function muteDemute(flipFlop, message) {
  63. console.log("Flip/flop : " + flipFlop);
  64.  
  65. let membersConnected = message.member.voice.channel.members.array();
  66.  
  67. for(let i=0; i < membersConnected.length ; i++){
  68. if(!whitelist.includes(membersConnected[i].id))
  69. membersConnected[i].voice.setMute(flipFlop);
  70. }
  71.  
  72. return(flipFlop);
  73.  
  74. }
  75.  
  76. // Actualiser son status de "mute" lorsqu'un utilisateur rejoint un channel en fonction du flipflop
  77. client.on('voiceStateUpdate',(oldState, newState)=>{
  78. if(!oldState.channelID && newState.channelID && newState.mute !== flipFlop) newState.member.voice.setMute(flipFlop);
  79. })
Advertisement
Add Comment
Please, Sign In to add comment