· 6 years ago · Mar 21, 2020, 07:14 PM
1var discord = require('discord.js')
2var ytdl = require('ytdl-core');
3var info = require('youtube-info');
4var api = require("simple-youtube-api");
5var convert = require('convert-seconds');
6
7var config;
8var arquivo = require('./queue.js');
9var musica2;
10var numero = 0
11var pl = "false";
12var musica = null;
13var resultado = null;
14var key = new api('AIzaSyBuUq1V-pQDS-tL3HX6F4omxZNXQIVbnDw')
15
16exports.run = (client,message,args)=>{
17 var conteudo = args.slice(0).join(" ").trim();
18 const voiceChannel = message.member.voiceChannel;
19
20 if(!voiceChannel)return message.reply("Entre em um canal de voz.")
21 if(!conteudo.length)return message.reply("Coloque alguma música para eu pesquisar, querido.")
22 message.delete();
23var sla = "Tocando a música no " + voiceChannel.name
24 if(conteudo.indexOf("https://www.youtube.com/watch?v=") != "-1"||conteudo.indexOf("http://youtu.be/") != "-1"|| conteudo.indexOf("https://www.youtube.com/playlist?list=")!= "-1"){
25 pl = "false";
26 if(conteudo.indexOf("https://www.youtube.com/watch?v=") != "-1"){
27 musica = conteudo.replace("https://www.youtube.com/watch?v=","")
28 video()
29 }if(conteudo.indexOf("http://youtu.be/") != "-1"){
30 musica = conteudo.replace("http://youtu.be/","")
31 video()
32 }
33function video(){
34key.getVideoByID(musica).then(function(sucesso){
35tocar()
36},function(fracasso){
37 message.channel.send("Pesquisa não encontrada.")
38 return;
39
40})
41}
42if(conteudo.indexOf("https://www.youtube.com/playlist?list=")!= "-1"){
43pl = "true";
44tocar()
45}}else{
46 pl = "false";
47 key.searchVideos(conteudo,10).then(function(sucesso){
48 if(!sucesso.length){
49 var embed = new discord.RichEmbed()
50 .setColor("#000000")
51 .setDescription("Infelizmente não achei nenhum resultado para **" + conteudo + "**");
52
53 message.channel.send(embed)
54 return;
55
56 }
57
58 var embed = new discord.RichEmbed()
59 .setTitle("resultados para **" + conteudo + "**")
60 .setDescription(`${sucesso.map(musica1=>`**${++numero}** - ${musica1.title}`).join("\n")} \n\nDigite um número para escolher a música`)
61 .setThumbnail(message.author.avatarURL)
62 .setColor("#000000");
63 message.channel.send(embed)
64numero = 0;
65 message.channel.awaitMessages(message1=> Number(message1.content) > 0 && Number(message1.content) <= 10 && message1.author.id == message.author.id && sucesso[Number(message1.content) - 1] ,{
66 maxMatches:1,
67 time: 30000 ,
68 errors: ['time']
69 }).then(function(resultado){
70
71musica = sucesso[Number(resultado.first().content) - 1].id
72tocar()
73
74 },function(falhou){
75 message.channel.send("Você não escolheu nenhuma opção em 30 segundos.")
76 })
77 })
78}
79
80async function tocar(){
81
82 if(!voiceChannel.permissionsFor(client.user.id).has('CONNECT'))return message.reply("eu não consigo conectar-me nesse canal.")
83 if(!voiceChannel.permissionsFor(client.user.id).has("SPEAK"))return message.reply("Eu não consigo falar nesse canal de voz.")
84 if(message.guild.members.get(client.user.id).voiceChannel == null){
85 voiceChannel.join().then(function(canal){
86 if(arquivo.queue.get(message.guild.id) == null){
87 config = {
88 guild: message.guild.id,
89 channel: canal,
90 canal: message.channel.id,
91 som: {
92 titulo: [],
93 id: []
94 },
95 connection: null
96 }
97 arquivo.queue.set(message.guild.id,config)
98 t()
99 }else{
100 t()
101 }
102 },function(falha){
103 message.channel.send("Eu não consegui conectar-me ao seu canal de voz.")
104 return;
105 })
106 }else{
107 if(voiceChannel !== message.guild.members.get(client.user.id).voiceChannel) return message.reply("Para escutar a musica, entre no canal que eu estou dando batidões e use o comando novamente.")
108 if(arquivo.queue.get(message.guild.id) == null){
109 config = {
110 guild: message.guild.id,
111 channel: message.guild.members.get(client.user.id).voiceChannel,
112 canal: message.channel.id,
113 som: {
114 titulo: [],
115 id: []
116 },
117 connection: null
118 }
119 arquivo.queue.set(message.guild.id,config)
120 t()
121 }else{
122 t()
123 }
124 }
125function t(){
126 if(pl == "false"){
127 if(arquivo.queue.get(message.guild.id).som.id[0]){
128 sla = "Uma musica foi adicionada na queue do canal: " + voiceChannel.name
129 }
130 info(musica,function(erro,music){
131 if(erro){
132 console.log(erro)
133 return;
134 }
135var embed = new discord.RichEmbed()
136.setTitle("Uma Música está tocando em **" + voiceChannel.name + "**")
137.setThumbnail(music.thumbnailUrl,true)
138.addField("Nome Da Música:",music.title,true)
139.addField("Publicado por:",music.owner,true)
140.addField("views:",music.views,true)
141.addField("likes:",music.likeCount,true)
142.addField("Deslikes:",music.dislikeCount,true)
143.addField("Link:",music.url,true)
144.setColor("#000000")
145
146message.channel.send(embed)
147
148 if(arquivo.queue.get(message.guild.id).som.id[0] == null){
149 arquivo.queue.get(message.guild.id).som.id.push(music.videoId)
150 arquivo.queue.get(message.guild.id).som.titulo.push(music.title)
151 play("https://www.youtube.com/watch?v="+music.videoId)
152 }else{
153 arquivo.queue.get(message.guild.id).som.id.push(music.videoId)
154 arquivo.queue.get(message.guild.id).som.titulo.push(music.title)
155 }
156 })
157 }else{
158 key.getPlaylist(conteudo).then(function(playlist){
159 playlist.getVideos().then(sucess=>{
160 for(var i = 0;sucess[i] ;i++){
161 if(arquivo.queue.get(message.guild.id).som.id[0] == null){
162 arquivo.queue.get(message.guild.id).som.id.push(sucess[i].id)
163 arquivo.queue.get(message.guild.id).som.titulo.push(sucess[i].title)
164 play("https://www.youtube.com/watch?v="+sucess[i].id)
165 }else{
166 arquivo.queue.get(message.guild.id).som.id.push(sucess[i].id)
167 arquivo.queue.get(message.guild.id).som.titulo.push(sucess[i].title)
168 }
169 }
170 message.channel.send("Música da playlist adicionada na queue")
171 })
172 },function(erro){
173 message.channel.send("Playlist não encontrada")
174 return;
175 })
176 }
177 async function play(music1){
178 musica2 = await arquivo.queue.get(message.guild.id).channel.playStream(ytdl(music1,{ filter: 'audioonly' }), {volume: 0.5, passes: 3})
179 arquivo.queue.get(message.guild.id).connection = musica2;
180 await arquivo.queue.get(message.guild.id).connection.on("end",function(reason){
181 if (reason == null){
182 play("https://www.youtube.com/watch?v="+arquivo.queue.get(message.guild.id).som.id[0])
183 }else{
184 arquivo.queue.get(message.guild.id).som.id.shift()
185 arquivo.queue.get(message.guild.id).som.titulo.shift()
186 if(arquivo.queue.get(message.guild.id).som.id[0]){
187 play("https://www.youtube.com/watch?v="+arquivo.queue.get(message.guild.id).som.id[0])
188 message.channel.send("Tocando a música " + arquivo.queue.get(message.guild.id).som.titulo[0])
189 }else{
190 var fim = new discord.RichEmbed()
191 .setDescription("Lista de música finalizada! Espero que tenha gostado de usar meus comandos de música.");
192 client.guilds.get(arquivo.queue.get(message.guild.id).guild).channels.get(arquivo.queue.get(message.guild.id).canal).send(fim);
193 arquivo.queue.get(message.guild.id).channel.disconnect()
194 arquivo.queue.delete(message.guild.id)
195 }
196 }
197 })
198 }
199 }
200 }
201}
202
203exports.help = {
204 name: 'play',
205 aliases: []
206}