SHARE
TWEET

Untitled

a guest Jan 20th, 2020 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Discord = require("discord.js");
  2. const jimp = require("jimp");
  3. const weather = require('weather-js');
  4. let os = require('os');
  5. const low = require("lowdb");
  6. const FileSync = require("lowdb/adapters/FileSync");
  7. const m = require("moment-duration-format");
  8. const adapter = new FileSync("database.json");
  9. const store_adapter = new FileSync("shop.json")
  10. const mute_adapter = new FileSync("mutedb.json")
  11. const request = require("request");
  12. const level_adapter = new FileSync("leveldb.json")
  13. const db = low(adapter);
  14. const stordb = low(store_adapter)
  15. const leveldb = low(level_adapter)
  16. const mutedb = low(mute_adapter)
  17. mutedb.defaults({mute: []}).write();
  18. leveldb.defaults({servers: [], joueurs: []}).write()
  19. db.defaults({xp: [], inventory: [], event: [], msgfond: [], warn: [], genmc: [], ranked: [], msgbv: [], alt: [], spotify : [], queue: [], bug1: [], events: [], faction: []}).write()
  20. const ms = require("ms");
  21. let cooldown = new Set();
  22. let cooldownn = new Set();
  23. const moment = require("moment");
  24. const chance = 7;
  25. let cooldownnn = new Set();
  26. let cooldownnnnnn = new Set();
  27. let cooldownnnnn = new Set();
  28. let cooldownnnn = new Set();
  29. let cooldownnnnnnn = new Set();
  30. let levelcooldown = new Set();
  31. let cooldownnnnnnnn = new Set();
  32. let coldspotify  = new Set();
  33. //const ascii = requi
  34. let cooldownnnnnnnnn = new Set();
  35. const streamOptions = { seek: 0, volume: 1 };
  36. let nuber = 0;
  37. let nuber2 = 0;
  38. const tempsmstime = 1000 * 60;
  39. const tempsmstime2 = tempsmstime * 3;
  40. const YouTube = require('simple-youtube-api');
  41. const ytdl = require('ytdl-core');
  42. const youtube = new YouTube("Youtube key ;)");
  43. const queue = new Map();
  44. var servers = {};
  45. let players = new Map();
  46. let channelplayers = new Map();
  47. let playersINgame = new Map();
  48. let trouve = new Map();
  49. let guildtrouve = new Map();
  50. const bot =  new Discord.Client({
  51.     disableEveryone: true,
  52.     fetchAllUser: true,
  53.     disabledEvents:[
  54.         'GUILD_MEMBERS_CHUNK',
  55.         'GUILD_INTEGRATIONS_UPDATE',
  56.         'GUILD_EMOJIS_UPDATE',
  57.         'CHANNEL_PINS_UPDATE',
  58.         'MESSAGE_DELETE_BULK',
  59.         'MESSAGE_REACTION_REMOVE_ALL',
  60.         'USER_UPDATE',
  61.         'USER_SETTINGS_UPDATE',
  62.         'PRESENCE_UPDATE',
  63.         'TYPING_START',
  64.         'VOICE_STATE_UPDATE',
  65.         'VOICE_SERVER_UPDATE',
  66.         'WEBHOOKS_UPDATE',
  67.     ],
  68.     messageCacheMaxSize: 15,
  69.     restRequestTimeout: 30000
  70.   });
  71. var prefix = ("/");
  72.  
  73.  
  74. bot.on("message", async message => {
  75.     var args = message.content.substring(prefix.length).split(" ");
  76.     if (!message.content.startsWith(prefix)) return;
  77.   var searchString = args.slice(1).join(' ');
  78.     var url = args[1] ? args[1].replace(/<(.+)>/g, '$1') : '';
  79.     var serverQueue = queue.get(message.guild.id);
  80.     switch (args[0].toLowerCase()) {
  81.       case "mplay":
  82.     var voiceChannel = message.member.voiceChannel;
  83.         if (!voiceChannel) return message.channel.send('Je suis désolé mais vous devez être sur un canal vocal pour jouer de la musique.!');
  84.         var permissions = voiceChannel.permissionsFor(message.client.user);
  85.         if (!permissions.has('CONNECT')) {
  86.             return message.channel.send('Je ne parviens pas à me connecter à votre canal vocal, assurez-vous de disposer des autorisations appropriées.!');
  87.         }
  88.         if (!permissions.has('SPEAK')) {
  89.             return message.channel.send('Je ne peux pas parler sur ce canal vocal, assurez-vous de disposer des autorisations appropriées.!');
  90.         }
  91.       if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
  92.             var playlist = await youtube.getPlaylist(url);
  93.             var videos = await playlist.getVideos();
  94.             for (const video of Object.values(videos)) {
  95.                 var video2 = await youtube.getVideoByID(video.id); // eslint-disable-line no-await-in-loop
  96.                 await handleVideo(video2, message, voiceChannel, true); // eslint-disable-line no-await-in-loop
  97.             }
  98.             return message.channel.send(`✅ Queue: **${playlist.title}** a été ajouté à la queue!`);
  99.         } else {
  100.             try {
  101.                 var video = await youtube.getVideo(url);
  102.             } catch (error) {
  103.                 try {
  104.                     var videos = await youtube.searchVideos(searchString, 10);
  105.                     var index = 0;
  106.                     message.channel.send(`
  107. __**Sélection de la chanson:**__
  108. ${videos.map(video2 => `**${++index} -** ${video2.title}`).join('\n')}
  109. Veuillez fournir une valeur pour sélectionner l'un des résultats de la recherche, entre de 1 à 10..
  110.                     `);
  111.                     // eslint-disable-next-line max-depth
  112.                     try {
  113.                         var response = await message.channel.awaitMessages(message2 => message2.content > 0 && message2.content < 11, {
  114.                             maxMatches: 1,
  115.                             time: 10000,
  116.                             errors: ['time']
  117.                         });
  118.                     } catch (err) {
  119.                         console.error(err);
  120.                         return message.channel.send('Aucune valeur ou valeur invalide entrée, annulant la sélection de vidéo.');
  121.                     }
  122.                     var videoIndex = parseInt(response.first().content);
  123.                     var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
  124.                 } catch (err) {
  125.                     console.error(err);
  126.                     return message.channel.send('🆘 Je n\'ai pu obtenir aucun résultat de recherche.');
  127.                 }
  128.             }
  129.             return handleVideo(video, message, voiceChannel);
  130.         }
  131.         break;
  132.       case "mskip":
  133.         if (!message.member.voiceChannel) return message.channel.send('Vous n\'êtes pas dans un canal vocal!');
  134.         if (!serverQueue) return message.channel.send('Il n\'y a rien que je puisse skip pour vous.');
  135.         serverQueue.connection.dispatcher.end('La commande de skip a été utilisée!');
  136.         return undefined;
  137.         break;
  138.       case "mstop":
  139.         if (!message.member.voiceChannel) return message.channel.send('Vous n\'êtes pas dans un canal vocal!');
  140.         if (!serverQueue) return message.channel.send('Il n\'y a rien que je puisse arrêter pour vous.');
  141.         serverQueue.songs = [];
  142.         serverQueue.connection.dispatcher.end('La commande d\'arrêt a été utilisée!');
  143.         return undefined;
  144. break;
  145.       case "mvolume":
  146.         if (!message.member.voiceChannel) return message.channel.send('Vous n\'êtes pas dans un canal vocal!');
  147.         if (!serverQueue) return message.channel.send('Il n\'y a rien qui joue');
  148.         if (!args[1]) return message.channel.send(`Le volume actuel est: **${serverQueue.volume}**`);
  149.         serverQueue.volume = args[1];
  150.         serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
  151.         return message.channel.send(`Je règle le volume à: **${args[1]}**`);
  152. break;
  153.       case "mnp":
  154.         if (!serverQueue) return message.channel.send('Il n\'y a rien qui joue.');
  155.         return message.channel.send(`🎶 Lecture en cours: **${serverQueue.songs[0].title}**`);
  156. break;
  157.       case "mqueue":
  158.         if (!serverQueue) return message.channel.send('Il n\'y a rien qui joue.');
  159.         return message.channel.send(`
  160. __**Queue de la chanson:**__
  161. ${serverQueue.songs.map(song => `**-** ${song.title}`).join('\n')}
  162. **Lecture en cours:** ${serverQueue.songs[0].title}
  163.         `);
  164. break;
  165.       case "mpause":
  166.         if (serverQueue && serverQueue.playing) {
  167.             serverQueue.playing = false;
  168.             serverQueue.connection.dispatcher.pause();
  169.             return message.channel.send('⏸ Mis en pause la musique pour vous!');
  170.         }
  171.         return message.channel.send('Il n\'y a rien qui joue.');
  172. break;
  173.       case "mresume":
  174.         if (serverQueue && !serverQueue.playing) {
  175.             serverQueue.playing = true;
  176.             serverQueue.connection.dispatcher.resume();
  177.             return message.channel.send('▶ Repris la musique pour vous!');
  178.         }
  179.         return message.channel.send('Il n\'y a rien qui joue.');
  180.    
  181.  
  182.     return undefined;
  183. break;
  184. }
  185. async function handleVideo(video, message, voiceChannel, playlist = false) {
  186.     var serverQueue = queue.get(message.guild.id);
  187.     var song = {
  188.         id: video.id,
  189.         title: video.title,
  190.         url: `https://www.youtube.com/watch?v=${video.id}`
  191.     };
  192.     if (!serverQueue) {
  193.         var queueConstruct = {
  194.             textChannel: message.channel,
  195.             voiceChannel: voiceChannel,
  196.             connection: null,
  197.             songs: [],
  198.             volume: 5,
  199.             playing: true
  200.         };
  201.         queue.set(message.guild.id, queueConstruct);
  202.  
  203.         queueConstruct.songs.push(song);
  204.  
  205.         try {
  206.             var connection = await voiceChannel.join();
  207.             queueConstruct.connection = connection;
  208.             play(message.guild, queueConstruct.songs[0]);
  209.         } catch (error) {
  210.             console.error(`Je ne pouvais pas rejoindre le canal vocal: ${error}`);
  211.             queue.delete(message.guild.id);
  212.             return message.channel.send(`Je ne pouvais pas rejoindre le canal vocal: ${error}`);
  213.         }
  214.     } else {
  215.         serverQueue.songs.push(song);
  216.         if (playlist) return undefined;
  217.         else return message.channel.send(`✅ **${song.title}** a été ajouté à la queue!`);
  218.     }
  219.     return undefined;
  220. }
  221.   function play(guild, song) {
  222.     var serverQueue = queue.get(guild.id);
  223.  
  224.     if (!song) {
  225.         serverQueue.voiceChannel.leave();
  226.         queue.delete(guild.id);
  227.         return;
  228.     }
  229.     console.log(serverQueue.songs);
  230.  
  231.     const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
  232.         .on('end', reason => {
  233.       message.channel.send('``La queue de la chanson est finie.``');
  234.             if (reason === 'Le flux ne génère pas assez rapidement.') console.log('Song ended.');
  235.             else console.log(reason);
  236.             serverQueue.songs.shift();
  237.             play(guild, serverQueue.songs[0]);
  238.         })
  239.         .on('error', error => console.error(error));
  240.     dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
  241.  
  242.     serverQueue.textChannel.send(`🎶 Commencer à jouer: **${song.title}**`);
  243. }
  244. });
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top