Advertisement
Guest User

Untitled

a guest
May 26th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const GOOGLE_SPREADSHEETID = '11e4UGlJbX-g5blyhupAvdhfzr9Aac26dZgw42bE5si4';
  2. const creds = require('./leaderboard.json');
  3.  
  4. //Récupération de l'API Discord
  5. const Discord = require('discord.js');
  6. const client = new Discord.Client();
  7.  
  8. //Récupération de l'API Google Sheets
  9. var googlesheetsread = require('google-drive-sheets');
  10. var googlesheetswrite = require('google-sheets-manager');
  11. var mySheet = new googlesheetsread('11e4UGlJbX-g5blyhupAvdhfzr9Aac26dZgw42bE5si4');
  12. var ServiceAccount = googlesheetswrite.ServiceAccount;
  13. var GoogleSheet = googlesheetswrite.GoogleSheet;
  14. var authClass = new ServiceAccount(creds);
  15. var sheetAPI = new GoogleSheet(authClass, GOOGLE_SPREADSHEETID, 0);
  16.  
  17. //Function Callback pour logs
  18. var defaultCallback = (err, res) => {
  19.     if (err) {
  20.         throw err;
  21.     }
  22.     console.log(res);
  23. };
  24.  
  25. //Confirmation lancement du bot
  26. client.on('ready', () => {
  27.     console.log(`Logged in as ${client.user.tag}!`);
  28. });
  29.  
  30. //Confirmation connexion google sheet
  31. mySheet.useServiceAccountAuth(creds, function(err) {
  32.     mySheet.getInfo(function(err, sheetInfo) {
  33.         console.log(sheetInfo.title + ' is loaded');
  34.     });
  35. })
  36.  
  37. client.on('message', msg => {
  38.  
  39.     if (msg.content.startsWith("!stats")){
  40.         var joueur = msg.content.substr("!stats ".length);
  41.         if (joueur === "")
  42.             mySheet.useServiceAccountAuth(creds, function(err) {
  43.                 mySheet.getInfo(function(err, sheetInfo){
  44.                     var joueursdb = sheetInfo.worksheets[0];
  45.                     joueursdb.getRows(function(err, rows){
  46.                         var i = 0;
  47.                         while(i < rows.length && rows[i].id != msg.author.id){
  48.                             i++
  49.                         }
  50.                         if (i == rows.length)
  51.                             msg.channel.send("Joueur introuvable");
  52.                         else{
  53.                             var embed = new Discord.RichEmbed()
  54.                             .setTitle("Elite League 1v1 Stats")
  55.                             .setAuthor(rows[i].joueurs)
  56.                             .setColor("8e0ec3")
  57.                             .addField("Classement", i+1, true)
  58.                             .addField("Cote", rows[i].cote, true)
  59.                             .addField("Ligue", rows[i].rang, true)
  60.                             .addField("Victoires", rows[i].win, true)
  61.                             .addField("Défaites", rows[i].lose, true)
  62.                             .addField("Winrate", rows[i].winrate, true);
  63.                             msg.channel.send(embed);
  64.                         }
  65.                     });
  66.                 });
  67.             });
  68.         else {
  69.             mySheet.useServiceAccountAuth(creds, function(err) {
  70.                 mySheet.getInfo(function(err, sheetInfo){
  71.                     var joueursdb = sheetInfo.worksheets[0];
  72.                     joueursdb.getRows(function(err, rows){
  73.                         var i = 0;
  74.                         console.log(joueur.id);
  75.                         while(i < rows.length && rows[i].id != joueur.id){
  76.                             i++
  77.                         }
  78.                         if (i == rows.length)
  79.                             msg.channel.send("Joueur introuvable");
  80.                         else{
  81.                             if(rows[i].joueurs == "Ragestuck"){
  82.                                 var embed = new Discord.RichEmbed()
  83.                                 .setTitle("Le -1 représente l'infini")
  84.                                 .setAuthor("Dieu tout puissant")
  85.                                 .setColor("8e0ec3")
  86.                                 .addField("Classement", -1, true)
  87.                                 .addField("Cote", -1, true)
  88.                                 .addField("Ligue", "DIEU", true)
  89.                                 .addField("Victoires", -1, true)
  90.                                 .addField("Défaites", -1, true)
  91.                                 .addField("Winrate", -1, true);
  92.                                 msg.channel.send(embed);
  93.                             }
  94.                             else{
  95.                                 var embed = new Discord.RichEmbed()
  96.                                 .setTitle("Elite League 1v1 Stats")
  97.                                 .setAuthor(rows[i].joueurs)
  98.                                 .setColor("8e0ec3")
  99.                                 .addField("Classement", i+1, true)
  100.                                 .addField("Cote", rows[i].cote, true)
  101.                                 .addField("Ligue", rows[i].rang, true)
  102.                                 .addField("Victoires", rows[i].win, true)
  103.                                 .addField("Défaites", rows[i].lose, true)
  104.                                 .addField("Winrate", rows[i].winrate, true);
  105.                                 msg.channel.send(embed);
  106.                             }
  107.                         }
  108.                     });
  109.                 });
  110.             });
  111.         }
  112.     }
  113.  
  114.     if (msg.content.startsWith("!top")){
  115.         var number = msg.content.substr("!top ".length);
  116.         if (number === ""){
  117.             mySheet.useServiceAccountAuth(creds, function(err) {
  118.                 mySheet.getInfo(function(err, sheetInfo){
  119.                     var joueursdb = sheetInfo.worksheets[0];
  120.                     joueursdb.getRows(function(err, rows){
  121.                         var embed = new Discord.RichEmbed()
  122.                         .setTitle("Voici le poidum de la ligue 1v1")
  123.                         .setAuthor("Le panthéon")
  124.                         .setColor("8e0ec3")
  125.                         .addBlankField(true)
  126.                         .addField("Classement", 1, true)
  127.                         .addBlankField(true)
  128.                         .addField("Classement", 2, true)
  129.                         .addField("Nom", rows[0].joueurs, true)
  130.                         .addField("Classement", 3, true)
  131.                         .addField("Nom", rows[1].joueurs, true)
  132.                         .addBlankField(true)
  133.                         .addField("Nom", rows[2].joueurs, true)
  134.                         msg.channel.send(embed);
  135.                     });
  136.                 });
  137.             });
  138.         }
  139.     }
  140.  
  141.     if (msg.channel.id == "432982697183281153"){
  142.         //envoie du mp
  143.         msg.author.send("Tu es bien inscris à notre :trophy: **Elite League 1v1 Public** :tada:\n\n"+
  144.                         "Merci de venir **20 min** avant le début de nos **Tournois** dans le salon **#confirmation**\n"+
  145.                         "Tu peux consulter le canal **#planning** pour te renseigner sur les horaires de nos **Tournois**\n\n"+
  146.                         "Si tu veux connaitre ton rang ainsi que les meilleurs joueurs du serveur, je t'invite à utiliser les commandes `!stats [pseudo]` et `top`\n\n"+
  147.                         "Pour toutes autres questions, les administrateurs, le staff et les stagiaires se feront un plaisir de t'aider. Car ce n'est que leur travail après tout :wink:");
  148.         //ajout du role
  149.         const guildMember = msg.member
  150.         var role = guildMember.guild.roles.find('name', 'League 1v1')
  151.         guildMember.addRole(role);
  152.         //remplissage du gsheet
  153.         mySheet.useServiceAccountAuth(creds, function(err) {
  154.             mySheet.getInfo(function(err, sheetInfo){
  155.                 var joueursdb = sheetInfo.worksheets[0];
  156.                 joueursdb.getRows(function(err, rows){
  157.                     var i = 0;
  158.                     while (rows[i].joueurs != ""){
  159.                         console.log(rows[i].joueurs);
  160.                         i++;
  161.                     }
  162.                     sheetAPI.setData([
  163.                         [msg.author.id], [msg.author.username], ['100'],
  164.                     ],  {
  165.                         range: {
  166.                             startRow: i+2,
  167.                             startCol: 1,
  168.                             endRow: i+2,
  169.                             endCol: 6,
  170.                         },
  171.                         majorDimension: "COLUMNS",
  172.                     }, defaultCallback);
  173.                     sheetAPI.setData([
  174.                         ['0'], ['0'],
  175.                     ],  {
  176.                         range: {
  177.                             startRow: i+2,
  178.                             startCol: 5,
  179.                             endRow: i+2,
  180.                             endCol: 6,
  181.                         },
  182.                         majorDimension: "COLUMNS",
  183.                     }, defaultCallback);
  184.                 });
  185.             });
  186.         });
  187.     }
  188. });
  189.    
  190. client.login('NDQ4OTU0MDE3NDU3MTExMDQw.DedoqA.Ht2OnyxMTNCefjGUV5AMWiyknzU');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement