Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.17 KB | None | 0 0
  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. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement