Cómo hacer tu propio Bot de Discord

Discord tiene una excelente API para escribir bots personalizados, y una comunidad de bots muy activa. Hoy te muestro cómo hacer los tuyos.

Evidentemente, este tutorial está enfocado a gente que tenga conocimientos de programación para poder crear tu bot, así que no es para todo el mundo, pero por suerte hay algunos módulos para lenguajes populares que lo hacen muy fácil de hacer. Usaremos el más popular, discord.js.

Primeros pasos

Dirígete al portal de bots de Discord y crea una nueva aplicación.

Aquí necesitas apuntarte la identificación del cliente y el secret. Sin embargo, esto no es el bot, sólo la «Aplicación». Tendrás que añadir el bot en la pestaña «Bot».

Toma nota en este apartado también. Bajo ninguna circunstancia compartas esta llave en Github o en tu repositorio de Git. Tu bot será hackeado casi seguro.

Instalar Node.js

Para ejecutar Javascript fuera de tu navegador, necesitas Node. Descárgalo, instálalo y asegúrate de que funciona en un terminal. El comando por defecto es «node».

También te recomiendo la instalación de la herramienta nodemon. Es un línea de comandos que monitoriza el código de tu bot y se reinicia automáticamente cuando hay cambios. Puedes instalarla ejecutando el siguiente comando:

npm i -g nodemon

Necesitarás un editor de texto. Podrías usar un bloc de notas, pero te recomendamos Atom o VSC.

Aquí está nuestro «Hello World»:

const Discord = require('discord.js');
 const client = new Discord.Client();

client.on('ready', () => {
 console.log(`Logged in as ${client.user.tag}!`);
 });

client.on('message', msg => {
 if (msg.content === 'ping') {
 msg.reply('pong');
 }
 });

client.login('token');

Este código está tomado del ejemplo de Discord.js. Lo vemos por partes.

  • Las dos primeras líneas son para configurar el cliente. La línea uno importa el módulo en un objeto llamado «Discord», y la línea dos inicializa el objeto cliente.
  • El código client.on(‘ready’,()) se ejecutará cuando el bot se inicie. Aquí, sólo está configurado para registrar tu nombre en la terminal.
  • El bloque client.on(‘message’) se ejecutará cada vez que se publique un nuevo mensaje en cualquier canal. Por supuesto, tendrás que comprobar el contenido del mensaje, y eso es lo que hace la parte del if. Si el mensaje dice «ping», entonces responderá con «¡Pong!». Esto es útil para comprobar que todo funciona correctamente
  • La última línea se conecta con el token del portal del bot. Obviamente, el símbolo en la captura de pantalla es falso. No publiques nunca tu código en Internet.

Copia este código, pega tu ficha en la parte inferior y guárdala como index.js en una carpeta dedicada.

Cómo ejecutar el Bot

Ejecute el siguiente comando en la terminal:

nodemon --inspect index.js

Esto inicia el script, así como el depurador de Chrome, al que puedes acceder tecleando chrome://inspect/ en el Omnibar de Chrome y luego abriendo «dedicated devtools for Node».

Ahora, sólo debería decir «Registrado como «, pero aquí he añadido una línea que logueará todos los objetos de mensajes recibidos en la consola:

Entonces, ¿qué es lo que hace que este mensaje sea un objeto? Un montón de cosas, en realidad:

Lo más destacable es que tienes la información del autor y la del canal, a las que puedes acceder con msg.author y msg.channel. Recomiendo este método de registrar objetos en las herramientas de desarrollo del Nodo de Chrome, y simplemente mirar alrededor para ver qué es lo que lo hace funcionar. Puede que encuentres algo interesante. Aquí, por ejemplo, el bot registra sus respuestas a la consola, de modo que las respuestas del bot activan el archivo client.on(‘message’). Así que hice un spambot:

Cómo añadir el bot a tu servidor

Esta parte es más difícil de lo que debería ser. Tienes que ir a esta URL:

Sustituye CLIENTID por el ID de cliente de tu bot, que se encuentra en la pestaña de información general de la página de la aplicación. Una vez hecho esto, puedes dar el enlace a tus amigos para que añadan el bot a sus servers de Discord también.

Muy bien, ¿qué más puedo hacer?

Más allá de la configuración básica, todo lo demás depende de ti Algunas recomendaciones:

Te recomiendo añadir console.log(client) al inicio del código, y echar un vistazo al objeto cliente en la consola:

Una vez llegados a este punto ya sabes lo básico para crearte tus propios bots para Discrod, la API es muy extensa y probablemente te llevará su tiempo aprender todo lo que se puede hacer, pero es fácil y con la documentación que acabas de ver podrás empezar. Si necesitas más información, clicka aquí para ver la documentación oficial.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *