Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var SyncPromise = require('sync-promise');
- const Discord = require('discord.js');
- var JSON = require('JSON');
- var mysql = require('mysql');
- const fs = require('fs');
- var convert = require('convert-seconds');
- var rp = require('request-promise');
- var Promise = require('bluebird');
- var Jimp = require("jimp");
- var assert = require('assert')
- var fsins = require('fs');
- var outsidepass = ["0", "1"];
- const Nodesu = require('nodesu');
- outsidepass[0] = fs.readFileSync('./pswdt.config', 'utf8');
- const osu = new Nodesu.Client(outsidepass[0], {
- // parseData: true
- });
- const client = new Discord.Client();
- // outputs to stdout.
- // Valeur définissant l'activation des inscriptions
- var allowedsub = true;
- // Mot de passe du Discord API
- var fspass2 = "";
- var Enum = require('enum');
- // Liste des joueurs actuellement inscrits
- var joueurs = ["Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide"];
- fsins.readFile('players.json', function (err, data) {
- if (err) throw err;
- joueurs = data.toString().split("\n");
- for (i in joueurs) {
- console.log(joueurs[i]);
- }
- });
- var rolls = ["Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide", "Vide"];
- var spoils = ["no"]
- fsins.readFile('spoilers.json', function (err, data) {
- if (err) throw err;
- spoils = JSON.parse(data)
- for (i in spoils) {
- console.log(spoils[i]);
- }
- });
- var messagetwitch = ""
- // Pour le lol
- var colors = require('colors');
- // Le channel auquel les joueurs peuvent écrire une commande
- var allowedchannel = "inscriptions";
- var allowedchannelroll = "rolls";
- osu.user.get("300BPM JUMPER", 0, 1, 1).then(console.log());
- //"```"
- // Vérification des messages envoyés par les utilisateurs
- //Mode output
- function getmods(modscount) {
- var modetest = 0
- //Nodesu.mods.get(modetest).then(console.log)
- var myEnum = new Enum(Nodesu.Mods)
- console.log(modscount)
- myEnum.isFlaggable;
- console.log(myEnum.get(64))
- }
- client.on('message', async message => {
- if (message.author.bot) return;
- var fsuser = require('fs');
- if(message.guild == null && (message.content.startsWith('!aspoil') || message.content.startsWith("!spoil"))){
- if (message.content.startsWith("!aspoil ")){
- const fs = require('fs');
- var spoiler = message.author.username + ": " + message.content.replace("!aspoil ", "")
- if (spoiler != ""){
- message.reply("Votre spoil a bien été ajouté. Numéro: "+spoils.length +" - " + spoiler)
- spoils.push(spoiler)
- fs.writeFile("./spoilers.json", JSON.stringify(spoils))
- } else{
- message.reply("Merci d'indiquer un texte.")
- }
- }
- if (message.content == "!spoils"){
- message.reply("Total de spoils disponibles: " + spoils.length)
- }
- if (message.content.startsWith("!spoil ")){
- var content = parseInt(message.content.replace('!spoil ', ""))
- if (spoils[content]!= undefined){
- message.reply(spoils[content])
- } else {
- message.reply("Ce spoil n'existe pas.")
- }
- }
- } else if (message.guild != null && (message.content.startsWith('!aspoil') || message.content.startsWith("!spoil"))){
- message.reply("Cette commande ne fonctionne qu'en privé.")
- }
- /* if (message.content === '!mapset') {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id)) {
- const embed = new Discord.RichEmbed()
- .setColor(0x00AE86)
- .addField("**-------- EASY (Simple) --------**",
- "\r\n**[--- Made of fire ---](https://osu.ppy.sh/b/40017)**\r\n**Difficulté**: Oni (4.98)\r\n**Durée:** 2:40" +
- "\r\n\r\n" +
- "\r\n**[--- System of a down - Victinity of Obscenity ---](https://osu.ppy.sh/b/50712)**\r\n**Difficulté**: Impossible (4.74)\r\n**Durée:** 2:40" +
- "\r\n\r\n" +
- "\r\n**[--- BlackYooh vs. siromaru - BLACK or WHITE? ---](https://osu.ppy.sh/b/637477)**\r\n**Difficulté**: INFINITE (4.74) \r\n**Durée:** 1:55" +
- "\r\n\r\n"
- , true)
- .addBlankField(false)
- .addField("**-------- EASY (Advanced) --------**",
- "\r\n**[--- Nomy - Cocaine (Nightcore Mix) ---](https://osu.ppy.sh/b/124993)**\r\n**Difficulté**: Insane (4.66) \r\n**Durée:** 3:01" +
- "\r\n\r\n" +
- "\r\n**[--- RADWIMPS - Zen Zen Zense (movie ver.) ---](https://osu.ppy.sh/b/1093245)**\r\n**Difficulté**: Sotarks' Insane (4.65)\r\n**Durée:** 1:53" +
- "\r\n\r\n" +
- "\r\n**[--- senya - Hitomi ni Kakusareta Omoi ---](https://osu.ppy.sh/b/867391)**\r\n**Difficulté**: Lunatic (4.64)\r\n**Durée:** 2:44" +
- "\r\n\r\n"
- , true)
- .addBlankField(false)
- .addField("**-------- EASY (Hard) --------**",
- "\r\n**[--- Stonebank - All Night ---](https://osu.ppy.sh/b/891762)**\r\n**Difficulté**: Insane (4.61) \r\n**Durée:** 1:52" +
- "\r\n\r\n" +
- "\r\n**[--- Nico Nico Douga - U.N. Owen wa Kanojo nanoka? (Nico Mega Mix) ---](https://osu.ppy.sh/b/27638)**\r\n**Difficulté**: TAG4 (10.25)\r\n**Durée:** 3:30" +
- "\r\n\r\n" +
- "\r\n**[--- Frederic - oddloop ---](https://osu.ppy.sh/b/1137879)**\r\n**Difficulté**: oldloop (4.46)\r\n**Durée:** 4:11" +
- "\r\n\r\n"
- , true)
- .addBlankField(false)
- .addField("**-------- EASY + FLASHLIGHT --------**",
- "\r\n**[--- beatMARIO - Night of Knights ---](https://osu.ppy.sh/b/58063)**\r\n**Difficulté**: SOLO (4.52) \r\n**Durée:** 3:14" +
- "\r\n\r\n" +
- "\r\n**[--- Drop - Granat ---](https://osu.ppy.sh/b/1059390)**\r\n**Difficulté**: INSANE (3.62)\r\n**Durée:** 0:42" +
- "\r\n\r\n" +
- "\r\n**[--- SawanoHiroyuki[nZk]:mizuki - &Z (TV size-English ver.-) ---](https://osu.ppy.sh/b/595161)**\r\n**Difficulté**: captin's Insane (3.81)\r\n**Durée:** 1:27" +
- "\r\n\r\n"
- , true)
- .addBlankField(false)
- .addField("**-------- TIEBREAK --------**",
- "\r\n**[--- AK X LYNX ft. Veela - Virtual Paradise ---](https://osu.ppy.sh/b/1020502)**\r\n**Difficulté**: Fantaisie (4.77)\r\n**Durée:** 2:57"
- , true).addBlankField(false)
- .addField("**-------- MAPSET COMPLET --------**",
- "\r\n**[--- CLIQUEZ ICI ---](http://www.mediafire.com/file/4g49vk5bxdu2u5k/NAWAK%20N8.zip)**"
- , true)
- message.channel.send({ embed });
- }
- else {
- // message.reply("Vous n'avez pas le droit.");
- }
- }*/
- if (message.content === '!inscrits') {
- var nombrejoueursactuel = 0;
- var inscritstotal = "";
- for (var i = 0; i < 10; i++) {
- if (joueurs[i] == "Vide") {/*Osef */ } else {
- inscritstotal = inscritstotal + joueurs[i] + "\r\n";
- nombrejoueursactuel++;
- }
- }
- console.log(inscritstotal);
- message.channel.send("Joueurs: (" + nombrejoueursactuel + " sur 10) \r\n" + inscritstotal);
- }
- // Osu related commands
- if (message.content === '!rolls') {
- var nombrejoueursactuel = 0;
- var inscritstotal = "";
- for (var i = 0; i < 10; i++) {
- if (joueurs[i] == "Vide") {/*Osef */ } else {
- inscritstotal = inscritstotal + "Joueur n°" + parseInt(i + 1) + " " + joueurs[i] + ": " + rolls[i] + "\r\n";
- nombrejoueursactuel++;
- }
- }
- console.log(inscritstotal);
- message.channel.send("Rolls: (" + nombrejoueursactuel + " sur 10) \r\n" + inscritstotal);
- }
- if (message.content.startsWith("!osu")) {
- var osu_name = message.content.replace("!osu", "")
- console.log(osu_name)
- if (osu_name != "") {
- if (osu_name.startsWith(" add")) {
- osu_name = osu_name.replace(" add ", "")
- osu.user.get(osu_name).then(function (osudata) {
- // console.log(osudata)
- var stats_per_player = {
- "name": message.author.username,
- "osuname": osu_name,
- "pp": "0",
- "rank": "0",
- "countryrank": "0",
- "date": ""
- }
- stats_per_player['pp'] = osudata['pp_raw']
- stats_per_player['rank'] = osudata['pp_rank']
- stats_per_player['countryrank'] = osudata['pp_country_rank']
- var fs = require('fs')
- fs.writeFile("./user/" + message.author.id + ".json", JSON.stringify(stats_per_player))
- message.channel.send("Votre pseudo a bien été ajouté à la liste. Faites '!osu stats' pour mettre à jour vos pp.")
- }).catch()
- }
- else if (osu_name.startsWith(" stats")) {
- if (osu_name == " stats") {
- var fs = require('fs')
- fs.readFile("./user/" + message.author.id + ".json", (err, data) => {
- if (err) {
- message.reply("Vous n'avez pas activé les statistiques, faites !osu add pseudo (remplacez pseudo par votre pseudo osu")
- } else {
- var osudata = JSON.parse(data)
- osu.user.get(osudata['osuname']).then(function (osu_user) {
- var ppdifference = parseFloat(osu_user["pp_raw"]) - parseFloat(osudata['pp'])
- var rankdifference = parseFloat(osudata['rank']) - parseFloat(osu_user["pp_rank"])
- var crankdifference = parseFloat(osudata['countryrank']) - parseFloat(osu_user["pp_country_rank"])
- if (osudata['acc'] != undefined) {
- var accdifference = parseFloat(osudata['acc']) - parseFloat(osu_user["accuracy"])
- } else {
- var accdifference = "0";
- }
- if (osudata['rankscore'] != undefined) {
- var rscoredifference = parseFloat(osu_user["ranked_score"]) - parseFloat(osudata['rankscore'])
- } else {
- var rscoredifference = "0";
- }
- if (osudata['norankscore'] != undefined) {
- var scoredifference = parseFloat(osu_user["total_score"]) - parseFloat(osudata['norankscore'])
- } else {
- var scoredifference = "0";
- }
- osudata['pp'] = osu_user['pp_raw']
- osudata['acc'] = osu_user['accuracy']
- osudata['rankscore'] = osu_user['ranked_score']
- osudata['norankscore'] = osu_user['total_score']
- osudata['countryrank'] = osu_user['pp_country_rank']
- osudata['rank'] = osu_user['pp_rank']
- const embed = new Discord.RichEmbed()
- .setTitle(osudata['osuname'])
- .setThumbnail("https://a.ppy.sh/" + osu_user['user_id'] + "?.jpg")
- .setURL("https://osu.ppy.sh/u/" + osu_user['user_id'])
- .setColor(0x00AE86)
- .setDescription("**`|- PP -|`** " + ("__`" + osu_user['pp_raw'] + " (" + ppdifference + ")" + "`__").padStart(50) +
- "\r\n**`|- Accuracy -|` ** " + ("__`" + osudata['acc'].substring(0, 5) + "% (" + accdifference + ")" + "`__").padStart(35) +
- "\r\n**`|- Score total -|`** " + ("__`" + osudata['norankscore'].replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " ( +" + scoredifference + " )" + "`__").padStart(40) +
- "\r\n**`|- Score ranked -|`** " + ("__`" + osudata['rankscore'].replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " ( +" + rscoredifference + " )" + "`__").padStart(37) +
- "\r\n**`|- Rank Global -|`** " + ("__`#" + osu_user['pp_rank'] + " (" + rankdifference + ")" + "`__").padStart(28) +
- "\r\n**`|- Rank Pays (" + osu_user['country'] + ") -|`** " + ("__`#" + osu_user['pp_country_rank'] + " (" + crankdifference + ")" + "`__").padStart(22))
- message.channel.send({ embed })
- fs.writeFile("./user/" + message.author.id + ".json", JSON.stringify(osudata))
- })
- }
- })
- } else {
- var osu_name2 = osu_name.replace(" stats ", "")
- osu.user.get(osu_name2).then(function (osu_user) {
- console.log(osu_user['events'][0])
- if (osu_user['events'][0] != undefined) {
- var topmapid = osu_user['events'][0]['beatmap_id']
- var topmapuserid = osu_user['user_id']
- osu.scores.get(topmapid, undefined, 0, 1, topmapuserid).then(function (data) {
- console.log(data[0])
- })
- }
- const embed = new Discord.RichEmbed()
- .setTitle("**`" + osu_user['username'] + "`**")
- .setThumbnail("https://a.ppy.sh/" + osu_user['user_id'] + "?.png")
- .setURL("https://osu.ppy.sh/u/" + osu_user['user_id'])
- .setColor(0x00AE86)
- .setDescription("**`|- PP -|`** " + ("__`" + osu_user['pp_raw'] + "`__").padStart(50) +
- "\r\n**`|- Accuracy -|` ** " + ("__`" + osu_user['accuracy'].substring(0, 5) + "`__").padStart(34) +
- "\r\n**`|- Score total -|`** " + ("__`" + osu_user['total_score'].replace(/\B(?=(\d{3})+(?!\d))/g, " ") + "`__").padStart(37) +
- "\r\n**`|- Score ranked -|`** " + ("__`" + osu_user['ranked_score'].replace(/\B(?=(\d{3})+(?!\d))/g, " ") + "`__").padStart(34) +
- "\r\n**`|- Rank Global -|`** " + ("__`#" + osu_user['pp_rank'] + "`__").padStart(27) +
- "\r\n**`|- Rank Pays (" + osu_user['country'] + ") -|`** " + ("__`#" + osu_user['pp_country_rank'] + "`__").padStart(21) +
- "\r\n**`|- Last top -|`** ")
- message.channel.send({ embed })
- //console.log()
- }).catch()
- }
- }
- } else {
- const embed = new Discord.RichEmbed()
- .setTitle("Liste des commandes disponibles pour !osu")
- .setColor(0x00AE86)
- .setDescription("**!osu add <pseudo_osu>:** Ajoutez votre compte pour tracker votre progression" +
- "\r\n**!osu stats:** Affiche vos informations" +
- "\r\n**!osu stats <pseudo_osu>:** Affiche les statistiques d'un autre joueur" +
- "\r\n**!osu recent:** Affiche le dernier score obtenu sur une map si vous l'avez pass. La commande sera bientôt remplacé par une notification MP (désactivable)")
- message.channel.send({ embed })
- }
- }
- // AFFICHAGE D'UN JOUEUR
- if ((message.content.startsWith('https://osu.ppy.sh/u/')) || message.content.startsWith('https://osu.ppy.sh/users/')) {
- const m = await message.channel.send("Création de vos informations en cours... Étape 0/3");
- //first_message_var = message.channel.send("Veuillez patienter...")
- var old_usermes = message.content;
- if (message.content.startsWith('https://osu.ppy.sh/u/')) {
- old_usermes = old_usermes.replace("https://osu.ppy.sh/u/", "");
- } else if (message.content.startsWith('https://osu.ppy.sh/users/')) {
- old_usermes = old_usermes.replace("https://osu.ppy.sh/users/", "");
- }
- if (message.content.indexOf("%20")) {
- old_usermes = old_usermes.replace(/%20/g, "_")
- }
- var userarray = ["empty"];
- var username = { "name": old_usermes, "content": userarray };
- function printuserbest(user) {
- osu.user.getBest(user['name'], 0, 5).then(function (userdata) {
- m.edit("Création de vos informations en cours... Étape 1/3")
- var username = { "name": user['name'], "content": userdata };
- return username;
- }).then(function (userbpmap) {
- // console.log(userbpmap['content'][1])
- m.edit("Création de vos informations en cours... Étape 2/3")
- return Promise.all(userbpmap['content'].map(function (row) {
- // console.log(row['beatmap_id']);
- return osu.beatmaps.getByBeatmapId(row['beatmap_id']).then(function (mapinfo) {
- row['beatmap_id'] = mapinfo[0]['artist'] + " " + mapinfo[0]['title']
- return row;
- })
- }))
- }).then(function (userinfo) {
- // message.delete();
- var pseudo_osu = user['name']
- osu.user.get(pseudo_osu).then(function (finalinfos) {
- return finalinfos;
- }).then(function (write_to_embed) {
- checkosu_id = "./osuinfos/" + write_to_embed["user_id"] + ".json"
- var fs = require('fs')
- fs.readFile(checkosu_id, "utf8", (err, data) => {
- if (err) {
- var saveuser = require('fs')
- var data_parsed = {
- "osuname": "",
- "actualpp": 0,
- "newpp": "",
- "osu_id": ""
- }
- console.log(err)
- var saveuser = require('fs')
- data_parsed["osu_name"] = write_to_embed["username"]
- data_parsed["actualpp"] = write_to_embed["pp_raw"]
- data_parsed["newpp"] = write_to_embed["pp_raw"]
- data_parsed["osu_id"] = write_to_embed["user_id"]
- saveuser.writeFile(checkosu_id, JSON.stringify(data_parsed), function (err) {
- })
- const embed = new Discord.RichEmbed()
- .setAuthor(write_to_embed["username"], "https://a.ppy.sh/" + write_to_embed['user_id'] + "?.jpg")
- /*
- * Alternatively, use "#00AE86", [0, 174, 134] or an integer number.
- */
- .setColor(0x00AE86)
- .setDescription("**PP:** " + write_to_embed['pp_raw'] + "\r\n" +
- "**Playcount:** " + write_to_embed['playcount'] + "\r\n" +
- "**Rank National:** #" + write_to_embed['pp_country_rank'] + " " + write_to_embed['country'] + "\r\n" +
- "**Rank Global:** #" + write_to_embed['pp_rank'] + "\r\n\r\nLe bot va maintenant enregistrer les différences de PP pour cet utilisateur."
- )
- //.setFooter("This is the footer text, it can hold 2048 characters", "http://i.imgur.com/w1vhFSR.png")
- //.setImage("http://i.imgur.com/yVpymuV.png")
- .setThumbnail("https://a.ppy.sh/" + write_to_embed['user_id'] + "?.jpg")
- /*
- * Takes a Date object, defaults to current date.
- */
- //.setTimestamp()
- .setURL("https://osu.ppy.sh/u/" + write_to_embed['user_id'])
- .addField("TOP 5 PP:",
- "**" + userinfo[0]['beatmap_id'] + "** \r\n" +
- "Rank: " + userinfo[0]['rank'] + "\r\n" +
- "PP: " + userinfo[0]['pp'] + "\r\n" +
- "Score: " + userinfo[0]['score'] + "\r\n\r\n" +
- "**" + userinfo[1]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[1]['rank'] + "\r\n" +
- "PP: " + userinfo[1]['pp'] + "\r\n" +
- "Score: " + userinfo[1]['score'] + "\r\n\r\n" +
- "**" + userinfo[2]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[2]['rank'] + "\r\n" +
- "PP: " + userinfo[2]['pp'] + "\r\n" +
- "Score: " + userinfo[2]['score'] + "\r\n\r\n" +
- "**" + userinfo[3]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[3]['rank'] + "\r\n" +
- "PP: " + userinfo[3]['pp'] + "\r\n" +
- "Score: " + userinfo[3]['score'] + "\r\n\r\n" +
- "**" + userinfo[4]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[4]['rank'] + "\r\n" +
- "PP: " + userinfo[4]['pp'] + "\r\n" +
- "Score: " + userinfo[4]['score'] + "\r\n\r\n"
- , true)
- m.edit({ embed });
- //console.log({ embed })
- } else {
- var currentuser = JSON.parse(data);
- var ppdifference = parseFloat(currentuser['actualpp'])
- ppdifference = parseFloat(write_to_embed['pp_raw']) - ppdifference
- console.log(ppdifference)
- console.log("Pseudo: " + pseudo_osu +
- "\r\n" + write_to_embed['pp_raw'])
- currentuser['actualpp'] = write_to_embed['pp_raw']
- fs.writeFile(checkosu_id, JSON.stringify(currentuser), function (err) {
- })
- const embed = new Discord.RichEmbed()
- .setAuthor(write_to_embed["username"], "https://a.ppy.sh/" + write_to_embed['user_id'] + "?.jpg")
- /*
- * Alternatively, use "#00AE86", [0, 174, 134] or an integer number.
- */
- .setColor(0x00AE86)
- .setDescription("**PP:** " + write_to_embed['pp_raw'] + "\r\n" +
- "**PP gagnés:** " + ppdifference + " \r\n" +
- "**Playcount:** " + write_to_embed['playcount'] + "\r\n" +
- "**Rank National:** #" + write_to_embed['pp_country_rank'] + " " + write_to_embed['country'] + "\r\n" +
- "**Rank Global:** #" + write_to_embed['pp_rank']
- )
- //.setFooter("This is the footer text, it can hold 2048 characters", "http://i.imgur.com/w1vhFSR.png")
- //.setImage("http://i.imgur.com/yVpymuV.png")
- .setThumbnail("https://a.ppy.sh/" + write_to_embed['user_id'] + "?.jpg")
- /*
- * Takes a Date object, defaults to current date.
- */
- //.setTimestamp()
- .setURL("https://osu.ppy.sh/u/" + write_to_embed['user_id'])
- .addField("TOP 5 PP:",
- "**" + userinfo[0]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[0]['rank'] + "\r\n" +
- "PP: " + userinfo[0]['pp'] + "\r\n" +
- "Score: " + userinfo[0]['score'] + "\r\n\r\n" +
- "**" + userinfo[1]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[1]['rank'] + "\r\n" +
- "PP: " + userinfo[1]['pp'] + "\r\n" +
- "Score: " + userinfo[1]['score'] + "\r\n\r\n" +
- "**" + userinfo[2]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[2]['rank'] + "\r\n" +
- "PP: " + userinfo[2]['pp'] + "\r\n" +
- "Score: " + userinfo[2]['score'] + "\r\n\r\n" +
- "**" + userinfo[3]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[3]['rank'] + "\r\n" +
- "PP: " + userinfo[3]['pp'] + "\r\n" +
- "Score: " + userinfo[3]['score'] + "\r\n\r\n" +
- "**" + userinfo[4]['beatmap_id'] + "**\r\n" +
- "Rank: " + userinfo[4]['rank'] + "\r\n" +
- "PP: " + userinfo[4]['pp'] + "\r\n" +
- "Score: " + userinfo[4]['score'] + "\r\n\r\n"
- , true)
- m.edit({ embed });
- console.log({ embed })
- }
- })
- }).catch(function (error) {
- m.edit("Création impossible. Avez-vous entré un lien valide ?");
- })
- //Fs end
- });
- }
- printuserbest(username);
- }
- //AFFICHAGE /BEATMAP/ (:b)
- if ((message.content.startsWith('https://osu.ppy.sh/b/')) || message.content.startsWith('https://osu.ppy.sh/beatmapsets')) {
- var newmessages2 = "";
- var varmode = "0";
- var modename = "osu";
- var texts0 = "";
- var texts1 = "";
- if (message.content.startsWith('https://osu.ppy.sh/b/')) {
- var newmessages_old = message.content.replace('https://osu.ppy.sh/b/', '');
- console.log("test: " + newmessages_old);
- if (newmessages_old.indexOf("&m=0") || newmessages_old.indexOf("?m=0") > -1) {
- newmessages2 = newmessages_old.replace("&m=0", "");
- } else if (newmessages_old.indexOf("&m=1") || newmessages_old.indexOf("?m=1") > -1) {
- newmessages2 = newmessages_old.replace("&m=1", "");
- } else if (newmessages_old.indexOf("&m=2") || newmessages_old.indexOf("?m=2") > -1) {
- newmessages2 = newmessages_old.replace("&m=2", "");
- } else if (newmessages_old.indexOf("&m=3") || newmessages_old.indexOf("?m=3") > -1) {
- newmessages2 = newmessages_old.replace("&m=3", "");
- } else {
- newmessages2 = newmessages_old;
- }
- }
- if (message.content.startsWith('https://osu.ppy.sh/beatmapsets/')) {
- var newmessages_old = message.content.replace('https://osu.ppy.sh/beatmapsets', '');
- var newmessages2 = newmessages_old;
- newmessages2 = newmessages2.split('/')[3];
- if (newmessages2 == undefined) {
- var newmessages2 = newmessages_old;
- newmessage2 = newmessages2.split('/')[2];
- }
- }
- console.log(newmessages2);
- // console.log("mode " + varmode);
- osu.beatmaps.getByBeatmapId(newmessages2).then(function (result) {
- // https://assets.ppy.sh//beatmaps/532713/covers/cover.jpg
- try {
- // console.log(result);
- var beatmapinfodata = result[0];
- console.log(beatmapinfodata['difficultyrating'])
- var diffsize = beatmapinfodata['difficultyrating'];
- var maxlenghts = "xxxx";
- var mapmode = beatmapinfodata['mode'];
- var lenghttotal = beatmapinfodata['total_length'];
- lenghttotal = convert(lenghttotal);
- var newtimetext = '';
- if (lenghttotal[0] != 0) {
- } else {
- }
- if (lenghttotal[1] != 0) {
- newtimetext = "" + lenghttotal["minutes"];
- } else {
- }
- if (lenghttotal[2] != 0) {
- newtimetext = newtimetext + ":" + lenghttotal["seconds"];
- } else {
- }
- console.log(lenghttotal);
- console.log(beatmapinfodata['title']);
- const embed = new Discord.RichEmbed()
- .setTitle(beatmapinfodata['artist'] + " - " + beatmapinfodata['title'], "https://b.ppy.sh/thumb/" + beatmapinfodata['beatmapset_id'] + "l.jpg")
- .setAuthor("Wesh Wesh canne à pêche")
- /*
- * Alternatively, use "#00AE86", [0, 174, 134] or an integer number.
- */
- .setColor(0x00AE86)
- .setDescription("Mappeur: " + beatmapinfodata['creator'] + "\r\n" +
- "Star rating: " + diffsize.substring(0, 4) + "\r\n" +
- "BPM: " + beatmapinfodata['bpm'] + "\r\n" +
- "Durée: " + newtimetext)
- .setThumbnail("https://b.ppy.sh/thumb/" + beatmapinfodata['beatmapset_id'] + "l.jpg")
- .setURL("https://osu.ppy.sh/b/" + beatmapinfodata['beatmap_id'])
- message.channel.send({ embed });
- } catch (err) {
- console.log(err)
- }
- });
- }
- //AFFICHAGE /BEATMAP/ (:s)
- if ((message.content.startsWith('https://osu.ppy.sh/s/'))) {
- message.reply("Le bot n'accepte pour le moment uniquement la difficulté des maps séléctionnées.")
- }
- //Commande venant de /commands
- if (message.content.startsWith('!')) {
- const testFolder = './commands/';
- const fs = require('fs');
- var commandlist = "";
- fs.readdir(testFolder, (err, files) => {
- files.forEach(file => {
- // console.log(file);
- var commandlist = file.replace('.json', '');
- if (commandlist == message.content) {
- const fs2 = require('fs');
- fs2.readFile('./commands/' + file, function (err, data) {
- // if(err) throw err;
- message.channel.send(data.toString())
- });
- }
- });
- })
- }
- if (message.content.startsWith('!osu recent')) {
- const testFolder = './user/' + message.author.id;
- const fs = require('fs');
- function mapdata(recentscores) {
- //message.channel.send("ok") .replace(/\B(?=(\d{3})+(?!\d))/g, " ")
- var mapid = recentscores[0]['beatmap_id']
- var combo0 = parseInt(recentscores[0]['countmiss'])
- var combo50 = parseInt(recentscores[0]['count50'])
- var combo100 = parseInt(recentscores[0]['count100'])
- var combo300 = parseInt(recentscores[0]['count300'])
- var accuracy = 100 * (((combo0) * 0 + (combo50) * 50 + (combo100) * 100 + (combo300) * 300) / (300 * (combo0 + combo50 + combo100 + combo300)))
- var mapcombo = recentscores[0]['maxcombo']
- var mapscore = recentscores[0]['score']
- var maprank = recentscores[0]['rank']
- var mods = recentscores[0]['enabled_mods']
- var mapobject = [mapid, mapcombo, "", ""]
- var mapdate = recentscores[0]['date']
- var newrank;
- getmods(parseInt(mods))
- if (maprank == "F") {
- newrank = "Non soumis"
- } else {
- newrank = maprank
- }
- osu.beatmaps.getByBeatmapId(mapobject[0], 0).then(function (mapinfos) {
- function precisionRound(number, precision) {
- var factor = Math.pow(10, precision);
- return Math.round(number * factor) / factor;
- }
- var beatmap = mapinfos[0]
- //message.reply(beatmap['artist'] + " Combo: " + mapcombo+"/" + beatmap['max_combo'])
- // console.log(mapinfos)
- const embed = new Discord.RichEmbed()
- .setTitle(beatmap['artist'] + " - " + beatmap['title'])
- .setThumbnail("https://b.ppy.sh/thumb/" + beatmap["beatmapset_id"] + ".jpg")
- .setDescription(
- "**Score**: " + mapscore.replace(/\B(?=(\d{3})+(?!\d))/g, " ") +
- "\r\n**Combo**: " + mapcombo + "**/**" + beatmap['max_combo'] +
- "\r\n**Accuracy**: " + precisionRound(accuracy, 2) + "%" +
- "\r\n**Mods**: " + "Temporairement désactivé" +
- // "\r\n**Mods**: " + mapcombo +"**/**" + beatmap['max_combo'] +
- "\r\n**Rank**: " + newrank).setURL("https://osu.ppy.sh/b/" + beatmap["beatmap_id"])
- message.channel.send({ embed })
- })
- }
- fs.readFile(testFolder + '.json', "utf8", function (err, data) {
- if (err) {
- message.reply("Vous n'avez pas ajouté votre pseudo. Faites !osu add PSEUDO")
- } else {
- console.log(data)
- var userdata = JSON.parse(data)
- //console.log(userdata)
- osu.user.getRecent(userdata["osuname"], 4, 10).then(function (recentscores) {
- // osu.user.getRecent("-akeno-", 4,10).then(function (recentscores){
- console.log(recentscores[0])
- if (recentscores[0] == undefined) {
- message.reply("Vous devez avoir au moins joué une map QUALIFIED/LOVED/RANKED ces 24 dernières heures.")
- } else {
- if (userdata['date'] == undefined | userdata['date'] != recentscores[0]['date']) {
- userdata['date'] = recentscores[0]['date']
- if (recentscores[0]['rank'] == "F") {
- //message.reply("Information: Le score est faux. La map n'a pas été pass.")
- mapdata(recentscores);
- fs.writeFile(testFolder + ".json", JSON.stringify(userdata))
- } else {
- userdata['date'] = recentscores[0]['date']
- fs.writeFile(testFolder + ".json", JSON.stringify(userdata))
- message.reply("Nouveau score:")
- mapdata(recentscores);
- }
- } else {
- userdata['date'] = recentscores[0]['date']
- mapdata(recentscores);
- fs.writeFile(testFolder + ".json", JSON.stringify(userdata))
- }
- }
- })
- }
- })
- }
- //Osu get recent scores
- // Ajouter les roles selon le type de mode
- if (message.guild.name == "Osu!Nawak") {
- if (message.content == '!std') {
- var allowedRoleJ = message.guild.roles.find("name", "Standard");
- message.member.addRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!rstd') {
- var allowedRoleJ = message.guild.roles.find("name", "Standard");
- message.member.removeRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!ctb') {
- var allowedRoleJ = message.guild.roles.find("name", "Catch the beat");
- message.member.addRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!rctb') {
- var allowedRoleJ = message.guild.roles.find("name", "Catch the beat");
- message.member.removeRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!taiko') {
- var allowedRoleJ = message.guild.roles.find("name", "Taiko");
- message.member.addRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!rtaiko') {
- var allowedRoleJ = message.guild.roles.find("name", "Taiko");
- message.member.removeRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!mania') {
- var allowedRoleJ = message.guild.roles.find("name", "Mania");
- message.member.addRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- if (message.content == '!rmania') {
- var allowedRoleJ = message.guild.roles.find("name", "Mania");
- message.member.removeRole(allowedRoleJ.id);
- message.reply("Role modifié")
- }
- }
- if (message.content.startsWith("!roll")) {
- function getRandomInt(max) {
- return Math.floor(Math.random() * Math.floor(max));
- }
- var rollresult = getRandomInt(100);
- rolls[i];
- message.channel.send(message.author.username + ": "+rollresult);
- }
- // Vérifier si ils sont bien dans le bon channel pour écrire une commande
- var currentid2 = message.channel.name
- if (currentid2 == allowedchannelroll) {
- if (message.content === '!saveroll') {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id)) {
- var fs = require('fs');
- var filename = 'rolls.json';
- var str = rolls[0] + "\n" + rolls[1] + "\n" + rolls[2] + "\n" + rolls[3] + "\n" + rolls[4] + "\n" + rolls[5] + "\n" + rolls[6] + "\n" + rolls[7] + "\n" + rolls[8] + "\n" + rolls[9];
- fs.writeFile(filename, str, function (err) {
- if (err) {
- console.log(err)
- } else {
- console.log('File written!');
- }
- });
- message.reply("Rolls sauvegardés.");
- }
- else {
- // message.reply("Vous n'avez pas le droit.");
- }
- }
- if (message.content === '!loadroll') {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id)) {
- var fs = require('fs');
- fs.readFile('rolls.json', function (err, data) {
- if (err) throw err;
- rolls = data.toString().split("\n");
- for (i in rolls) {
- console.log(rolls[i]);
- }
- });
- message.reply("Informations chargés.");
- }
- else {
- message.reply("Vous n'avez pas le droit.");
- }
- }
- // Commande de participation
- if (message.content === '!proll') {
- slot = 0;
- var currentplayer = message.author.username;
- var checkpseudo = (joueurs.indexOf(currentplayer) > -1);
- console.log(checkpseudo);
- for (var i = 0; i < 10; i++) {
- if (i == 10) {
- slot = 0;
- } else {
- function getRandomInt(max) {
- return Math.floor(Math.random() * Math.floor(max));
- }
- var rollresult = getRandomInt(100);
- rolls[i];
- joueurs[i];
- if (joueurs[i] == currentplayer) {
- if (rolls[i] === "Vide" && slot == 0) {
- var slot = 1;
- rolls[i] = rollresult;
- message.reply("**[ - " + rollresult + " - ]**");
- var allowedRoleJ = message.guild.roles.find("name", "Joueurs");
- message.member.addRole(allowedRoleJ.id);
- }
- }
- }
- }
- }
- }
- if (message.content == '!help') {
- const testFolder = './commands/';
- const fs = require('fs');
- var allcommands = "";
- var commandlist = "";
- message.channel.send({
- "embed": {
- "fields": [
- {
- "name": "!std !taiko !mania !ctb",
- "value": "Ajoute votre mode de jeu préféré à vos rôles"
- },
- {
- "name": "!osu",
- "value": "Affiche une liste d'informations sur les statistiques"
- },
- {
- "name": "Les spoils (en privé uniquement):",
- "value": "**!spoil x :** remplacez x par un chiffre, affiche le spoil.\r\n" +
- "**!aspoil *votre message* ** crée un spoil avec votre message et indique le chiffre.\r\n" +
- "**!spoils** Affiche le nombre de spoils disponible."
- },
- {
- "name": "Liens osu tel que https://osu.ppy.sh/u/Ael",
- "value": "Affiche les informations sur un joueur"
- }
- ]
- }
- }
- )
- fs.readdir(testFolder, (err, files) => {
- files.forEach(file => {
- console.log(file);
- var commandlist = file.replace('.json', '');
- allcommands = allcommands + "\r\n" + commandlist.toString();
- });
- /* message.channel.send("Commandes liés au bot: \r\n```!std !taiko !mania !ctb Ajoute votre mode de jeu préféré à vos rôles``` "+
- "\r\n```!osu Affiche une liste d'informations sur les statistiques```" +
- "\r\n```Liens osu tel que https://osu.ppy.sh/u/Ael : Affiche les informations sur un joueur```" );*/
- message.channel.send("Liste des commandes personnalisés:```" + allcommands + "```");
- })
- }
- var currentid = message.channel.name
- if (currentid == allowedchannel) {
- // PLAYERS SPECIFICS COMMANDS
- //Afficher les documents liés au tournoi ici.
- if (message.content === '!docs') {
- var allowedRolePlayer = message.guild.roles.find("name", "Joueurs");
- if (message.member.roles.has(allowedRolePlayer.id)) {
- message.channel.send("Aucun document n'est disponible pour le moment.")
- } else {
- message.reply("Vous devez être un joueur pour utiliser cette commande.")
- }
- }
- // Afficher la liste des inscrits
- // SAUVEGARDER
- if (message.content === '!save') {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id)) {
- var fs = require('fs');
- var filename = 'players.json';
- var str = joueurs[0] + "\n" + joueurs[1] + "\n" + joueurs[2] + "\n" + joueurs[3] + "\n" + joueurs[4] + "\n" + joueurs[5] + "\n" + joueurs[6] + "\n" + joueurs[7] + "\n" + joueurs[8] + "\n" + joueurs[9];
- fs.writeFile(filename, str, function (err) {
- if (err) {
- console.log(err)
- } else {
- console.log('File written!');
- }
- });
- message.reply("Les joueurs sont définitivements inscrits.");
- }
- else {
- message.reply("Vous n'avez pas le droit.");
- }
- }
- //Test
- //liste twitch
- // Liste des commandes customs
- //Ajouter une commande
- if (message.content.startsWith('!addcom')) {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id) && (currentid == allowedchannel)) {
- var newmessage = message.content.replace('!addcom ', '');
- var newcontentmessage = "";
- if (newmessage.startsWith('!')) {
- newmessage.replace(/ +$/, "");
- newmessage = newmessage.split(' ');
- var messagecommandname = newmessage[0];
- for (var i = 1; i < 16; i++) {
- if (newmessage[i] == null) {
- } else {
- newcontentmessage = newcontentmessage + " " + newmessage[i];
- }
- }
- message.channel.send("La commande se nommant " + messagecommandname + " déscrivant " + newcontentmessage + " a bien été ajouté.");
- var fs = require('fs');
- var filename = "./commands/" + messagecommandname + '.json';
- var str = newcontentmessage;
- fs.writeFile(filename, str, function (err) {
- if (err) {
- console.log(err)
- } else {
- console.log('File written!');
- }
- });
- } else {
- message.reply("La commande est impossible à ajouter si vous n'avez pas de ! en premier.")
- }
- }
- }
- //Supprimer une commande
- if (message.content.startsWith('!delcom')) {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id) && (currentid == allowedchannel)) {
- var newmessage = message.content.replace('!delcom ', '');
- var newcontentmessage = "";
- if (newmessage.startsWith('!')) {
- newmessage.replace(/ +$/, "");
- newmessage = newmessage.split(' ');
- var messagecommandname = newmessage[0];
- var fs = require('fs');
- var filename = "./commands/" + messagecommandname + '.json';
- var str = newcontentmessage;
- console.log(filename);
- fs.exists(filename, function (exists) {
- if (exists) {
- //Show in green
- message.reply("La commande a bien été supprimé.")
- fs.unlink(filename);
- } else {
- //Show in red
- message.reply("La commande n'existe pas.")
- }
- });
- } else {
- }
- }
- }
- //Charger la liste des joueurs
- if (message.content === '!load') {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id) && (currentid == allowedchannel)) {
- var fs = require('fs');
- fs.readFile('players.json', function (err, data) {
- if (err) throw err;
- joueurs = data.toString().split("\n");
- for (i in joueurs) {
- console.log(joueurs[i]);
- }
- });
- message.reply("Informations chargés.");
- }
- else {
- message.reply("Vous n'avez pas le droit.");
- }
- }
- //Activer les Inscriptions
- if (message.content === '!start' && allowedsub == false) {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id)) {
- allowedsub = true;
- message.channel.send("Les inscriptions sont ouvertes ! Faites !participer pour entrer.");
- } else {
- message.reply("Vous n'avez pas les droits.!");
- }
- }
- //Désactiver les inscriptions
- if (message.content === '!stop' && allowedsub == true) {
- var allowedRole = message.guild.roles.find("name", "botuse");
- if (message.member.roles.has(allowedRole.id)) {
- allowedsub = false;
- message.channel.send("Les inscriptions sont maintenant fermés.");
- } else {
- message.reply("Vous n'avez pas les droits.!");
- }
- }
- //Inscriptions désactivés
- if (message.content === '!participer' && allowedsub == false) {
- message.reply("Les inscriptions sont actuellement désactivés.");
- }
- if (message.content === '!ragequit' && allowedsub == false) {
- message.reply("Vous ne pouvez pas quitter lorsque les inscriptions sont fermés. Contactez un admin.");
- }
- // Commande de participation
- if (message.content === '!participer' && allowedsub == true) {
- slot = 0;
- var currentplayer = message.author.username;
- var checkpseudo = (joueurs.indexOf(currentplayer) > -1);
- console.log(checkpseudo);
- for (var i = 0; i < 10; i++) {
- if (i == 10) {
- slot = 0;
- } else {
- joueurs[i];
- if (joueurs[i] === "Vide" && slot == 0 && checkpseudo == false) {
- var slot = 1;
- joueurs[i] = currentplayer;
- message.reply("Vous êtes inscrits en tant que " + currentplayer + ".");
- var allowedRoleJ = message.guild.roles.find("name", "Joueurs");
- message.member.addRole(allowedRoleJ.id);
- }
- }
- }
- }
- //Commande de désincription
- if (message.content === '!ragequit' && allowedsub == true) {
- var currentplayer = message.author.username;
- var slot = 0;
- var checkpseudo = (joueurs.indexOf(currentplayer) > -1);
- console.log(checkpseudo);
- for (var i = 0; i < 10; i++) {
- if (i == 10) {
- var slot = 0;
- } else {
- if (joueurs[i] === currentplayer && slot == 0) {
- var slot = 1;
- joueurs[i] = "Vide";
- message.reply("Vous vous êtes retiré.");
- }
- var allowedRoleJ = message.guild.roles.find("name", "Joueurs");
- message.member.removeRole(allowedRoleJ.id);
- }
- }
- }
- //Commande d'affichage des tournois
- if (message.content === '!tournois') {
- }
- if (message.content === "") {
- }
- }
- // Fin de client.on('message', message => {
- });
- // Récupération de L'API key de discord
- var fspass = require('fs');
- fspass.readFile('pswd.config', function (err, data) {
- if (err) throw err;
- fspass2 = data.toString();
- client.login(fspass2);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement