Skip to content

Shin5hi/vorp-bot-discord

Repository files navigation

VORP Discord Bot with n8n Automation

Un bot de Discord para gestión de inventario VORP que se integra completamente con n8n para automatizar todo el servidor.

Características

  • Gestión de inventario (productos, pedidos, stock)
  • Integración completa con n8n para automatización del servidor
  • Monitoreo de eventos de Discord en tiempo real
  • Triggers manuales para workflows de n8n
  • Soporte para comandos slash

Eventos de Discord que se envían a n8n

  • messageCreate: Nuevos mensajes
  • guildMemberAdd: Miembros que se unen al servidor
  • guildMemberRemove: Miembros que salen del servidor
  • voiceStateUpdate: Cambios en canales de voz (unirse, salir, mover)
  • messageReactionAdd: Reacciones a mensajes
  • messageDelete: Mensajes eliminados
  • manualTrigger: Triggers manuales desde comandos

Configuración

1. Clona el repositorio

git clone https://github.com/Shin5hi/vorp-bot-discord.git
cd vorp-bot-discord

2. Instala las dependencias

npm install

3. Configura las variables de entorno

Copia .env.example a .env y configura:

cp .env.example .env

Edita .env con tus valores:

  • DISCORD_TOKEN: Token de tu bot de Discord
  • CLIENT_ID: ID del cliente de tu bot
  • DISCORD_GUILD_ID: ID del servidor de Discord
  • MONGODB_URI: URI de conexión a MongoDB (opcional)
  • N8N_WEBHOOK_URL: URL del webhook de n8n

4. Configura n8n

Crea un webhook en n8n:

  1. En n8n, crea un nuevo workflow
  2. Agrega un nodo "Webhook" al inicio
  3. Configura el método HTTP como POST
  4. Copia la URL del webhook y pégala en N8N_WEBHOOK_URL

Ejemplo de workflow básico:

  • Webhook → Switch (por eventType) → Acciones específicas

Importa el workflow de ejemplo:

En n8n, ve a "Workflows" → "Import from File" y selecciona n8n-workflow-example.json del repositorio.

5. Ejecuta el bot

npm start

Uso

Comandos disponibles

  • /stock: Muestra el inventario actual
  • /agregar_producto: Agrega un nuevo producto
  • /crear_pedido: Crea un nuevo pedido
  • /listar_pedidos: Lista todos los pedidos
  • /reabastecer: Reabastece stock
  • /reporte_diario: Genera reporte diario
  • /trigger_n8n: Trigger manual de workflow de n8n

Automatización con n8n

El bot envía automáticamente todos los eventos de Discord a n8n. Puedes crear workflows para:

  • Moderación automática: Detectar palabras prohibidas y tomar acciones
  • Bienvenidas personalizadas: Enviar mensajes de bienvenida con roles específicos
  • Monitoreo de voz: Notificaciones cuando miembros entran/salen de canales de voz
  • Reacciones automáticas: Responder a reacciones específicas
  • Integraciones externas: Conectar con otras APIs, bases de datos, etc.
  • Reportes automáticos: Generar reportes basados en actividad del servidor

Ejemplo de payload enviado a n8n

{
  "eventType": "messageCreate",
  "timestamp": "2024-01-01T12:00:00.000Z",
  "data": {
    "messageId": "123456789",
    "channelId": "987654321",
    "guildId": "111222333",
    "authorId": "444555666",
    "content": "Hola mundo!",
    "attachments": [],
    "mentions": {
      "users": [],
      "roles": [],
      "channels": []
    }
  }
}

Desarrollo

Agregar nuevos eventos

  1. Crea un archivo en src/events/nombreEvento.js
  2. Exporta un módulo con name y execute
  3. Usa sendToN8n(eventType, data) para enviar datos

Agregar nuevos comandos

  1. Crea un archivo en src/commands/nombreComando.js
  2. Usa SlashCommandBuilder para definir el comando
  3. Implementa la lógica en execute

Contribución

Las contribuciones son bienvenidas. Por favor, crea un issue primero para discutir cambios mayores.

Licencia

Este proyecto está bajo la Licencia MIT.

About

Bot de Discord para gestion de inventario VORP con MongoDB Atlas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors