Crear un Discord Bot con JavaScript: Tutorial Completo y Alojamiento Gratuito
Este tutorial te guiará paso a paso en la creación de un Discord Bot usando JavaScript y Node.js, alojándolo de forma gratuita en Repl.it. Aprenderás a configurar tu bot, agregar funciones básicas y optimizar su funcionamiento para que esté siempre disponible.
Empezando desde cero:
Primero, necesitas una cuenta de desarrollador en Discord para crear tu bot. Una vez que la tengas, puedes acceder al portal de desarrolladores y crear una nueva aplicación. En la configuración de la aplicación, encontrarás la opción para crear un bot. Asigna un nombre a tu bot y guarda los cambios. En este punto, es importante obtener el token de tu bot, que te permitirá conectarlo a tu código. Asegúrate de mantenerlo en secreto, ya que cualquier persona que lo tenga tendrá acceso total a tu bot.
Configuración del Entorno de Desarrollo
Para crear nuestro Discord Bot utilizaremos Node.js y la librería discord.js, que facilita la interacción con la API de Discord. Para empezar, instala Node.js en tu computadora si aún no lo tienes. Luego, utiliza el administrador de paquetes npm para instalar discord.js:
bash
npm install discord.js
Creando un Bot Básico
Crea un archivo llamado bot.js y agrega el siguiente código:
«`javascript
const { Client, Intents } = require(‘discord.js’);
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
client.on(‘ready’, () => {
console.log(Logged in as ${client.user.tag}!);
});
client.on(‘messageCreate’, (message) => {
if (message.content === ‘¡Hola!’) {
message.reply(‘¡Hola a ti también!’);
}
});
client.login(‘YOURBOTTOKEN’);
«`
Este código crea un bot básico que se conecta a Discord y responde a un mensaje específico. Sustituye YOUR_BOT_TOKEN con el token que obtuviste al crear tu bot. Guarda el archivo y ejecútalo con el comando:
bash
node bot.js
Alojamiento Gratuito con Repl.it
Repl.it es una plataforma de desarrollo online que permite ejecutar código de forma gratuita. Para alojar tu bot en Repl.it, crea una nueva repl y selecciona el lenguaje «Node.js». Copia el código de tu bot.js al editor de Repl.it. Para ejecutar tu bot de forma continua, necesitas utilizar la opción Run en Repl.it. Asegúrate de que la repl esté activa para que tu bot funcione.
Agregando Funcionalidades
Ahora vamos a agregar algunas funciones interesantes a nuestro bot:
Respuestas de Aliento
Podemos hacer que nuestro bot responda con frases de aliento al recibir un mensaje que contenga palabras clave como «triste», «mal», «deprimido». Para esto, agregamos el siguiente código a bot.js:
«`javascript
const alientoMessages = [
‘¡No te preocupes, todo va a estar bien!’,
‘Tú puedes lograrlo, ¡confía en ti mismo!’,
‘Sigue adelante, ¡eres capaz de mucho!’
];
client.on(‘messageCreate’, (message) => {
if (message.content.includes(‘triste’) || message.content.includes(‘mal’) || message.content.includes(‘deprimido’)) {
message.reply(alientoMessages[Math.floor(Math.random() * alientoMessages.length)]);
}
});
«`
Frases Inspiradoras
También podemos hacer que el bot envíe mensajes inspiradores a intervalos regulares. Para esto, podemos utilizar la función setInterval de Node.js:
«`javascript
const frasesInspiradoras = [
‘El éxito no es la clave de la felicidad. La felicidad es la clave del éxito.’,
‘La vida es 10% lo que te sucede y 90% cómo reaccionas a ello.’,
‘El futuro pertenece a aquellos que creen en la belleza de sus sueños.’
];
setInterval(() => {
client.channels.cache.get(‘YOURCHANNELID’).send(frasesInspiradoras[Math.floor(Math.random() * frasesInspiradoras.length)]);
}, 3600000); // Cada hora
«`
Recuerda reemplazar YOUR_CHANNEL_ID con el ID del canal donde quieres que se envíen las frases.
Utilizando la Base de Datos de Repl.it
Repl.it ofrece una base de datos integrada que podemos utilizar para almacenar y gestionar los mensajes de aliento. Para acceder a la base de datos, podemos utilizar la librería replit de Node.js:
«`javascript
const { Client, Intents } = require(‘discord.js’);
const { Repl } = require(‘replit’);
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
// …
client.on(‘messageCreate’, (message) => {
if (message.content.startsWith(‘!agregar-aliento ‘)) {
const nuevoMensaje = message.content.slice(17);
Repl.database.set(Date.now().toString(), nuevoMensaje);
message.reply(‘Mensaje de aliento agregado!’);
}
});
client.on(‘messageCreate’, (message) => {
if (message.content.includes(‘triste’) || message.content.includes(‘mal’) || message.content.includes(‘deprimido’)) {
const mensajesDeAliento = Repl.database.all();
const mensajeAleatorio = mensajesDeAliento[Math.floor(Math.random() * mensajesDeAliento.length)];
message.reply(mensajeAleatorio);
}
});
«`
Manteniendo el Bot En Línea
El servidor web de Repl.it entra en modo de suspensión después de un tiempo de inactividad. Para evitar esto, podemos utilizar un servicio como Uptime Robot que enviará una solicitud HTTP a tu bot cada cierto tiempo, manteniéndolo activo. En la configuración de Uptime Robot, agrega la URL de tu repl y configura la frecuencia de las comprobaciones.
Mejorando tu Bot
Ahora que tienes un bot básico funcionando, puedes explorarlo más a fondo. La documentación de discord.js ofrece una gran variedad de funciones y eventos que puedes usar para crear un bot más completo.
Conclusiones
Este tutorial te ha enseñado los conceptos básicos para crear un Discord Bot utilizando JavaScript, Node.js y Repl.it. Ahora puedes utilizar tus conocimientos para crear un bot personalizado con las funciones que necesitas. Recuerda que el límite está en tu imaginación, explora las diferentes opciones y crea un bot que ayude y entretenga a tu comunidad.