[text] discord music bot

Viewer

copydownloadembedprintName: discord music bot
  1. client.on("message", async msg => {
  2.     if (!msg.content.startsWith(prefix)) return undefined;
  3.     if (msg.author.bot) return undefined;
  4.     const args = msg.content.split(' ');
  5.     const searchString = args.slice(1).join(' ');
  6.  
  7.     console.log(searchString);
  8.  
  9.     const serverQueue = queue.get(msg.guild.id);
  10.  
  11.  
  12.     if (msg.content.startsWith(prefix + 'play')) {
  13.         const url = args[0] ? args[0].replace(/<.+>/, '$1') : '';
  14.         const voiceChannel = msg.member.voiceChannel;
  15.         if (!voiceChannel) return msg.channel.send("mortal metete a un canal de voz.");
  16.         const permissions = voiceChannel.permissionsFor(msg.client.user);
  17.         if (!permissions.has('CONNECT')) {
  18.             return msg.channel.send('no me puedo conectar al canal de voz :]');
  19.         }
  20.  
  21.         if (!permissions.has('SPEAK')) {
  22.             return msg.channel.send('no me puedo conectar');
  23.         }
  24.  
  25.         if (url.match(/^https?:\/\/(www.youtube.com | youtube.com)\/playlist(.*)$/)) {
  26.             const playlist = await youtube.getPlaylist(url);
  27.             const videos = await playlist.getVideos();
  28.  
  29.             for (const video of Object.values(videos)) {
  30.                 const video2 = await youtube.getVideoByID(video.id);
  31.                 await handleVideo(video2, msg, voiceChannel);
  32.             }
  33.             return msg.Channel.send('playlist:' + playlist.title + "la he agregado para tu diversion");
  34.         }
  35.         else {
  36.             try {
  37.                 var video = await youtube.getVideo(url);
  38.  
  39.             } catch (error) {
  40.  
  41.                 try {
  42.                     var videos = await youtube.searchVideos(searchString, 10);
  43.                     let index = 1
  44.                     msg.channel.send('  **cancion a  elegir **\n' + (videos.map(video2 => '****' + (++index) + video2.title).join('\n')) + '\nporfavor dame un numero de cancion 1-10');
  45.  
  46.                     try {
  47.                         var response = await msg.channel.awaitMessages(msg2 => msg2.content > 0 && msg2.content < 10    , {
  48.                             maxMatches: 1,
  49.                             time: 100000,
  50.                             errors: ['time']
  51.                         });
  52.  
  53.                     } catch (err) {
  54.                         console.error(err);
  55.                         return msg.channel.send('No me diste un valor valido pero te hare un favor pero no creas que lo ago por ti solo vuelve a ingresar, cancelado selecion');
  56.  
  57.                     }
  58.                     const videoIndex = parseInt(response.first().content);
  59.                     var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
  60.                 }
  61.                 catch (err) {
  62.                     console.error(error);
  63.                     return msg.channel.send("no pude obtener los resultados de busqueda");
  64.                 }
  65.                 return handleVideo(video, msg, voiceChannel, true);
  66.             }
  67.  
  68.  
  69.  
  70.  
  71.         }
  72.  
  73.  
  74.     }
  75.     else if (msg.content.startsWith(prefix + 'skip')) {
  76.         if (!msg.member.voiceChannel) return msg.channel.send("no estas en un canal de voz");
  77.         if (!serverQueue) return msg.channel.send("no hay nada tocando que pueda saltar");
  78.         serverQueue.connection.dispatcher.end('saltar la cancion ha sido usado');
  79.         return undefined;
  80.  
  81.  
  82.     }
  83.     else if (msg.content.startsWith(prefix + 'stop')) {
  84.         if (!msg.member.voiceChannel) return msg.channel.send("no estas en un canal de voz");
  85.         if (!serverQueue) return msg.channel.send("no hay nada tocando que pueda parar");
  86.         serverQueue.songs = [];
  87.         serverQueue.connection.dispatcher.end('has sido usado el stop');
  88.         return undefined;
  89.     }
  90.     else if (msg.content.startsWith(prefix + 'volumen')) {
  91.         if (!serverQueue) return msg.channel.send("no hay nada tocando ");
  92.         if (!args[1]) return msg.channel.send('el volomen de ahorita es :' + serverQueue.volume);
  93.         serverQueue.volume = args[1];
  94.         serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
  95.         return msg.channel.send("cambie el volumen agradecemelo se encuentra en  :" + args[1]);
  96.     }
  97.  
  98.     else if (msg.content.startsWith(prefix + 'np')) {
  99.         if (!serverQueue) return msg.channel.send("no hay nada tocando ");
  100.         return msg.channel.send("tocando ahora:" + serverQueue.songs[0].title);
  101.  
  102.     }
  103.     else if (msg.content.startsWith(prefix + 'queue')) {
  104.         if (!serverQueue) return msg.channel.send("no hay nada tocando ");
  105.         return msg.channel.send('  **song queue **' + (serverQueue.songs.map(song => '**_**' + song.title).join('\n') + 'now playing' + serverQueue.songs[0].title));
  106.     }
  107.  
  108.     else if (msg.content.startsWith(prefix + 'pausa')) {
  109.         if (serverQueue && serverQueue.playing) {
  110.             serverQueue.playing = false;
  111.             serverQueue.connection.dispatcher.pause();
  112.             return msg.channel.send("pause la musica no es que lo haga por ti hee");
  113.         }
  114.         return msg.channel.send("no hay nada tocando");
  115.     }
  116.     else if (msg.content.startsWith(prefix + 'resumir')) {
  117.         if (serverQueue && !serverQueue.playing) {
  118.             serverQueue.playing = true;
  119.             serverQueue.connection.dispatcher.resume();
  120.             return msg.channel.send("le di un replay no tienes que agradecerlo");
  121.  
  122.         }
  123.         return msg.channel.send("no hay nada tocando");
  124.     }
  125.     return undefined;
  126. });
  127.  
  128.  
  129. async function handleVideo(video, msg, voiceChannel, playlist = false) {
  130.     const serverQueue = queue.get(msg.guild.id)
  131.     console.log(video);
  132.     const song = {
  133.         id: video.id,
  134.         title: Util.escapeMarkdown(video.title),
  135.  
  136.         url: 'https://www.youtube.com/watch?v=' + video.id
  137.     };
  138.  
  139.  
  140.     if (!serverQueue) {
  141.         const queueConstruct = {
  142.             textChannel: msg.channel,
  143.             voiceChannel: voiceChannel,
  144.             connection: null,
  145.             songs: [],
  146.             volume: 5,
  147.             playing: true
  148.         };
  149.         queue.set(msg.guild.id, queueConstruct);
  150.  
  151.         queueConstruct.songs.push(song);
  152.  
  153.         try {
  154.             var connection = await voiceChannel.join();
  155.             queueConstruct.connection = connection;
  156.             play(msg.guild, queueConstruct.songs[0]);
  157.         }
  158.         catch (error) {
  159.  
  160.             console.error('no me puedo unir al canal de voz${error}');
  161.             queue.delete(msg.guild.id);
  162.             return msg.channel.send('no me puedo unir al canal de voz: ${error}');
  163.         }
  164.  
  165.  
  166.  
  167.     }
  168.     else {
  169.         serverQueue.songs.push(song);
  170.         console.log(serverQueue.songs);
  171.         if (playlist) return undefined;
  172.         return msg.channel.send(song.title + ' he obligado a la cancion a ponerse en la fila')
  173.  
  174.     }
  175.  
  176.     return undefined;
  177. }
  178.  
  179.  
  180. function play(guild, song) {
  181.     const serverQueue = queue.get(guild.id)
  182.  
  183.     if (!song) {
  184.         serverQueue.voiceChannel.leave();
  185.         queue.delete(guild.id);
  186.         return ;
  187.  
  188.     }
  189.  
  190.     console.log(serverQueue.songs);
  191.  
  192.     const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
  193.         .on('end', reason => {
  194.             if (reason === 'Stream is not generating quickly enough.') console.log('Song ended.');
  195.             else console.log(reason);
  196.             serverQueue.songs.shift();
  197.             play(guild, serverQueue.songs[1]);
  198.         })
  199.         .on('error', error => console.error(error));
  200.  
  201.     dispatcher.setVolumeLogarithmic(serverQueue.volume / 10);
  202.  
  203.     serverQueue.textChannel.send('tocando ahora :' + song.title);
  204.  
  205. }
  206.  

Editor

You can edit this paste and save as new:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File Description
  • discord music bot
  • Paste Code
  • 19 Dec-2020
  • 7.47 Kb
You can Share it: