En este artículo, hablaremos de crear manualmente un bot para tocar música en la discordia. Simplemente puede copiar todo el código enviado, y edítelo para usted si tiene habilidades de Javascript. El BOT fue creado por nosotros, pero en algunas etapas, el usuario aún puede enfrentar diferentes problemas, por lo que le recomendamos que lea cuidadosamente no solo nuestras instrucciones, sino que también aparece en los códigos de error de la pantalla si hay tal.
Si resulta que este material es demasiado complicado para usted o no es adecuado para otras razones, use bots gratuitos para reproducir música. El artículo sobre el enlace a continuación encontrará información detallada sobre esto y puede implementar la tarea.
Lee mas:
Agregando un bot musical al servidor en la discordia.
Reproduce música a través de bot en la discordia.
Paso 1: Creación de una nueva aplicación
Cada BOT para el descarte debe estar registrado en el portal oficial para los desarrolladores. Para que obtenga acceso a todas las configuraciones necesarias asociadas con los permisos y el comportamiento general del BOT, puede copiar el enlace a su autorización en el servidor personal y usar el token único, que se necesita para un mayor desarrollo de los comandos.
Ir a la página web oficial del portal de desarrolladores de la discordia.
- Use el enlace de arriba para abrir la página principal del portal para desarrolladores, inicie sesión en la cuenta personal de la discordia y haga clic en la "nueva aplicación" para crear una nueva aplicación.
- Ingrese su nombre, dada la singularidad, porque si hay muchos bots con el mismo nombre, no será posible crearlo, se notifica un aviso de cambio de nombre.
- Al finalizar, abra el menú en el sitio y seleccione la categoría "bot".
- Frente a la cadena "Build-A-Bot", haga clic en "Agregar bot".
- Confirme la adición del BOT para la aplicación seleccionada.
- A través de un menú familiar, vaya a «oauth2».
- Esta sección es responsable de los parámetros generales del BOT y su autorización. En el bloque "Scopes", marque el párrafo "bot".
- En la lista de permisos, asegúrese de activar la conexión a los canales de voz y la capacidad de hablar, ya que es necesario para una mayor música de transmisión.
- El BOT debe poder leer y enviar mensajes, por lo que no se olvide de habilitar estas opciones en la sección con permisos de texto de chat. Por supuesto, puede proporcionar todos los permisos a la vez, pero este enfoque es increíble, especialmente en los casos en que realice un bot para un usuario masivo.
- Tan pronto como se complete la configuración de permiso, copie el enlace para la primera autorización del BOT en el servidor, ya que lo agrega de lo contrario hasta que resuma.
- Siga este enlace y seleccione el servidor de prueba donde desea verificar el bot.
- Confirme la captura y espere información sobre la autorización exitosa.
Ahora tiene un bot con un token único, y el BOT ya se ha agregado al servidor, pero mientras está en modo sin conexión. Para comenzar, tendrá que realizar algunas acciones más en la computadora local, ya que mientras no descargamos el boting boting para la operación fuera de línea.
Paso 2: Acciones preparatorias
Las acciones preparatorias incluyen la creación de los directorios y archivos requeridos, la instalación de herramientas y dependencias para ellos. No hay nada complicado en esto, solo necesitas hacer que cada acción a su vez, siguiendo cuidadosamente los errores en cualquier etapa.
- Crea una carpeta con el nombre del bot. Puede elegir cualquier lugar, pero la carpeta de inicio del usuario es la más adecuada para esto.
- Cree dos archivos en él: "config.json" y "index.js". En la primera instale la configuración general del BOT: su prefijo y su token único, y en el segundo, todo el código del programa con comandos y tareas comunes de esta herramienta.
- Para el trabajo del bot necesitará nodo.js. Esta herramienta está diseñada para iniciar scripts en la computadora local. Siga el siguiente enlace y descargue su instalador para Windows.
Descargar node.js del sitio oficial
- Espere descargar el archivo ejecutable del archivo ejecutable, ejecute y pase el procedimiento de instalación simple, siguiendo las instrucciones que se muestran en la pantalla.
- Después de eso, abra la "línea de comando" conveniente para usted, por ejemplo, ingresando CMD en la utilidad "Ejecutar" (inicia la combinación Win + R Keys).
- Instale el módulo para trabajar con la API de la discordia, que se llama "discordy.js". Para hacer esto, en la ventana de la consola que se abre, ingrese el NPM Instalar Discord.js FFMPEG-BINARIOS OPSSCRIPT YTDL-CORE --AVE y presione ENTRAR, por lo que agregue inmediatamente todas las dependencias necesarias.
- Espere las notificaciones en la pantalla en una instalación exitosa, sin cerrar la ventana de la consola actual. Si aparecen errores, aprenda su código y use el motor de búsqueda para encontrar una decisión de trabajo en los foros o en el sitio web oficial.
Como resultado, la carpeta de inicio del usuario debe aparecer archivos asociados con el componente node.js y se agrega después del módulo. Reinicie la computadora para que el BOT no tenga dificultades para el inicio, luego vaya al siguiente paso.
Paso 3: Edición del archivo de configuración BOT
Ya sabe que en el archivo de configuración de BOT creado habrá todo un par de filas del código que es responsable del prefijo usado (símbolo antes de ingresar el comando en el servidor) y un token único que define la aplicación en la API. Para cumplir con todas las acciones posteriores, recomendamos descargar un programa con Support JS Syntax o cualquier editor de texto avanzado si esto no se ha hecho anteriormente. El artículo sobre el enlace a continuación podrá familiarizarse con las soluciones adecuadas disponibles.
Leer más: Selección del entorno de desarrollo para la programación
Tan pronto como esté instalado en la computadora y esté listo para funcionar, puede comenzar a editar con seguridad el archivo de configuración, ingresando datos de usuario allí.
- Ejecute el archivo CONFIG.JS a través de un editor de texto o un entorno de desarrollo, inserte el código a continuación.
{
"Prefijo": "!",
"Token": "tu toke"
}
Cambie el prefijo en comillas dobles a la marca deseada o deje una marca de exclamación. Un ejemplo de un comando usando este signo se ve así:! Jugar.
- Vaya a su bot en el portal de desarrollo, encuentre un token único allí y cópielo.
- Inserte su inspección de TOKE, en lugar de eliminar las comillas dobles.
- Guarda los cambios y cierra este archivo. Por cierto, puede realizar la misma acción a través de un "cuaderno" estándar.
En estas acciones con el archivo de configuración se completan, ya no debe prescribir una sola línea de código. Ciérrelo, sin olvidar guardar las ediciones hechas, y continúe con escribir el bot para reproducir música.
Paso 4: Prueba de inicio Bot
Primero, debemos asegurarnos de que el BOT se esté ejecutando generalmente en el servidor y va al modo en línea, será necesario escribir su parte principal del código a index.js, y luego usar NOde.js para comenzar.
- A través del entorno de desarrollo o el Editor de texto seleccionado, abra el archivo mencionado para la edición.
- Inserte el bloque de código responsable de la instalación de la dependencia e indica los módulos utilizados:
Const discordia = requiere ('discord.js');
const {
Prefijo,
simbólico
} = Requerir ('./ config.json');
const ytdl = requieren ('ytdl-core');
- Con la ayuda de los tokens previamente especificados, cree un cliente e inicie sesión, que se realiza ingresando solo dos líneas simples:
Const Client = New Discord.Client ();
Cliente.login (token);
- Sólo sigue sólo para especificar las últimas líneas básicas para escuchar el BOT.
Cliente.once ('listo', () => {
Console.log ('listo!');
});
Client.once ('reconectando', () => {
Console.log ('reconectando!');
});
Client.Once ('desconexión', () => {
Console.log ('desconecte!');
});
- Expanda el menú "Archivo" y guarde los cambios realizados.
- Ejecute la consola nuevamente de una manera conveniente.
- Ingrese el comando node index.js para iniciar el script bot.
- Si sus archivos no están ubicados en el directorio de inicio del usuario, después de que el nodo tendrá que especificar un completo, déjelos.
- El lanzamiento exitoso del BOT está indicado por la inscripción aparecida "¡Listo!".
- Abra la discordia y asegúrese de que el Bot haya sido al estado de "Online".
Paso 5: Escribiendo el codificador principal del bot musical.
El proceso más complejo permaneció, escribiendo el código básico para el BOT MUSICAL. Hay una lista de tareas que debe realizar: lectura de mensajes y comandos de procesamiento, definición de un nombre de canción o su dirección, que se conecta al canal de voz y la reproducción. Los permisos en todo este bot son, por lo que solo necesita especificar acciones utilizando las funciones de JavaScript, que se realiza en el mismo archivo "index.js".
Agregue una característica simple para leer los mensajes:
Client.on ('Mensaje', Async Message => {
}
Consta de solo dos líneas, pero permitirá que el BOT tome una consulta personalizada y se procesó correctamente. Se puede decir que este es uno de los equipos más importantes para los bots de cualquier tipo. Asegúrese de agregar ignorando los mensajes de otros bots ingresando
Si (Message.Author.bot) regresa;
Esto evita los conflictos al usar varios bots en el servidor simultáneamente. A continuación, será necesario revisar el prefijo para que el Bot haya aceptado el equipo o lo devolvió.
Si (! Message.content.sartstswith (prefijo)) devuelve;
Se lleva a cabo revisar comandos lanzados utilizando simples si los operadores, y el diseño en nuestro caso se ve así:
Const servequeue = queue.get (mensaje.guild.id);
if (Message.content.sartswith (`$ {prefijo} Play`) {
Ejecutar (mensaje, servidorqueue);
Regresar;
} Else demás si (mensaje.content.startswith (`$ {prefijo} Skip ')) {
Skip (Mensaje, Serverqueue);
Regresar;
} Otra cosa si (mensaje.content.startswith (`$ {prefijo} parada ') {
Parada (mensaje, servidorqueue);
Regresar;
} DEMÁS {
Message.channel.send ('¡Usted debe usar el comando existente!')
}
Tenga en cuenta que la función Enviar ('') envía el mensaje al usuario si de repente ingresa al comando que no funciona. Este mensaje que puede editar, cambiando la inscripción en las cotizaciones.
Ahora el bot aprendió a tomar comandos, pero hasta que pueda interactuar con ellos, ya que las acciones no se especifican. Primero agregue el comando PLAY, que es responsable de la reproducción. Para ello, se necesita una matriz con el siguiente formulario:
Const queue = nuevo mapa ();
Él envía todos los comandos en la cola y hace que las canciones se jueguen solo cuando finalice el anterior. A continuación, será necesario crear una función que verifique si el usuario conectado al canal de voz y si el bot son los permisos correspondientes.
ASYNC FUNCTION EJECUTAR (MENSAJE, ENDERQUESUELUE) {
const args = mensaje.content.split ('');
Const voicécnica = mensaje.member.voicécnina;
Si (! VoicEndel) devuelve el mensaje.Channel.send ('Para escuchar música, ¡necesita estar en canal de voz!');
const Permissions = VoicEchannel.permissionsfor (mensaje.client.user);
Si (! Permissions.has ('Conectar') ||! Permisos.has ('habla')) {
Devuelve mensaje.channel.send ('¡Necesito permisos para unirse y hablar su canal de voz!');
}
}
Próxima Acción: conecte la biblioteca YTDL, ya que este bot leerá el nombre de la canción en el enlace de YouTube, después de lo cual se reproduce en el servidor. Se llevará a insertar una pequeña pieza de inserción de código.
Const songinfo = await ytdl.getinfo (Args [1]);
Const cancion = {
Título: Songinfo.title,
URL: Songinfo.video_url,
};
El siguiente bloque de código le permitirá comprender si hay canciones en la cola o puede conectarse inmediatamente al canal de voz y comenzar la reproducción.
Si (! Servequeue) {
} DEMÁS {
Servequeue.songs.push (canción);
Console.log (servidorqueue.songs);
Devuelve mensaje.channel.send (`$ {Song.title} se ha agregado a la cola!`);
}
Siguiente viene un poco complicado para los programadores de novatos, un plan de contrato que agrega una canción en una matriz y hace lo mismo cada vez que ingrese. Reproduce, revisando la cola y eligiendo la acción correcta. Preste atención a los comentarios presentados, lo que le permite lidiar con todas las sutilezas.
// creando un contrato para la cola
Const queuencontruct = {
TextChannel: Message.Channel,
VOICECHANNEL: VOICECHANNEL,
Conexión: nulo,
Canciones: [],
Volumen: 5,
JUGAR: VERDADERO,
};
// Establecer la cola con nuestro contrato
cola.set (Message.guild.id, QueueContruct);
// insertar la composición en nuestra matriz de canciones
QueueContruct.Songs.Push (canción);
intentar {
// Aquí estamos tratando de unirnos al chat de voz y guardar la conexión en el objeto
Var Conexión = AWAIT VOICECHANNEL.JOIN ();
QueueContontruct.Connection = Conexión;
// llamando la función de reproducción para iniciar la canción
Jugar (Message.guild, QueueContruct.Songs [0]);
} Catch (err) {
// mostrar un mensaje de error si el bot no puede unirse al chat de voz
Console.log (error);
Queue.delete (Message.guild.id);
Devolver mensaje.Channel.Send (ERR);
}
Con la cola, todo está despejado, pero aún así no juega canciones, porque no hay asignación para la función de juego. Para hacer esto en el código es necesario agregar estructura.
Play de función (gremio, canción) {
Const servequeue = queue.get (grild.id);
Si (! Canción) {
Servequeue.voicécnica.leave ();
Queue.delete (Guild.ID);
Regresar;
}
}
La reproducción comienza a usar la función PlayStream () y el enlace especificado a la pista.
Const despacher = servequeue.connection.playstream (YTDL (Song.URL))
.ON ('FIN', () => {
Console.log ('la música ha terminado!');
// elimina la canción terminada de la cola
servequeue.songs.shift ();
// vuelve a causar la función de reproducción con la siguiente canción
Jugar (gremio, servidorqueue.songs [0]);
})
.on ('error', error => {
Consola.error (error);
});
despachador.setvolumellogarítmico (servequeue.volume / 5);
Si desea agregar una función Skip Skip, por ejemplo, cuando decida jugar una lista de reproducción, primero tenga cuidado con el comando apropiado y luego agregue un fragmento de este tipo:
Función SKIP (Mensaje, Serverqueue) {
Si (! Message.Member.VoicEncannel) devuelve mensaje.channel.send ('¡Debería estar en un canal de voz para detener la música!');
Si (! Servequeue) devuelve mensaje.channel.send ('¡No hay canción que pueda saltar!');
Servequeue.connection.dispatcher.end ();
}
Aproximadamente el mismo esquema también funciona la función de parada, pero el bloque con el código adquiere un aspecto ligeramente diferente:
Parada de función (Mensaje, Serverqueue) {
Si (! Message.Member.VoicEnnel) devuelve mensaje.channel.send ('
Debes estar en el canal de voz para detener la música! ');
Servequeue.songs = [];
Servequeue.connection.dispatcher.end ();
}
Tenga en cuenta que la información presentada anteriormente es adecuada exclusivamente para aquellos usuarios que ya están familiarizados con el idioma de JavaScript o solo se dedican a estudiar y decidirse crear un bot musical. Si no tiene habilidades en general y los bloques especificados con el código que no dice nada, simplemente inserte el código fuente completo en el archivo, reemplace los mensajes del BOT en ruso (están dentro de las cotizaciones) y guarden el cambios. Todo código fuente tiene este tipo:
Const discordia = requiere ('discord.js');
const {
Prefijo,
simbólico
} = Requerir ('./ config.json');
const ytdl = requieren ('ytdl-core');
Const Client = New Discord.Client ();
Const queue = nuevo mapa ();
Cliente.once ('listo', () => {
Console.log ('listo!');
});
Client.once ('reconectando', () => {
Console.log ('reconectando!');
});
Client.Once ('desconexión', () => {
Console.log ('desconecte!');
});
Client.on ('Mensaje', Async Message => {
Si (Message.Author.bot) regresa;
Si (! Message.content.sartstswith (prefijo)) devuelve;
Const servequeue = queue.get (mensaje.guild.id);
if (Message.content.sartswith (`$ {prefijo} Play`) {
Ejecutar (mensaje, servidorqueue);
Regresar;
} Else demás si (mensaje.content.startswith (`$ {prefijo} Skip ')) {
Skip (Mensaje, Serverqueue);
Regresar;
} Otra cosa si (mensaje.content.startswith (`$ {prefijo} parada ') {
Parada (mensaje, servidorqueue);
Regresar;
} DEMÁS {
Mensaje.channel.send ('¡Necesitas ingresar un comando válido!')
}
});
ASYNC FUNCTION EJECUTAR (MENSAJE, ENDERQUESUELUE) {
const args = mensaje.content.split ('');
Const voicécnica = mensaje.member.voicécnina;
Si (! VOICECHANNEL) devuelve el mensaje.Channel.send ('¡Necesitas estar en un canal de voz para reproducir música!');
const Permissions = VoicEchannel.permissionsfor (mensaje.client.user);
Si (! Permissions.has ('Conectar') ||! Permisos.has ('habla')) {
Devuelva el mensaje.Channel.send ('¡Necesito los permisos para unirse y hablar en su canal de voz!');
}
Const songinfo = await ytdl.getinfo (Args [1]);
Const cancion = {
Título: Songinfo.title,
URL: Songinfo.video_url,
};
Si (! Servequeue) {
Const queuencontruct = {
TextChannel: Message.Channel,
VOICECHANNEL: VOICECHANNEL,
Conexión: nulo,
Canciones: [],
Volumen: 5,
JUGAR: VERDADERO,
};
cola.set (Message.guild.id, QueueContruct);
QueueContruct.Songs.Push (canción);
intentar {
Var Conexión = AWAIT VOICECHANNEL.JOIN ();
QueueContontruct.Connection = Conexión;
Jugar (Message.guild, QueueContruct.Songs [0]);
} Catch (err) {
Console.log (error);
Queue.delete (Message.guild.id);
Devolver mensaje.Channel.Send (ERR);
}
} DEMÁS {
Servequeue.songs.push (canción);
Console.log (servidorqueue.songs);
Devuelve mensaje.channel.send (`$ {Song.title} se ha agregado a la cola!`);
}
}
Función SKIP (Mensaje, Serverqueue) {
Si (! Message.Member.VoicEncannel) devuelve mensaje.channel.send ('¡Tienes que estar en un canal de voz para detener la música!');
Si (! servequeue) devuelve mensaje.channel.send ('¡No hay canción que pueda saltar!');
Servequeue.connection.dispatcher.end ();
}
Parada de función (Mensaje, Serverqueue) {
Si (! Message.Member.VoicEncannel) devuelve mensaje.channel.send ('¡Tienes que estar en un canal de voz para detener la música!');
Servequeue.songs = [];
Servequeue.connection.dispatcher.end ();
}
Play de función (gremio, canción) {
Const servequeue = queue.get (grild.id);
Si (! Canción) {
Servequeue.voicécnica.leave ();
Queue.delete (Guild.ID);
Regresar;
}
Const despacher = servequeue.connection.playstream (YTDL (Song.URL))
.ON ('FIN', () => {
Console.log ('Music terminó!');
servequeue.songs.shift ();
Jugar (gremio, servidorqueue.songs [0]);
})
.on ('error', error => {
Consola.error (error);
});
despachador.setvolumellogarítmico (servequeue.volume / 5);
}
Cliente.login (token);
Al finalizar, es mejor reiniciar el BOT, después de lo cual puede ir a su servidor, conectarse al canal de voz e ingrese cualquier comando de la interacción, verifique cómo reaccionar al bot.
Si la variante anterior del BOT no es adecuada para usted, puede encontrar los códigos de origen en el mismo GitHub y copiarlos en su computadora. El principio de registro y lanzamiento sigue siendo el mismo, por lo que si es necesario, simplemente edite el código terminado y luego proceda a probar el bot.
En este artículo, no afectamos la descarga de un BOT en el alojamiento, lo distribuyó entre otros usuarios, creando un Avatar y el uso de sitios abiertos, desde donde pueda ser autorizado. Todo esto son procesos separados que deben participar solo cuando haya matado su habilidad para crear bots y está listo para distribuir proyectos en la red.