❯ DiscordBot
Built with the tools and technologies:
└── MageMuse-DiscordBot/
├── LICENSE
├── README.md
├── eslint.config.js
├── index.js
├── keep_alive.js
├── package.json
└── src
├── commands
├── config
├── font
├── jobs
├── middlewares
├── models
├── scripts
└── utils
Descripción: Configura el ID de un canal específico.
- Opciones:
- channeltype (requerido): El tipo de canal a configurar. Opciones:
log
register
lobby
ladder
- channel (requerido): El canal a configurar.
- channeltype (requerido): El tipo de canal a configurar. Opciones:
- Funcionalidad:
- Actualiza el tipo de canal especificado con el ID del canal proporcionado.
- Crea una nueva entrada si el tipo de canal o el canal no existen.
- Permisos: Solo administradores.
Descripción: Configura el ID de un rol específico.
- Opciones:
- roletype (requerido): El tipo de rol a configurar. Opciones:
leader
elite
- role (requerido): El rol a configurar.
- roletype (requerido): El tipo de rol a configurar. Opciones:
- Funcionalidad:
- Actualiza el tipo de rol especificado con el ID del rol proporcionado.
- Crea una nueva entrada si el tipo de rol o el rol no existen.
- Permisos: Solo administradores.
Descripción: Establece el ELO (rating) de un usuario.
- Opciones:
- usuario (requerido): El usuario al que se le establecerá el ELO.
- elo (requerido): El nuevo valor de ELO.
- Funcionalidad:
- Actualiza el ELO del usuario especificado en la base de datos.
- Mensaje adecuado si el usuario no existe o el ELO no se proporciona.
- Permisos: Solo administradores.
Descripción: Asigna un tipo y un nombre de medalla a un usuario.
- Opciones:
- user (requerido): El usuario al que se le asignará la medalla.
- badgetype (requerido): El tipo de medalla a asignar.
- badgename (requerido): El nombre de la medalla a asignar.
- Funcionalidad:
- Asigna una medalla al usuario especificado y actualiza su perfil en la base de datos.
- Responde con un mensaje confirmando la asignación de la medalla.
- Permisos: Solo administradores.
Descripción: Banea a un usuario para que no pueda recibir desafíos.
- Opciones:
- user (requerido): El usuario a banear.
- Funcionalidad:
- Banea al usuario configurando su campo
allowChallenges
afalse
. - Mensaje adecuado si el usuario no existe o ya está baneado.
- Banea al usuario configurando su campo
- Permisos: Solo administradores.
Descripción: Desbanea a un usuario para que pueda recibir desafíos.
- Opciones:
- user (requerido): El usuario a desbanear.
- Funcionalidad:
- Desbanea al usuario configurando su campo
allowChallenges
atrue
. - Mensaje adecuado si el usuario no existe o ya está desbaneado.
- Desbanea al usuario configurando su campo
- Permisos: Solo administradores.
Descripción: ¡Otorga una medalla a un entrenador!
- Opciones:
- user (requerido): El usuario que recibirá la medalla.
- Funcionalidad:
- Verifica el perfil del usuario y si está registrado en la liga.
- Verifica que el usuario haya realizado menos de dos intentos en el día.
- Otorga una medalla y actualiza el perfil del líder.
- Otorga tickets adicionales si el usuario obtiene la medalla número 8 o 10.
- Permisos: Solo para usuarios con el rol de líder.
- Canal: Solo en el canal de registro especificado.
Descripción: ¡Registra una victoria!
- Opciones:
- user (requerido): El usuario que ha perdido.
- Funcionalidad:
- Verifica el perfil del usuario y si está registrado en la liga.
- Verifica que el usuario haya realizado menos de dos intentos en el día.
- Registra la victoria del líder y actualiza el perfil del usuario perdedor.
- Permisos: Solo para usuarios con el rol de líder.
- Canal: Solo en el canal de registro especificado.
Descripción: ¡Registra una victoria del alto mando!
- Opciones:
- user (requerido): El usuario que ha perdido.
- Funcionalidad:
- Verifica el perfil del usuario, registro en la liga y si tiene intentos disponibles (
tryEF
). - Reduce los intentos y guarda los cambios en la base de datos.
- Envía un mensaje confirmando la derrota y el gasto de un boleto.
- Verifica el perfil del usuario, registro en la liga y si tiene intentos disponibles (
- Permisos: Solo para usuarios con el rol de alto mando.
- Canal: Solo en el canal de registro especificado.
Descripción: ¡Añade un Pokémon a tu equipo!
-
Funcionalidad:
- Agrega un nuevo Pokémon al equipo del usuario si no está registrado en la liga.
- Verifica que el Pokémon exista utilizando la API de PokéAPI.
- Verifica que el equipo del usuario no exceda el límite de 12 Pokémon.
- Actualiza el equipo del usuario en la base de datos.
- Responde con un mensaje de confirmación y el nuevo equipo del usuario.
-
Solo puede ser usado en el canal lobby configurado con el comando set-channel.
Descripción: ¡Remueve un Pokémon de tu equipo!
-
Funcionalidad:
- Elimina un Pokémon del equipo del usuario si no está registrado en la liga.
- Verifica que el Pokémon a eliminar esté en el equipo del usuario.
- Actualiza el equipo del usuario en la base de datos.
- Responde con un mensaje de confirmación y el nuevo equipo del usuario.
-
Solo puede ser usado en el canal lobby configurado con el comando set-channel.
Descripción: Registra tu equipo de Pokémon para participar en la liga.
-
Funcionalidad:
- Verifica si el usuario ya está registrado o si tiene un equipo de Pokémon.
- Envía la información del equipo del usuario a un canal de registro específico en Discord.
- Marca al usuario como registrado en la base de datos.
-
Solo puede ser usado en el canal lobby configurado con el comando set-channel.
Descripción: ¡Registra el resultado de la batalla!
-
Funcionalidad:
- Registra el resultado de una batalla entre dos usuarios especificando un ganador y un perdedor.
- Verifica que el enlace de la repetición sea válido y que el ganador y el perdedor no sean la misma persona.
- Actualiza el Elo de ambos usuarios en función del resultado.
- Publica un mensaje en Discord con los detalles del resultado, incluyendo el cambio de Elo y un enlace a la repetición.
-
Opciones:
- ganador (requerido): El usuario ganador de la batalla.
- perdedor (requerido): El usuario perdedor de la batalla.
- replay (requerido): El enlace de la repetición de la batalla en Showdown.
-
Solo puede ser usado en el canal de ladder configurado con el comando
set-channel
.
Descripción: Muestra el rendimiento de los líderes de gimnasio.
-
Funcionalidad:
- Obtiene y muestra una lista de los líderes de gimnasio con sus respectivos rendimientos en batallas (ganadas y perdidas).
- Ordena a los líderes por el total de batallas (ganadas + perdidas) en orden descendente.
- Publica un mensaje en Discord con el rendimiento de cada líder.
-
Este comando no tiene ninguna restriccioń de rol o canal.
Descripción: Ingresa tu nick de Showdown para que puedas ser retado por otros entrenadores.
-
Funcionalidad:
- Actualiza el nick de Showdown del usuario en la base de datos.
- Responde con un mensaje de confirmación que muestra el nuevo nick de Showdown del usuario.
-
Este comando no tiene ninguna restriccioń de rol o canal.
Descripción: Obtiene información de un entrenador.
-
Funcionalidad:
- Muestra información del perfil del usuario, incluyendo medallas obtenidas y Pokémon en el equipo.
- Crea una imagen personalizada del perfil usando
canvas
. - Guarda la imagen en Google Cloud Storage y la muestra en un mensaje embed en Discord.
-
Este comando no tiene ninguna restriccioń de rol o canal.
Descripción: Obtiene la tabla de clasificación del servidor.
-
Funcionalidad:
- Obtiene los 10 usuarios con mayor puntaje de ELO.
- Crea una imagen de la tabla de clasificación usando
canvas
. - Guarda la imagen en Google Cloud Storage y la muestra en un mensaje embed en Discord.
-
Este comando no tiene ninguna restriccioń de rol o canal.
Si tienes alguna sugerencia, mejora o simplemente quieres que te explique algo, no dudes en abrir un issue o enviar un pull request. ¡Agradeceré tu contribución!