FlexBot es un bot de Discord versátil y fácil de usar, diseñado para potenciar la moderación de tu servidor con un amplio abanico de funcionalidades. Simplifica la gestión de usuarios, reportes y la configuración de tu comunidad.
FlexBot está equipado con un conjunto de herramientas intuitivas para mantener tu servidor seguro y ordenado:
- Sistema de Moderación Integral:
- Expulsar (
kick
), banear (ban
) y desbanear (unban
) usuarios. - Silenciar (
mute
) y desilenciar (unmute
) miembros temporalmente con duración personalizable. - Sistema de advertencias (
warn
) para notificar a los usuarios sobre comportamientos inadecuados.
- Expulsar (
- Gestión Avanzada de Reportes:
- Comando
report
para que los usuarios informen sobre conductas inapropiadas. - Canal dedicado
#reportes
para la revisión centralizada por parte de los moderadores. - Acciones rápidas mediante reacciones (✅ Resolver, ❌ Descartar, 🔨 Aplicar Sanción) directamente en los mensajes de reporte.
- Visualización de reportes por estado: pendientes, resueltos, todos (
!flex reports [estado]
).
- Comando
- Protección Anti-Spam Automática:
- Detección y silenciamiento temporal automático de usuarios que envíen mensajes masivos en cortos periodos.
- Exención para moderadores y administradores.
- Gestión de Hilos (Threads):
- Designar canales específicos (
!flex designarhilocanal
) donde se pueden crear hilos gestionados. - Crear hilos (
!flex crearhilo
) con nombres personalizados, duración temporal opcional y opción de notificar a participantes. - Cierre automático de hilos temporales tras expirar su duración.
- Cierre manual de hilos por moderadores (
!flex cerrarhilo
).
- Designar canales específicos (
- Comandos de Información Útiles:
!flex info
: Ayuda para usuarios generales.!flex info2
: Ayuda detallada para moderadores.!flex userinfo [@usuario/ID]
: Información detallada sobre un miembro del servidor.!flex serverinfo
: Estadísticas y detalles del servidor.
- Utilidades Adicionales:
!flex clear [cantidad]
: Limpieza de mensajes en un canal.!flex slowmode [segundos]
: Configuración del modo lento en canales.
- Configuración Dinámica:
- Creación automática del rol
Muted
(con permisos configurados) si no existe. - Creación automática del canal
#reportes
y la categoríaModeración
si no existen.
- Creación automática del rol
Antes de instalar FlexBot, asegúrate de tener:
- Python 3.8 o superior.
- Una cuenta de Discord.
- Un servidor de Discord donde tengas permisos administrativos para añadir bots.
- Conocimientos básicos sobre cómo funciona un bot de Discord y el Portal de Desarrolladores.
Sigue estos pasos para poner en marcha FlexBot en tu servidor:
git clone https://github.com/R4F405/Bot_Discord_Moderacion_comandos.git
cd Bot_Discord_Moderacion_comandos
Crea un entorno virtual (recomendado) e instala las dependencias:
python -m venv venv
# En Windows:
# venv\Scripts\activate
# En macOS/Linux:
# source venv/bin/activate
pip install -r requirements.txt
- Ve al Portal de Desarrolladores de Discord.
- Haz clic en "New Application" y asígnale un nombre (ej. "FlexBot Moderador").
- Navega a la pestaña "Bot" en el menú lateral.
- Haz clic en "Add Bot" y confirma.
- Obtén el Token del Bot: Bajo el nombre del bot, haz clic en "Reset Token" y copia el token generado. ¡Guárdalo en un lugar seguro, lo necesitarás pronto!
- Habilita las Intenciones Privilegiadas (Privileged Gateway Intents): Asegúrate de que las siguientes intenciones estén activadas:
Presence Intent
(Intención de Presencia)Server Members Intent
(Intención de Miembros del Servidor)Message Content Intent
(Intención de Contenido de Mensajes)
-
En la raíz del proyecto, renombra el archivo
.env.example
a.env
. -
Abre el archivo
.env
y reemplazatu_token_aquí
con el token de tu bot que copiaste anteriormente:DISCORD_TOKEN=AQUÍ_VA_EL_TOKEN_DE_TU_BOT
- Vuelve al Portal de Desarrolladores, selecciona tu aplicación y ve a "OAuth2" -> "URL Generator".
- En "Scopes", selecciona:
bot
applications.commands
(Aunque este bot usa prefijos, es buena práctica incluirlo para futura compatibilidad).
- En "Bot Permissions", selecciona los siguientes permisos necesarios para el funcionamiento completo de FlexBot:
Manage Channels
(Gestionar Canales)Manage Roles
(Gestionar Roles)Kick Members
(Expulsar Miembros)Ban Members
(Banear Miembros)Manage Messages
(Gestionar Mensajes)Read Message History
(Leer Historial de Mensajes) - Implícito conView Channels
.Send Messages
(Enviar Mensajes)Create Public Threads
(Crear Hilos Públicos)Create Private Threads
(Crear Hilos Privados) - Opcional si no se usan.Send Messages in Threads
(Enviar Mensajes en Hilos)Manage Threads
(Gestionar Hilos)Embed Links
(Incrustar Enlaces) - Para los mensajes de ayuda e información.Attach Files
(Adjuntar Archivos) - Opcional, para futuras mejoras.Add Reactions
(Añadir Reacciones) - Esencial para el sistema de reportes.View Channels
(Ver Canales) - Implícito.Mention Everyone
(Mencionar @everyone, @here y todos los roles) - Usado con moderación.
- Copia la URL generada al final de la página y pégala en tu navegador. Selecciona el servidor al que deseas añadir el bot y autoriza.
Finalmente, ejecuta el bot desde la terminal, asegurándote de estar en el directorio raíz del proyecto y con tu entorno virtual activado:
python main.py
Si todo está configurado correctamente, verás un mensaje en la consola indicando que el bot se ha conectado.
El prefijo por defecto del bot es !flex
. También puedes mencionarlo (@FlexBot
).
!flex info
: Muestra los comandos básicos disponibles para usuarios.!flex report @usuario [razón detallada]
: Reporta a un usuario por comportamiento inadecuado.- Ejemplo:
!flex report @UsuarioMolesto Ha estado enviando spam en #general
- Ejemplo:
Usa !flex info2
para una lista completa en Discord. Aquí algunos destacados:
Moderación Básica:
!flex kick @usuario [razón opcional]
: Expulsa a un usuario.!flex ban @usuario [razón opcional]
: Banea a un usuario.!flex unban [ID del usuario] [razón opcional]
: Desbanea a un usuario (necesitas su ID).!flex mute @usuario [duración] [razón opcional]
: Silencia a un usuario.- Duraciones:
s
(segundos),m
(minutos),h
(horas),d
(días). Ejemplo:10m
,2h
,1d
.
- Duraciones:
!flex unmute @usuario [razón opcional]
: Quita el silencio a un usuario.!flex warn @usuario [razón]
: Envía una advertencia formal al usuario.
Gestión de Reportes:
!flex reports [pendiente|resuelto|descartado|todos]
: Muestra reportes según su estado. Por defecto, muestrapendiente
.
Información:
!flex userinfo [@usuario/ID]
: Muestra información detallada del usuario.!flex serverinfo
: Muestra información detallada del servidor.
Utilidades del Canal:
!flex clear [cantidad]
: Elimina un número específico de mensajes (máx. 100).!flex slowmode [segundos]
: Establece el modo lento en el canal actual (0 para desactivar).
Gestión de Hilos:
!flex designarhilocanal #canal
: Designa un canal para permitir la creación de hilos gestionados.!flex quitarhilocanal #canal
: Remueve la designación de un canal para hilos.!flex crearhilo "Nombre del Hilo" [duración opcional] [notificar si/no]
: Crea un hilo en un canal designado.- Ejemplo:
!flex crearhilo "Discusión sobre el evento X" 2d si
- Ejemplo:
!flex cerrarhilo [mensaje opcional]
: Cierra manualmente el hilo actual (debe ser ejecutado dentro del hilo).
Encuestas y Votaciones:
!flex createpoll "Pregunta" "Opción 1" "Opción 2" ... "Opción N"
: Crea una encuesta con hasta 10 opciones.- Requiere permisos de
Gestionar Mensajes
. - Ejemplo:
!flex createpoll "¿Cuál es tu color favorito?" "Rojo" "Verde" "Azul"
- Requiere permisos de
!flex closepoll [ID_del_mensaje_de_la_encuesta]
: Cierra una encuesta activa y muestra los resultados.- Requiere permisos de
Gestionar Mensajes
. - Ejemplo:
!flex closepoll 123456789012345678
- Requiere permisos de
Al iniciarse o al usar ciertos comandos, FlexBot puede crear automáticamente:
- Rol
Muted
: Si no existe, se crea con permisos para no poder enviar mensajes ni hablar en canales de voz. El bot intentará aplicar estos permisos a todos los canales existentes. - Categoría
Moderación
: Si no existe, se crea para organizar canales relacionados con la moderación. - Canal
#reportes
: Si no existe (dentro de la categoríaModeración
), se crea para recibir los reportes de los usuarios. Solo los moderadores y el bot tendrán acceso.
Asegúrate de que el bot tenga los permisos Manage Roles
y Manage Channels
para estas funciones.
¡Las contribuciones son bienvenidas! Si deseas mejorar FlexBot:
- Realiza un Fork del proyecto.
- Crea una nueva rama para tu característica (
git checkout -b feature/NuevaCaracteristica
). - Realiza tus cambios y haz commit (
git commit -m 'Añade NuevaCaracteristica'
). - Sube tus cambios a la rama (
git push origin feature/NuevaCaracteristica
). - Abre un Pull Request.
Por favor, asegúrate de que tu código siga las convenciones generales del proyecto y esté debidamente documentado.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Si encuentras algún error, tienes preguntas o sugerencias:
- Abre un "Issue" en este repositorio de GitHub.
- Revisa la documentación y los issues existentes.
⭐ ¡Si FlexBot te resulta útil, no olvides darle una estrella en GitHub! ⭐ Desarrollado por R4F405.