Crear tu propio bot de Discord con Spring Boot
Resumen rápido: la mayoría de bots se desarrollan en TypeScript, pero si tu fortaleza es Java, este arranque con Spring Boot 3 y JDA te permite construir bots de Discord completos desde el primer minuto.
Introducción
Muchos tutoriales para crear bots de Discord asumen que usarás TypeScript. Si prefieres Java y el ecosistema de Spring, este boilerplate te ofrece una base lista con Spring Boot 3 y Java 21, comandos, listeners y persistencia integrados.
Ideal para desarrolladores Java, equipos pequeños y quienes valoran la inyección de dependencias de Spring, arquitectura modular y buenas prácticas listas para producción.
Por qué usar este boilerplate
Ahorra tiempo al evitar el cableado manual de JDA, parsing de comandos y la integración con base de datos. Está preparado para producción con persistencia, tareas programadas y estructura limpia por paquetes. Incluye un sistema de comandos, herramientas de moderación, recordatorios, listener de bienvenida e integración con MySQL o Postgres.
Funciones incluidas
- Comando !ping para ver el estado del bot
- Comando !help con menú de ayuda
- Moderación con !kick !ban !warn
- Información con !userinfo y !serverinfo
- Recordatorios personales con !remind
- Tarea diaria para enviar recordatorios a miembros del servidor
- Listener de bienvenida para saludar a nuevos miembros
Ideas de roadmap: panel web de administración, control de acceso por roles, y despliegue con Docker Compose.
Requisitos previos
Java 21 u OpenJDK 21, Maven 3.8 o superior, MySQL o Postgres para persistencia, y Docker opcional para despliegue en contenedores.
Inicio rápido en local
1 Descarga el proyecto base y descomprímelo 2 Ábrelo con tu IDE favorito IntelliJ Eclipse o VS Code 3 Añade el token de tu bot de Discord en application.properties 4 Compila y ejecuta con el wrapper de Maven
Comandos de ejecución
Para ejecutar directamente: ./mvnw spring-boot:run
Para empaquetar como JAR: ./mvnw clean package -DskipTests y después java -jar target/discord-bot-1.0.jar
Uso y ejemplos
Prueba un comando simple en tu servidor de Discord escribiendo !ping y obtendrás la respuesta Pong.
Para crear un recordatorio, escribe por ejemplo !reminder 13:15 Toma un descanso y el bot confirmará el aviso y lo programará.
Configuración
En src main resources application.properties define claves como:
discord.bot.token=TU_TOKEN_DE_DISCORD
discord.bot.prefix=!
spring.datasource.url=jdbc:mysql://localhost:3306/discordbot
spring.datasource.username=root
spring.datasource.password=secret
Si usas Docker, configura variables de entorno como DISCORD_BOT_TOKEN para el token del bot, DATABASE_URL para la conexión a la base de datos y SPRING_PROFILES_ACTIVE para activar perfiles como dev o prod.
Estructura del proyecto
El proyecto se organiza por paquetes claros command impl para comandos como Ping Help Kick, config para la configuración de Spring y JDA, entities para GuildSettings Reminder y UserPreference, jobs para planificadores como ReminderScheduler y DailyReminder, listener para eventos como BotListener y WelcomeListener, y repositories para interfaces JPA. La configuración principal está en application.properties.
Pruebas
Ejecuta pruebas unitarias con ./mvnw test. Para pruebas de integración, puedes combinar Spring Boot Test con Testcontainers si levantas la base de datos en Docker.
Despliegue
Empaqueta un JAR y ejecútalo en cualquier VPS o instancia en la nube. También puedes crear una imagen Docker basada en eclipse temurin 21 jdk alpine copiando el JAR al directorio de trabajo y usando java -jar para iniciar. Despliega con Docker Compose o mediante tu pipeline de CI CD preferido.
Extensión y personalización
Añade nuevos comandos creando clases en command impl, incorpora nuevas entidades en el paquete entities con su respectivo repositorio JPA y registra nuevos listeners en el paquete listener con la configuración de Spring.
Resolución de problemas
Si el bot no arranca, verifica que discord.bot.token esté correctamente definido. Si hay errores de base de datos, revisa la configuración spring.datasource. Si los comandos no responden, confirma que el bot tenga permisos adecuados en el servidor de Discord.
Licencia
Este proyecto se publica bajo licencia MIT. Revisa el archivo LICENSE.md para más detalles.
Acerca de Q2BSTUDIO
En Q2BSTUDIO nos dedicamos al desarrollo de software a medida y aplicaciones a medida, creando soluciones escalables, seguras y optimizadas para empresas. Somos especialistas en inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, automatización de procesos, servicios de inteligencia de negocio, power bi, ia para empresas y agentes IA que conectan datos y operaciones para impulsar tu productividad.
Si quieres llevar tu bot de Discord al siguiente nivel con integraciones, panel de control, aprendizaje automático o despliegues cloud, nuestro equipo puede ayudarte. Conoce cómo abordamos proyectos de software a medida en nuestra página de servicios en aplicaciones a medida y software a medida y descubre cómo aplicar modelos de inteligencia artificial y agentes IA a tus flujos en inteligencia artificial para empresas.
Además, contamos con experiencia en servicios cloud aws y azure, ciberseguridad y pentesting, servicios inteligencia de negocio con power bi y automatización de procesos de extremo a extremo, para que tus soluciones crezcan de forma segura, con datos confiables y operaciones eficientes.
¿Listo para empezar Tu bot de Discord con Spring Boot puede ser el primer paso hacia una plataforma inteligente que integre moderación, analítica, notificaciones, workflows y más. Escríbenos y cuéntanos tu caso.