Advertisement
Wistaro

Boy Discord Event

Jan 4th, 2020
481
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*BOT DISCORD
  2. *
  3. * Event - Staff FuzeIII
  4. * 4 / 01 / 20
  5. *
  6. * Developped by Wistaro
  7. */
  8.  
  9. const Discord = require('discord.js')
  10. const client = new Discord.Client()
  11. const bot_token = ""
  12.  
  13. /* SERVER DISCORD DATA */
  14. const role_1 = "660517987530309655" //role for step 1
  15. const role_2 = "660518119114014740" //role for step 2
  16. const role_3 = "660518155361189938" //role for step 3
  17. const role_4 = "660518187154276372" //role for step 4
  18. const role_5 = "660518225553129492"//role for step 5
  19.  
  20. const role_team1 = "660508218153238550" //team 1 role
  21. const role_team2 = "660508242748899363"; //team 2 role
  22. const role_team3 = "660508270838022144"; //team 3 role
  23. const role_gameMaster = "660084050836324383";
  24. const role_quasiwin = "663057045309751296"
  25.  
  26. const channel_1 = "660518374669025290"
  27. const channel_2 = "660518433594671152"
  28. const channel_3 = "660518475281727519"
  29. const channel_4 = "660518520328814594"
  30. const channel_5 = "660518568827551775"
  31.  
  32. const channel_com_team1 = "660508909408092181"
  33. const channel_com_team2 = "660508987867004958"
  34. const channel_com_team3 = "660509010201411615"
  35.  
  36. const channel_info_team1 = "660529335240884224"
  37. const channel_info_team2 = "660529447610351637"
  38. const channel_info_team3 = "660529499502542908"
  39.  
  40. const channel_acc = "660083954069536770"
  41.  
  42. /* ESCAPE GAME DATA*/
  43.  
  44. const code_1 = "1978"
  45. const code_2 = "guitare"
  46. const code_3 = "fanatique"
  47. const code_4 = "google"
  48. const code_5 = "corsaire"
  49. const code_6 = "FuzeIII"
  50.  
  51.  
  52. /*Team Stats*/
  53.  
  54. let team1_fail;
  55. let team2_fail;
  56. let team3_fail;
  57.  
  58. let team1_startTime;
  59. let team2_startTime;
  60. let team3_startTime;
  61.  
  62. let team1_step;
  63. let team2_step;
  64. let team3_step;
  65.  
  66. client.on('ready', () => {
  67.      client.user.setActivity("YOU! ", {type: "WATCHING"})
  68.      //resetEscapeGame();
  69. })
  70.  
  71. client.on('message', (receivedMessage) => {
  72.     if (receivedMessage.author == client.user) {
  73.         return
  74.     }
  75.    
  76.     if (receivedMessage.content.startsWith("!")) {
  77.         processCommand(receivedMessage)
  78.     }
  79. })
  80.  
  81. function processCommand(receivedMessage) {
  82.     let fullCommand = receivedMessage.content.substr(1)
  83.     let splitCommand = fullCommand.split(" ")
  84.     let primaryCommand = splitCommand[0]
  85.     let arguments = splitCommand.slice(1)
  86.  
  87.     console.log("Command received: " + primaryCommand)
  88.     console.log("Arguments: " + arguments)
  89.     console.log("Auteur:"+receivedMessage.author.toString())
  90.  
  91.     if (primaryCommand == "help") {
  92.         helpCommand(arguments, receivedMessage)
  93.     } else if (primaryCommand == "code"){
  94.         code(arguments, receivedMessage);
  95.     } else if (primaryCommand == "debug") {
  96.         debug(arguments, receivedMessage)
  97.     } else if (primaryCommand == "fail") {
  98.         getFail(arguments, receivedMessage)
  99.     } else if (primaryCommand == "time") {
  100.         elapsedTime(arguments, receivedMessage)    
  101.     }else if (primaryCommand == "resetGame") {
  102.         reset(arguments, receivedMessage)
  103.     }else if (primaryCommand == "lisou") {
  104.         lisou(arguments, receivedMessage)  
  105.     }else if (primaryCommand == "lead") {
  106.         getLead(arguments, receivedMessage)                      
  107.     }else {
  108.         receivedMessage.channel.send("T'a écrit une commande qui n'existe pas, gg!")
  109.     }
  110. }
  111.  
  112. function getLead(arguments, receivedMessage) {
  113.    
  114.     msgStr = "**__Classement actuel des équipes__**\n\n";
  115.     let first;
  116.     let second;
  117.     let third;
  118.    
  119.     if(team1_step > 0){
  120.         msgStr+="**Team #1:** étape "+team1_step+" et joue depuis "+secondsToDhms(Math.round((Date.now() - team1_startTime)/1000))+"\n"
  121.     }else{
  122.         msgStr+="**L'équipe #1 n'a pas commencée à jouer!**\n"
  123.     }
  124.  
  125.     if(team2_step > 0){
  126.         msgStr+="**Team #2:** étape "+team2_step+" et joue depuis "+secondsToDhms(Math.round((Date.now() - team2_startTime)/1000))+"\n"
  127.     }else{
  128.         msgStr+="**L'équipe #2 n'a pas commencée à jouer!**\n"
  129.     }
  130.  
  131.     if(team3_step > 0){
  132.         msgStr+="**Team #3:** étape "+team3_step+" et joue depuis "+secondsToDhms(Math.round((Date.now() - team3_startTime)/1000))+"\n"
  133.     }else{
  134.         msgStr+="**L'équipe #3 n'a pas commencée à jouer!**\n"
  135.     }
  136.    
  137.    
  138.  
  139.     receivedMessage.channel.send(msgStr);
  140. }
  141. function lisou(arguments, receivedMessage) {
  142.     receivedMessage.channel.send(getMessageLisou());
  143. }
  144. function  reset(arguments, receivedMessage) {
  145.     if(receivedMessage.member.roles.has(role_gameMaster)) {
  146.  
  147.         resetEscapeGame(receivedMessage);
  148.  
  149.         receivedMessage.channel.send("Jeu remis à 0!");
  150.     }else{
  151.         receivedMessage.channel.send("Tu n'as pas la permission de taper cette commande!");
  152.     }
  153. }
  154.  
  155. function elapsedTime(arguments, receivedMessage) {
  156.     let roleUser = receivedMessage.member.roles;
  157.  
  158.     if(roleUser.has(role_team1) && team1_step > 0){
  159.         let seconds = Math.round((Date.now() - team1_startTime)/1000)
  160.         let dataTime = secondsToDhms(seconds);
  161.         receivedMessage.channel.send("Ton équipe a démarrée le jeu depuis "+dataTime);
  162.  
  163.     }else if(roleUser.has(role_team2) && team2_step > 0 ){
  164.         let seconds = Math.round((Date.now() - team2_startTime)/1000)
  165.         let dataTime = secondsToDhms(seconds);
  166.         receivedMessage.channel.send("Ton équipe a démarrée le jeu depuis "+dataTime);
  167.  
  168.     }else if(roleUser.has(role_team3) && team3_step > 0 ){
  169.  
  170.         let seconds = Math.round((Date.now() - team3_startTime)/1000)
  171.         let dataTime = secondsToDhms(seconds);
  172.         receivedMessage.channel.send("Ton équipe a démarrée le jeu depuis "+dataTime);
  173.     }else{
  174.         receivedMessage.channel.send("Ton équipe n'a pas commencée à jouer!");
  175.     }
  176.  
  177.     return
  178. }
  179. function getFail(arguments, receivedMessage) {
  180.     let roleUser = receivedMessage.member.roles;
  181.  
  182.     if(roleUser.has(role_team1)){
  183.         receivedMessage.channel.send("Ton équipe a "+team1_fail+" tentatives ratées de code!");
  184.     }else if(roleUser.has(role_team2)){
  185.         receivedMessage.channel.send("Ton équipe a "+team2_fail+" tentatives ratées de code!");
  186.     }else if(roleUser.has(role_team3)){
  187.         receivedMessage.channel.send("Ton équipe a "+team3_fail+" tentatives ratées de code!");
  188.     }
  189.  
  190.     return
  191. }
  192. function helpCommand(arguments, receivedMessage) {
  193.     client.channels.get(channel_info_team1).send("Votre équipe a "+team1_fail+" tentative ratées de code");("Hey les <@660084050836324383>, y'a "+receivedMessage.author.toString()+" qui a besoin d'aide ici!")
  194. }
  195.  
  196.  
  197. function debug(arguments, receivedMessage){
  198.     receivedMessage.channel.send("pong");
  199. }
  200. function getMessageLisou(){
  201.     let maxMsg = 4;
  202.     let rnd = intAlea(1,maxMsg)
  203.  
  204.     switch (rnd) {
  205.         case 1:
  206.             return "**Lisou, tu sais ce qu'est un labyrinthe?** \n\n Dans la tête de Lisou: https://file1.science-et-vie.com/var/scienceetvie/storage/images/1/0/0/100118/chaque-arbre-cache-une-foret.jpg"
  207.             break;
  208.  
  209.         case 2:
  210.             return "**Lisou, tu sais ce qu'est une course d'orientation?** \n\n Dans la tête de Lisou: https://img-4.linternaute.com/ta1--RCE72a3XacSQ8Lx_ahTZGE=/620x/smart/317961a8d0c2475dbbb7a8f28acdf6c2/ccmcms-linternaute/11513893.jpg"
  211.             break;
  212.  
  213.         case 3:
  214.             return "**Lisou, tu sais ce qu'est un dropper?** \n\n Dans la tête de Lisou: http://boiteries-des-bovins.fr/wp-content/uploads/2017/06/Vache-au-p%C3%A2turage-ligne-de-dos-droite-e1497537711887-800x601.jpg"
  215.             break;
  216.  
  217.         case 4:
  218.             return "**Lisou, tu sais ce qu'est un jump?** \n\n Dans la tête de Lisou: https://cdn.easycash.fr/img/prod/0/0/3/9/1/1/2/5/5/prod_900x650/gameboy_advance.jpg"
  219.             break;  
  220.            
  221.         case 5:
  222.             return "**Lisou, tu sais ce qu'est une course d'orientation?** \n\n Dans la tête de Lisou: https://img-4.linternaute.com/ta1--RCE72a3XacSQ8Lx_ahTZGE=/620x/smart/317961a8d0c2475dbbb7a8f28acdf6c2/ccmcms-linternaute/11513893.jpg"
  223.             break;
  224.  
  225.         case 6:
  226.             return "**Lisou, tu sais ce qu'est une course d'orientation?** \n\n Dans la tête de Lisou: https://img-4.linternaute.com/ta1--RCE72a3XacSQ8Lx_ahTZGE=/620x/smart/317961a8d0c2475dbbb7a8f28acdf6c2/ccmcms-linternaute/11513893.jpg"
  227.             break;
  228.    
  229.         default:
  230.             return "Y'a une erreur dans le bot (désolé Wistaro est nul, c'est pas ma faute)"
  231.             break;
  232.     }
  233. }
  234.  
  235. function giveRoleTeam(role2give, receivedMessage){
  236.  
  237.     let roleUser = receivedMessage.member.roles;
  238.     let teamRole = ''
  239.     let channelRole = ''
  240.  
  241.     if(roleUser.has(role_team1)){
  242.         teamRole = role_team1;
  243.         channelInfo = channel_info_team1;
  244.     }else if(roleUser.has(role_team2)){
  245.         teamRole = role_team2;
  246.         channelInfo = channel_info_team2;
  247.     }else if(roleUser.has(role_team3)){
  248.         teamRole = role_team3;
  249.         channelInfo = channel_info_team3;
  250.     }
  251.  
  252.     let usersWithRole = receivedMessage.guild.roles.get(teamRole).members.map(m=>m.user.id);
  253.  
  254.     usersWithRole.forEach(element => receivedMessage.guild.fetchMember(element).then(guildMember => {guildMember.addRole(role2give).catch(console.error)} )   );
  255.  
  256.     return channelInfo;
  257.  
  258. }
  259.  
  260. function increaseStep(receivedMessage){
  261.     if(receivedMessage.member.roles.has(role_team1)){
  262.         team1_step++;
  263.     }else if(receivedMessage.member.roles.has(role_team2)){
  264.         team2_step++;
  265.     }else if(receivedMessage.member.roles.has(role_team3)){
  266.         team3_step++;
  267.     }
  268. }
  269.  
  270. function resetEscapeGame(receivedMessage){
  271.     team1_fail = 0
  272.     team2_fail = 0
  273.     team3_fail = 0
  274.     team1_startTime = 0;
  275.     team2_startTime = 0;
  276.     team3_startTime = 0;
  277.     team1_step = 0;
  278.     team2_step = 0;
  279.     team3_step = 0;
  280.  
  281.     /* REMOVE ROLES */
  282.  
  283.     receivedMessage.guild.roles.get(role_1).members.map(m=>m.user.id).forEach(element => receivedMessage.guild.fetchMember(element).then(guildMember => {guildMember.removeRole(role_1).catch(console.error)} )   );
  284.  
  285.     receivedMessage.guild.roles.get(role_2).members.map(m=>m.user.id).forEach(element => receivedMessage.guild.fetchMember(element).then(guildMember => {guildMember.removeRole(role_2).catch(console.error)} )   );
  286.  
  287.     receivedMessage.guild.roles.get(role_3).members.map(m=>m.user.id).forEach(element => receivedMessage.guild.fetchMember(element).then(guildMember => {guildMember.removeRole(role_3).catch(console.error)} )   );
  288.  
  289.     receivedMessage.guild.roles.get(role_4).members.map(m=>m.user.id).forEach(element => receivedMessage.guild.fetchMember(element).then(guildMember => {guildMember.removeRole(role_4).catch(console.error)} )   );
  290.  
  291.     receivedMessage.guild.roles.get(role_5).members.map(m=>m.user.id).forEach(element => receivedMessage.guild.fetchMember(element).then(guildMember => {guildMember.removeRole(role_5).catch(console.error)} )   );
  292. }
  293.  
  294. function code(arguments, receivedMessage){
  295.     if (arguments.length < 1) {
  296.         receivedMessage.channel.send("Vous n'avez pas donné de code à tester! ")
  297.         return
  298.     }else{
  299.  
  300.         if(arguments == code_1 && (receivedMessage.member.roles.has(role_team1)  ||  receivedMessage.member.roles.has(role_team2) || receivedMessage.member.roles.has(role_team3) || receivedMessage.member.roles.has(role_gameMaster) )){
  301.             receivedMessage.channel.send("Bravo, tu as remporté la première épreuve! ");
  302.  
  303.             let channelInfo = giveRoleTeam(role_1, receivedMessage);
  304.            
  305.             client.channels.get(channelInfo).send("@everyone Bravo à "+receivedMessage.author.toString()+" qui a trouvé le code de la première épreuve! Vous avez désormais tous accès à l'épreuve suivante! Faites vite, le chronomètre vient de démarrer!");
  306.  
  307.             if(receivedMessage.member.roles.has(role_team1)){
  308.                 team1_startTime = Date.now();
  309.             }else if(receivedMessage.member.roles.has(role_team2)){
  310.                 team2_startTime = Date.now();
  311.             }else if(receivedMessage.member.roles.has(role_team3)){
  312.                 team3_startTime = Date.now();
  313.             }
  314.  
  315.             increaseStep(receivedMessage);
  316.  
  317.            
  318.  
  319.         }else if(arguments == code_2 && (receivedMessage.member.roles.has(role_1)  ||  receivedMessage.member.roles.has(role_gameMaster) )){
  320.             receivedMessage.channel.send("Bravo, tu as remporté la seconde épreuve! ");
  321.  
  322.             let channelInfo = giveRoleTeam(role_2, receivedMessage);
  323.            
  324.             client.channels.get(channelInfo).send("@everyone Bravo à "+receivedMessage.author.toString()+" qui a trouvé le code de la seconde épreuve! Vous avez désormais tous accès à l'épreuve suivante!");
  325.  
  326.             increaseStep(receivedMessage);
  327.  
  328.         }else if(arguments == code_3 && (receivedMessage.member.roles.has(role_2)  ||  receivedMessage.member.roles.has(role_gameMaster) )){
  329.             receivedMessage.channel.send("Bravo, tu as remporté la troisième épreuve! ");
  330.  
  331.             let channelInfo = giveRoleTeam(role_3, receivedMessage);
  332.            
  333.             client.channels.get(channelInfo).send("@everyone Bravo à "+receivedMessage.author.toString()+" qui a trouvé le code de la troisième épreuve! Vous avez désormais tous accès à l'épreuve suivante!");
  334.  
  335.             increaseStep(receivedMessage);
  336.  
  337.         }else if(arguments == code_4 && (receivedMessage.member.roles.has(role_3)  ||  receivedMessage.member.roles.has(role_gameMaster) )){
  338.             receivedMessage.channel.send("Bravo, tu as remporté la quatrième épreuve! ");
  339.  
  340.             let channelInfo = giveRoleTeam(role_4, receivedMessage);
  341.            
  342.             client.channels.get(channelInfo).send("@everyone Bravo à "+receivedMessage.author.toString()+" qui a trouvé le code de la quatrième épreuve! Vous avez désormais tous accès à l'épreuve suivante!");
  343.  
  344.             increaseStep(receivedMessage);
  345.  
  346.         }else if(arguments == code_5 && (receivedMessage.member.roles.has(role_4)  ||  receivedMessage.member.roles.has(role_gameMaster) )){
  347.             receivedMessage.channel.send("Bravo, tu as remporté la dernière épreuve! ");
  348.             let channelInfo = giveRoleTeam(role_5, receivedMessage);
  349.  
  350.             increaseStep(receivedMessage);
  351.            
  352.             client.channels.get(channelInfo).send("@everyone Bravo à "+receivedMessage.author.toString()+" qui a trouvé le code de la dernière épreuve!");
  353.        
  354.         }else if(arguments == code_6 && (receivedMessage.member.roles.has(role_5)  ||  receivedMessage.member.roles.has(role_gameMaster) )){
  355.             receivedMessage.channel.send("Bravo, ton équipe et toi avez presque gagné cet évent!!! ");
  356.            
  357.             let channelInfo = giveRoleTeam(role_quasiwin, receivedMessage);
  358.  
  359.             increaseStep(receivedMessage);
  360.            
  361.             client.channels.get(channel_acc).send("@everyone L'équipe de "+receivedMessage.author.toString()+" est sur le point de gagner l'event!");
  362.         }
  363.  
  364.        
  365.        
  366.         else{
  367.             receivedMessage.channel.send("Désolé, ton code est incorrect :( ");
  368.  
  369.             if(receivedMessage.member.roles.has(role_team1)){
  370.                 team1_fail++;
  371.             }else if(receivedMessage.member.roles.has(role_team2)){
  372.                 team2_fail++;
  373.             }else if(receivedMessage.member.roles.has(role_team3)){
  374.                 team3_fail++;
  375.             }
  376.         }
  377.        
  378.           console.log(receivedMessage.member);
  379.     }
  380. }
  381. function intAlea(min, max)
  382. {
  383.  return Math.floor(Math.random() * (max - min + 1)) + min;
  384. }
  385.  
  386. function secondsToDhms(seconds) {
  387.     seconds = Number(seconds);
  388.     var h = Math.floor(seconds % (3600*24) / 3600);
  389.     var m = Math.floor(seconds % 3600 / 60);
  390.     var s = Math.floor(seconds % 60);
  391.    
  392.     var hDisplay = h > 0 ? h + (h == 1 ? " heure, " : " heures, ") : "";
  393.     var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
  394.     var sDisplay = s > 0 ? s + (s == 1 ? " seconde" : " secondes") : "";
  395.  
  396.     return hDisplay + mDisplay + sDisplay;
  397. }
  398.  
  399. client.login(bot_token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement