Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const GOOGLE_SPREADSHEETID = '11e4UGlJbX-g5blyhupAvdhfzr9Aac26dZgw42bE5si4';
- const creds = require('./leaderboard.json');
- //Récupération de l'API Discord
- const Discord = require('discord.js');
- const client = new Discord.Client();
- //Récupération de l'API Google Sheets
- var googlesheetsread = require('google-drive-sheets');
- var googlesheetswrite = require('google-sheets-manager');
- var mySheet = new googlesheetsread('11e4UGlJbX-g5blyhupAvdhfzr9Aac26dZgw42bE5si4');
- var ServiceAccount = googlesheetswrite.ServiceAccount;
- var GoogleSheet = googlesheetswrite.GoogleSheet;
- var authClass = new ServiceAccount(creds);
- var sheetAPI = new GoogleSheet(authClass, GOOGLE_SPREADSHEETID, 0);
- //Function Callback pour logs
- var defaultCallback = (err, res) => {
- if (err) {
- throw err;
- }
- console.log(res);
- };
- //Confirmation lancement du bot
- client.on('ready', () => {
- console.log(`Logged in as ${client.user.tag}!`);
- });
- //Confirmation connexion google sheet
- mySheet.useServiceAccountAuth(creds, function(err) {
- mySheet.getInfo(function(err, sheetInfo) {
- console.log(sheetInfo.title + ' is loaded');
- });
- })
- client.on('message', msg => {
- if (msg.content.startsWith("!stats")){
- var joueur = msg.content.substr("!stats ".length);
- if (joueur === "")
- mySheet.useServiceAccountAuth(creds, function(err) {
- mySheet.getInfo(function(err, sheetInfo){
- var joueursdb = sheetInfo.worksheets[0];
- joueursdb.getRows(function(err, rows){
- var i = 0;
- while(i < rows.length && rows[i].id != msg.author.id){
- i++
- }
- if (i == rows.length)
- msg.channel.send("Joueur introuvable");
- else{
- var embed = new Discord.RichEmbed()
- .setTitle("Elite League 1v1 Stats")
- .setAuthor(rows[i].joueurs)
- .setColor("8e0ec3")
- .addField("Classement", i+1, true)
- .addField("Cote", rows[i].cote, true)
- .addField("Ligue", rows[i].rang, true)
- .addField("Victoires", rows[i].win, true)
- .addField("Défaites", rows[i].lose, true)
- .addField("Winrate", rows[i].winrate, true);
- msg.channel.send(embed);
- }
- });
- });
- });
- else {
- mySheet.useServiceAccountAuth(creds, function(err) {
- mySheet.getInfo(function(err, sheetInfo){
- var joueursdb = sheetInfo.worksheets[0];
- joueursdb.getRows(function(err, rows){
- var i = 0;
- console.log(joueur.id);
- while(i < rows.length && rows[i].id != joueur.id){
- i++
- }
- if (i == rows.length)
- msg.channel.send("Joueur introuvable");
- else{
- if(rows[i].joueurs == "Ragestuck"){
- var embed = new Discord.RichEmbed()
- .setTitle("Le -1 représente l'infini")
- .setAuthor("Dieu tout puissant")
- .setColor("8e0ec3")
- .addField("Classement", -1, true)
- .addField("Cote", -1, true)
- .addField("Ligue", "DIEU", true)
- .addField("Victoires", -1, true)
- .addField("Défaites", -1, true)
- .addField("Winrate", -1, true);
- msg.channel.send(embed);
- }
- else{
- var embed = new Discord.RichEmbed()
- .setTitle("Elite League 1v1 Stats")
- .setAuthor(rows[i].joueurs)
- .setColor("8e0ec3")
- .addField("Classement", i+1, true)
- .addField("Cote", rows[i].cote, true)
- .addField("Ligue", rows[i].rang, true)
- .addField("Victoires", rows[i].win, true)
- .addField("Défaites", rows[i].lose, true)
- .addField("Winrate", rows[i].winrate, true);
- msg.channel.send(embed);
- }
- }
- });
- });
- });
- }
- }
- if (msg.content.startsWith("!top")){
- var number = msg.content.substr("!top ".length);
- if (number === ""){
- mySheet.useServiceAccountAuth(creds, function(err) {
- mySheet.getInfo(function(err, sheetInfo){
- var joueursdb = sheetInfo.worksheets[0];
- joueursdb.getRows(function(err, rows){
- var embed = new Discord.RichEmbed()
- .setTitle("Voici le poidum de la ligue 1v1")
- .setAuthor("Le panthéon")
- .setColor("8e0ec3")
- .addBlankField(true)
- .addField("Classement", 1, true)
- .addBlankField(true)
- .addField("Classement", 2, true)
- .addField("Nom", rows[0].joueurs, true)
- .addField("Classement", 3, true)
- .addField("Nom", rows[1].joueurs, true)
- .addBlankField(true)
- .addField("Nom", rows[2].joueurs, true)
- msg.channel.send(embed);
- });
- });
- });
- }
- }
- if (msg.channel.id == "432982697183281153"){
- //envoie du mp
- msg.author.send("Tu es bien inscris à notre :trophy: **Elite League 1v1 Public** :tada:\n\n"+
- "Merci de venir **20 min** avant le début de nos **Tournois** dans le salon **#confirmation**\n"+
- "Tu peux consulter le canal **#planning** pour te renseigner sur les horaires de nos **Tournois**\n\n"+
- "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"+
- "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:");
- //ajout du role
- const guildMember = msg.member
- var role = guildMember.guild.roles.find('name', 'League 1v1')
- guildMember.addRole(role);
- //remplissage du gsheet
- mySheet.useServiceAccountAuth(creds, function(err) {
- mySheet.getInfo(function(err, sheetInfo){
- var joueursdb = sheetInfo.worksheets[0];
- joueursdb.getRows(function(err, rows){
- var i = 0;
- while (rows[i].joueurs != ""){
- console.log(rows[i].joueurs);
- i++;
- }
- sheetAPI.setData([
- [msg.author.id], [msg.author.username], ['100'],
- ], {
- range: {
- startRow: i+2,
- startCol: 1,
- endRow: i+2,
- endCol: 6,
- },
- majorDimension: "COLUMNS",
- }, defaultCallback);
- sheetAPI.setData([
- ['0'], ['0'],
- ], {
- range: {
- startRow: i+2,
- startCol: 5,
- endRow: i+2,
- endCol: 6,
- },
- majorDimension: "COLUMNS",
- }, defaultCallback);
- });
- });
- });
- }
- });
- client.login('NDQ4OTU0MDE3NDU3MTExMDQw.DedoqA.Ht2OnyxMTNCefjGUV5AMWiyknzU');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement