Este modulo te servira para crear bots de musica facilmente, esto esta relacionado con discord.js.
El bot tambien podra reproducir musicas en varios servidores.
### buscar
buscar(message, busqueda)
Este metodo te permite buscar una musica de youtube, ya sea mediante una URL, playlist o el nombre de la musica.
Argumentos
- message: Aqui deberas de colocar el message que se emite en el evento client.on("message", message => {}) de discord.js
- busqueda: Este parametro puede recibir 3 tipos de valores, una URL del video de youtube, una URL de un playlist de youtube o el nombre de una musica.
Retorna
Este metodo retorna una promesa con 4 tipos de valores:
[1] false cuando no se encontró absolutamente nada.
[2] Un objeto del tipo playlist en caso de que el valor del argumento busqueda sea un playlist, este objeto contiene 4 propiedades:
tipo
Aqui se mostrara el nombre del tipo del objeto, en este caso es "playlist".
nombre
Aqui se mostrara el nombre del playlist.
canal
Aqui se mostrara el nombre del canal del playlist.
musicas
Esto es un Array, aqui estaran las musicas del playlist con sus respectivos datos, cada musica es un objeto que contiene 6 propiedades:
1) url: El URL de la musica.
2) nombre: El nombre de la musica.
3) autor: El guildMember del usuario que puso el playlist: (https://discord.js.org/#/docs/main/stable/class/GuildMember)
4) id: El ID del URL de la musica.
5) thumbnail: La foto de la musica.
6) duracion: La duracion de la musica, esto tambien es un objeto con 7 propiedades, ejemplo:
{
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 3,
seconds: 33
}
[3] Un objeto del tipo url en caso de que el valor del argumento busqueda sea el URL de una musica especifica, este objeto contiene 2 propiedades:
tipo
Aqui se mostrara el nombre del tipo del objeto, en este caso es "url".
musicas
Esto es un objeto, aqui estaran los datos de la musica, este objeto contiene 6 propiedades:
1) url: El URL de la musica.
2) nombre: El nombre de la musica.
3) autor: El guildMember del usuario que puso el playlist: (https://discord.js.org/#/docs/main/stable/class/GuildMember)
4) id: El ID del URL de la musica.
5) thumbnail: La foto de la musica.
6) duracion: La duracion de la musica, esto tambien es un objeto con 7 propiedades, ejemplo:
{
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 3,
seconds: 33
}
[4] Un objeto del tipo busqueda en caso de que el valor del argumento busqueda no sea una URL, la cantidad de resultados sera tomada del valor que se puso en el constructor MegaMusic(), este objeto contiene 2 propiedades:
tipo
Aqui se mostrara el nombre del tipo del objeto, en este caso es "url".
musicas
Esto es un Array, aqui estaran las musicas(resultados) que se encontró, cada musica es un objeto que contiene 6 propiedades:
1) url: El URL de la musica.
2) nombre: El nombre de la musica.
3) autor: El guildMember del usuario que puso el playlist: (https://discord.js.org/#/docs/main/stable/class/GuildMember)
4) id: El ID del URL de la musica.
5) thumbnail: La foto de la musica.
6) duracion: La duracion de la musica, esto tambien es un objeto con 7 propiedades, ejemplo:
{
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 3,
seconds: 33
}
Ejemplos
Estructura del objeto tipo "url":
{
tipo: 'url',
musica: {
url: 'https://www.youtube.com/watch?v=PBXw3o9jDp8',
nombre: 'Nath Jennings & Pucky - Tundra',
autor: {GuildMember},
duracion: {
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 2,
seconds: 53
},
id: 'PBXw3o9jDp8',
thumbnail: 'https://img.youtube.com/vi/PBXw3o9jDp8/3.jpg'
}
}
Estructura del objeto tipo "playlist":
{
tipo: 'playlist',
nombre: 'Musicas de coleccion',
canal: 'MegaStar',
musicas: [Array]
}
El [Array] de musicas contiene las musicas del playlist y cada musica es un objeto con propiedades, ejemplo:
{
url: 'https://www.youtube.com/watch?v=PBXw3o9jDp8',
nombre: 'Nath Jennings & Pucky - Tundra',
autor: {GuildMember},
duracion: {
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 2,
seconds: 53
},
id: 'PBXw3o9jDp8',
thumbnail: 'https://img.youtube.com/vi/PBXw3o9jDp8/3.jpg'
}
Estructura del objeto tipo "busqueda":
{
tipo: 'busqueda',
musicas: [Array]
}
El [Array] de musicas contiene las musicas(resultados) que se encontró y cada musica es un objeto con propiedades, ejemplo:
{
url: 'https://www.youtube.com/watch?v=PBXw3o9jDp8',
nombre: 'Nath Jennings & Pucky - Tundra',
autor: {GuildMember},
duracion: {
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 2,
seconds: 53
},
id: 'PBXw3o9jDp8',
thumbnail: 'https://img.youtube.com/vi/PBXw3o9jDp8/3.jpg'
}
### playlist
playlist(message)
Este metodo te permite ver las musicas que se van a reproducir, practicamente el queue del servidor.
Argumentos
- message: Aqui deberas de colocar el message que se emite en el evento client.on("message", message => {}) de discord.js
Retorna
Este metodo retorna 2 tipos de valores:
[1] false cuando no hay ninguna musica por reproducir, el queue esta vacio.
[2] [Array] si hay musicas por reproducir.
El [Array] contiene la lista de musicas que se van a reproducir y cada musica es un objeto con propiedades, ejemplo:
[
{
url: 'https://www.youtube.com/watch?v=PBXw3o9jDp8',
nombre: 'Nath Jennings & Pucky - Tundra',
autor: {GuildMember},
duracion: {
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 2,
seconds: 53
},
id: 'PBXw3o9jDp8',
thumbnail: 'https://img.youtube.com/vi/PBXw3o9jDp8/3.jpg'
},
{
url: 'https://www.youtube.com/watch?v=PBXw3o9jfd1',
nombre: 'Musica prueba',
autor: {GuildMember},
duracion: {
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 3,
seconds: 28
},
id: 'PBXw3o9jD231',
thumbnail: 'https://img.youtube.com/vi/PBXw3asdas/3.jpg'
}
]
### avanzar
avanzar(message)
Este metodo te permite avanzar una musica (skip), esto se medira mediante un numero de votos, el numero de votos es calculado a travez de la cantidad de miembros conectados en el canal de voz donde el bot está reproduciendo musica.
Argumentos
- message: Aqui deberas de colocar el message que se emite en el evento client.on("message", message => {}) de discord.js
Retorna
Este metodo retorna 3 tipos de valores:
[1] false si no hay musicas, puedes usar el metodo tiene_musicas antes de este metodo para descartar el false en caso de que no haya musicas.
[2] true si la musica fue avanzada correctamente, esto unicamente sucederá si el usuario que ejecutó el comando para avanzar es el mismo usuario que puso la musica que se esta reproduciendo en ese momento, esto ignorara el numero de votos.
[3] Un objeto con 3 propiedades:
estado
Esta propiedades recibe 3 tipos de valores numericos y cada numero representa un estado:
1 Si el usuario que quiso avanzar la musica ya anteriormente lo hizo, practicamente seria como si volviera a votar para hacer skip.
2 Si el voto del usuario se hizo correctamente, practicamente seria como si estuviera votando por primera vez para hacer skip.
3 Si el voto del usuario es mayor o igual al numero de votos requeridos para avanzar de musica, en otras palabras cuando la musica hará skip.
Cuando la musica avance(haga skip) los votos seran reseteados para que los usuarios puedan volver a votar en caso de que quieran avanzar la musica actual.
votos_min
El numero de votos que actualmente lleva la musica para avanzar(hacer skip)
votos_max
El numero de votos que se necesita para avanzar de musica(hacer skip)
Ejemplo de la estructura del objeto:
{
estado: 2,
votos_min: 3,
votos_max: 5
}
### np
np(message)
Este metodo te permite ver la musica que se está reproduciendo en ese momento.
Argumentos
- message: Aqui deberas de colocar el message que se emite en el evento client.on("message", message => {}) de discord.js
Retorna
Este metodo retorna 2 tipos de valores:
[1] false si no hay musicas, puedes usar el metodo tiene_musicas antes de este metodo para descartar el false en caso de que no haya musicas.
[2] {Objeto} si actualmente se esta reproduciendo algo.
El objeto contiene la informacion de la musica que se esta reproduciendo en ese momento, este objeto contiene propiedades, ejemplo:
{
url: 'https://www.youtube.com/watch?v=PBXw3o9jDp8',
nombre: 'Nath Jennings & Pucky - Tundra',
autor: {GuildMember},
duracion: {
weeks: 0,
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 2,
seconds: 53
},
id: 'PBXw3o9jDp8',
thumbnail: 'https://img.youtube.com/vi/PBXw3o9jDp8/3.jpg'
}