EventNotifications

EventNotifications

Por HQuark 27 de enero de 2026
#Discord#Hytale#notificaciones#Notificaciones de Eventos#ntfy#plugin#Slack#Webhooks

Un plugin para servidores de Hytale que envía notificaciones en tiempo real a servicios externos cuando ocurren eventos en el servidor. Recibe notificaciones a través de ntfy (teléfono, escritorio o web), Discord, Slack o webhooks personalizados cuando los jugadores se unen, el servidor inicia/detiene, y más.

  • ntfy – Notificaciones push gratuitas y de código abierto (recomendado)
  • Discord – Notificaciones de webhook con incrustaciones enriquecidas
  • Slack – Notificaciones de webhook con archivos adjuntos
  • Webhooks – Webhooks HTTP genéricos para integraciones personalizadas

Instalación

  • Descarga la última EventNotifications.jar de las versiones
  • Coloca el JAR en la carpeta mods de tu servidor Hytale
  • Inicia el servidor una vez para generar la configuración predeterminada
  • Edita config.json para configurar tus objetivos de notificación
  • Reinicia el servidor
  • Inicio Rápido (ntfy)

    La forma más rápida de recibir notificaciones:

  • Obtén ntfy: instala la aplicación móvil, la aplicación de escritorio o usa la aplicación web
  • En la aplicación, suscríbete a un tema (por ejemplo, my-hytale-server)
  • En config.json, establece "enabled": true en el nivel superior
  • Establece el objetivo de ntfy en "enabled": true y actualiza la URL a https://ntfy.sh/my-hytale-server
  • Reinicia el servidor – ¡ahora recibirás notificaciones!
  • Configuración

    El archivo de configuración se encuentra en mods/Valhal_EventNotifications/config.json.

    Importante: El "enabled" de nivel superior debe estar configurado en true para que el plugin envíe notificaciones. Por defecto, esto es false.

    Para un ejemplo completo con todas las opciones, consulta example-config.json.

    Estructura Básica

    {
      "enabled": true,
      "targets": {
        "ntfy": { ... },
        "discord": { ... },
        "slack": { ... },
        "webhook": { ... }
      }
    }
    

    Configuración de ntfy

    ntfy es un servicio de notificaciones push gratuito. Puedes usar el servidor público o autoalojarlo.

    "ntfy": {
      "type": "ntfy",
      "enabled": true,
      "url": "" rel="noopener nofollow" target="_blank">https://ntfy.sh/your-topic-name",
      "events": {
        "serverStart": {
          "enabled": true,
          "title": "{server} - En línea",
          "message": "¡El servidor ahora está en línea!",
          "priority": "high",
          "tags": "green_circle"
        }
      }
    }
    

    Configuración de Discord

  • Crea un webhook en tu canal de Discord (Configuración del Canal > Integraciones > Webhooks)
  • Copia la URL del webhook
  • "discord": {
      "type": "discord",
      "enabled": true,
      "url": "" rel="noopener nofollow" target="_blank">https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN",
      "discordUsername": "Servidor Hytale",
      "discordUseEmbeds": true,
      "events": {
        "playerJoin": {
          "enabled": true,
          "title": "Jugador Unido",
          "message": "**{player}** se unió al servidor",
          "color": "#5865F2"
        }
      }
    }
    

    Configuración de Slack

  • Crea una aplicación de Slack en api.slack.com/apps
  • Habilita “Incoming Webhooks” y crea un webhook para tu canal
  • Copia la URL del webhook
  • "slack": {
      "type": "slack",
      "enabled": true,
      "url": "" rel="noopener nofollow" target="_blank">https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
      "slackUseAttachments": true,
      "events": {
        "playerJoin": {
          "enabled": true,
          "title": "Jugador Unido",
          "message": "*{player}* se unió al servidor",
          "color": "#5865F2"
        }
      }
    }
    

    Configuración de Webhook

    Para integraciones personalizadas con cualquier punto final HTTP:

    "webhook": {
      "type": "webhook",
      "enabled": true,
      "url": "" rel="noopener nofollow" target="_blank">https://your-server.com/webhook",
      "contentType": "application/json",
      "events": {
        "serverStart": {
          "enabled": true,
          "title": "Servidor En Línea",
          "message": "El servidor se inició"
        }
      }
    }
    

    Autenticación

    Todos los objetivos admiten autenticación opcional. Agrega estos campos a cualquier configuración de objetivo.

    Token Bearer

    Para servicios que utilizan autenticación basada en tokens (como ntfy con tokens de acceso (opcional)):

    "bearerToken": "tk_your_token_here"
    

    Esto envía un encabezado Authorization: Bearer tk_your_token_here con cada solicitud.

    Autenticación Básica

    Para servicios que utilizan autenticación de nombre de usuario/contraseña:

    "username": "your_username",
    "password": "your_password"
    

    Esto envía un encabezado Authorization: Basic <base64> con cada solicitud.

    Encabezados Personalizados

    Para webhooks que necesitan encabezados de autenticación personalizados:

    "headers": {
      "X-API-Key": "your-api-key",
      "X-Custom-Header": "value"
    }
    

    Eventos Soportados

    Evento
    Placeholders
    Descripción

    serverStart
    {server}
    El servidor terminó de iniciar

    serverStop
    {server}
    El servidor se está apagando

    playerJoin
    {server}, {player}
    El jugador se conectó

    playerLeave
    {server}, {player}
    El jugador se desconectó

    playerChat
    {server}, {player}, {message}
    El jugador envió un mensaje de chat (deshabilitado por defecto)

    gameModeChange
    {server}, {gamemode}
    El modo de juego cambió

    groupPermissionChange
    {server}, {group}, {action}, {permissions}
    Los permisos del grupo se modificaron

    playerPermissionChange
    {server}, {player}, {action}, {group}, {permissions}
    Los permisos del jugador se modificaron

    Nota: Las notificaciones de chat están deshabilitadas por defecto para evitar el spam de notificaciones en servidores ocupados. Habilita playerChat en tu configuración si deseas recibir mensajes de chat.

    Opciones de Configuración de Eventos

    Cada evento admite estas opciones:

    Opción
    Descripción

    enabled
    Si se deben enviar notificaciones para este evento

    title
    Título de la notificación (admite placeholders)

    message
    Cuerpo de la notificación (admite placeholders)

    priority
    Prioridad de ntfy: min, low, default, high, urgent

    tags
    Etiquetas emoji de ntfy (por ejemplo, green_circle, skull)

    color
    Color de Discord/Slack en formato hexadecimal (por ejemplo, #5865F2)

    Opciones de Configuración de Objetivos

    Opciones de ntfy

    Opción
    Predeterminado
    Descripción

    ntfyMarkdown
    true
    Habilitar formato markdown en los mensajes

    ntfyDefaultPriority
    default
    Prioridad predeterminada para todos los eventos (min, low, default, high, urgent)

    ntfyIcon

    URL de la imagen del ícono mostrada en las notificaciones

    Opciones de Discord

    Opción
    Predeterminado
    Descripción

    discordUsername
    {server}
    Nombre de usuario del bot mostrado en Discord (por defecto es el nombre del servidor)

    discordAvatarUrl

    URL de la imagen del avatar del bot

    discordUseEmbeds
    true
    Usar incrustaciones enriquecidas en lugar de mensajes simples

    Opciones de Slack

    Opción
    Predeterminado
    Descripción

    slackUsername
    {server}
    Nombre de usuario del bot mostrado en Slack (por defecto es el nombre del servidor)

    slackIconUrl

    URL de la imagen del ícono del bot

    slackIconEmoji

    Emoji a usar como ícono del bot (por ejemplo, :video_game:)

    slackUseAttachments
    true
    Usar archivos adjuntos enriquecidos en lugar de mensajes simples

    Opciones de Webhook

    Opción
    Predeterminado
    Descripción

    contentType
    application/json
    Encabezado HTTP Content-Type

    bodyTemplate

    Plantilla de cuerpo personalizada (ver más abajo)

    headers

    Encabezados HTTP personalizados como pares clave-valor

    Plantilla de Cuerpo Personalizada

    Usa bodyTemplate para enviar una carga JSON personalizada en lugar del formato predeterminado:

    "webhook": {
      "type": "webhook",
      "enabled": true,
      "url": "" rel="noopener nofollow" target="_blank">https://your-server.com/webhook",
      "bodyTemplate": "{"event": "{eventType}", "text": "{message:json}"}",
      "events": { ... }
    }
    

    Placeholders de plantilla disponibles: {eventType}, {title}, {message}, {priority}, {tags}, además de todos los placeholders específicos del evento. Usa el sufijo :json para valores escapados en JSON (por ejemplo, {message:json}).

    Múltiples Objetivos

    Puedes habilitar múltiples objetivos simultáneamente. Cada objetivo tiene configuraciones de eventos independientes, por lo que puedes enviar diferentes eventos a diferentes servicios:

    {
      "targets": {
        "ntfy": {
          "enabled": true,
          "events": {
            "serverStart": { "enabled": true },
            "playerChat": { "enabled": false }
          }
        },
        "discord": {
          "enabled": true,
          "events": {
            "serverStart": { "enabled": true },
            "playerChat": { "enabled": true }
          }
        }
      }
    }
    

    Solución de Problemas

    ¿Las notificaciones no se envían?

    • Verifica que el objetivo esté enabled: true
    • Verifica que el evento esté enabled: true dentro de ese objetivo
    • Asegúrate de que la URL sea correcta y accesible desde tu servidor
    • Revisa los registros del servidor en busca de mensajes de error

    ¿Las incrustaciones de Discord no se muestran?

    • Asegúrate de que discordUseEmbeds esté true
    • Verifica que la URL del webhook esté completa y sea válida

    Agradecimientos

    Este proyecto fue construido utilizando Hytale-Example-Project como plantilla.

    Notas

    Nota: Este plugin no está afiliado con ntfy.sh

    Licencia

    Licencia MIT

    Relacionados:

    HyDiscordX

    HyDiscordX

    #comunidad#Discord#HyDiscordX

    🔗 HyDiscordX — El Enlace Perdido Entre Hytale y Discord HyDiscordX es un puente completamente funcional entre Discord ↔...

    HyDiscordRanksX

    HyDiscordRanksX

    #Discord#Hytale#LuckPerms

    🔗 HyDiscordRanksX — Roles de Discord → Rangos de HytaleHyDiscordRanksX sincroniza los roles de Discord en grupos de Luc...

    HUD Stacker

    HUD Stacker

    #Apilador de HUD#Discord#gaming

    Este mod simple te permite ejecutar múltiples de mis mods de HUD al mismo tiempo. Estos son todos mis mods de HUD actual...

    Miscellaneous Add-Ons

    Miscellaneous Add-Ons

    #add-ons#Complementos Varios#comunidad

    Una colección de pequeños complementos que no encajan del todo en un mod completo por sí solos, solicitados por ustedes,...

    Hylink

    Hylink

    #Discord#Hytale#Mod

    Soy bastante nuevo en esto de los mods, así como en el uso de Github, así que no dudes en contactarme aquí o en Discord ...

    Essential Discord Link

    Essential Discord Link

    #Bot#Configuración#Discord

    Discord Hytale Link Un módulo que proporciona un puente simple, ligero, fácil de usar y sin sobrecargas entre Discord y ...