EventNotifications

EventNotifications

A Hytale server plugin that sends real-time notifications to external services when server events occur. Get notified via ntfy (phone, desktop, or web), Discord, Slack, or custom webhooks when players join, the server starts/stops, and more.

23.0 загрузок
Обновлён 6 дней назад

Описание

Уведомления о событиях Hytale Плагин

А. Плагин сервера Hytale, который отправляет уведомления в реальном времени внешним службам, когда происходят события на сервере. Получите уведомление через ntfy (телефон, рабочий стол или веб), Discord, Slack или пользовательские веб-хуки, когда игроки присоединяются, сервер запускается / останавливается и многое другое.

Поддерживаемые службы уведомлений

  • ntfy - Бесплатные push-уведомления с открытым исходным кодом (рекомендуется)
  • раздор Уведомления Webhook с богатыми вставками
  • Слак Уведомления Webhook с вложениями
  • Вебхуки Общие веб-хуки HTTP для пользовательских интеграций

установка

  1. Скачать последнюю Уведомления о событии. банку из выпусков
  2. Поместите JAR в сервер Hytale мод папка
  3. Запустите сервер один раз, чтобы создать конфигурацию по умолчанию
  4. Редактировать config.json Чтобы настроить ваши цели уведомлений
  5. Перезагрузить сервер

Быстрый старт (ntfy)

Самый быстрый способ получения уведомлений:

  1. Давай! ntfy: установить мобильное приложение, настольное приложение или использовать веб-приложение
  2. В приложении подпишитесь на тему (например, мой-хиталь-сервер)
  3. в config.jsonустановленный «Включено»: истинно на высшем уровне
  4. Установите мишень ntfy «Включено»: истинно Обновление URL для https://ntfy.sh/my-hytale-server
  5. Перезагрузите сервер - теперь вы будете получать уведомления!

конфигурация

Конфигурационный файл находится в mods/Valhal_EventУведомления/config.json.

Важно: Высший уровень "включено" должны быть установлены истинный плагин для отправки любых уведомлений. По умолчанию это ложный.

Для полного примера со всеми вариантами см. example-config.json.

Основная структура

{
"Включено": правда,
"цели": {
"ntfy": {...},
"раздор": {...},
"слабый": {...},
"вебхук": {...}
?
? 

Настройка ntfy

ntfy Это бесплатный сервис push-уведомлений. Вы можете использовать публичный сервер или самохостинг.

"НТФИ": {
"тип": "ntfy",
"Включено": правда,
"урл":"rel="noopener nofollow" target="_blank">https://ntfy.sh/your-topicname",
"События": {
Сервер Старт: {
"Включено": правда,
"титул": "{сервер} - Онлайн",
"Послание": "Сервер теперь онлайн!",
"приоритет": "высокий",
"tags": "green_circle"
?
?
? 

Настройка диссонанса

  1. Создайте веб-хук в своем канале Discord (Настройки каналов > Интеграции > Веб-хуки)
  2. Скопировать webhook URL
"раздор": {
"тип": "разлад",
"Включено": правда,
"урл":"rel="noopener nofollow" target="_blank">https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN",
"discordUsername": "Hytale Server",
"discordUseEmbeds": правда,
"События": {
"Игрок присоединяется": {
"Включено": правда,
Оригинальное название: Player Joined
"сообщение": "**{player}** присоединился к серверу",
"цвет": "#5865F2"
?
?
? 

Настройка Slack

  1. Создайте приложение Slack в api.slack.com/apps
  2. Включите «Входящие веб-хуки» и создайте веб-хук для своего канала
  3. Скопировать webhook URL
"Слак": {
"тип": "слабый",
"Включено": правда,
"урл":"rel="noopener nofollow" target="_blank">https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
"slackUseAttachments": правда,
"События": {
"Игрок присоединяется": {
"Включено": правда,
Оригинальное название: Player Joined
"сообщение": "*{player}* присоединился к серверу",
"цвет": "#5865F2"
?
?
? 

Настройка Webhook

Для пользовательской интеграции с любой конечной точкой HTTP:

"вебхук": {
"тип": "вебхук",
"Включено": правда,
"урл":"rel="noopener nofollow" target="_blank">https://your-server.com/webhook",
"contentType": "application/json",
"События": {
Сервер Старт: {
"Включено": правда,
«Заголовок»: «Сервер Онлайн»,
«Сообщение»: «Сервер запущен»
?
?
? 

аутентификация

Все цели поддерживают дополнительную аутентификацию. Добавьте эти поля в любую целевую конфигурацию.

Токен-носитель

Для сервисов, использующих токены на основе auth (например, ntfy с токенами доступа (опционально)):

"bearerToken": "tk_your_token_here" 

Это посылает Разрешение: Bearer tk_your_token_here Заголовок с каждым запросом.

Основной аут

Для служб, использующих аутентификацию имени пользователя / пароля:

"имя пользователя": "ваш_имя пользователя",
«пароль»: «your_password» 

Это посылает Разрешение: Базовый <base64> Заголовок с каждым запросом.

Пользовательские заголовки

Для веб-хуков, которым нужны пользовательские заголовки аутентификации:

"заголовки": {
"X-API-Key": "your-api-key",
"X-Custom-Header": "ценность"
? 

Поддерживаемые события

Событие держатели мест Описание
Сервер Старт {сервер} Сервер закончил работу
Сервер Стоп {сервер} Сервер отключается
игрок {сервер}, {игрок} Игрок подключен
Игрок уходит {сервер}, {игрок} Игрок отключен
игрок Чат {сервер}, {игрок}, {сообщение} Игрок отправил сообщение в чате (отключено по умолчанию)
Обсуждение ModeChange {сервер}, {gamemode} Изменился режим игры
Групповое разрешение Изменения {сервер}, {группа}, {действие}, {разрешение} Групповые разрешения изменены
Игрок PermissionChange {сервер}, {игрок}, {действие}, {группа}, {разрешение} Разрешения игроков изменены

Примечание: Уведомления в чате по умолчанию отключены, чтобы избежать спама на загруженных серверах. допускать игрок Чат Если вы хотите получать сообщения в чате.

Варианты конфигурации событий

Каждое мероприятие поддерживает эти варианты:

Вариант Описание
включенный Отправлять ли уведомления на это мероприятие
титул Название уведомления (поддерживает заполнителей)
сообщение Уведомительный орган (поддерживает заполнителей)
приоритет Приоритет NTFY: мин., низкий, по умолчанию, высокий, срочно
метки ntfy emoji tags (например, Зеленый - круг, череп)
цвет Разногласия/отсутствие цвета в виде шести (например, #5865F2)

Опции целевой конфигурации

ntfy варианты

Вариант по умолчанию Описание
ntfyMarkdown истинный Включите форматирование разметки в сообщениях
ntfyDefaultПриоритет по умолчанию Приоритет по умолчанию для всех событиймин., низкий, по умолчанию, высокий, срочно)
ntfyIcon - URL для изображения значка, показанного в уведомлениях

Диссонные варианты

Вариант по умолчанию Описание
имя диссонанса {сервер} Имя пользователя Bot, отображаемое в Discord (по умолчанию для имени сервера)
Дискография Avatar Урл - URL для изображения аватара бота
раздор Использование Embeds истинный Используйте богатые вставки вместо простых сообщений

Опции Slack

Вариант по умолчанию Описание
slackUsername {сервер} Имя пользователя Bot, отображаемое в Slack (по умолчанию имя сервера)
слэкикон Урл - URL для изображения значка бота
slackIconEmoji - Emoji для использования в качестве значка бота (например, :video_game:)
slackUseAttachments истинный Используйте богатые вложения вместо простых сообщений

Варианты Webhook

Вариант по умолчанию Описание
содержание Тип приложение/json Заголовок HTTP Content-Type
телосложение - Пользовательский шаблон тела (см. ниже)
заголовки - Настраиваемые HTTP-заголовки как пары ключевых значений

Обычный шаблон тела

Использовать телосложение для отправки пользовательской полезной нагрузки JSON вместо формата по умолчанию:

"вебхук": {
"тип": "вебхук",
"Включено": правда,
"урл":"rel="noopener nofollow" target="_blank">https://your-server.com/webhook",
"bodyTemplate": "{\"event\": \"{eventType}\", \"text\": \"{message:json}\"},
"События": {...}
? 

Доступные шаблонные заполнители: {Тип события}, {титул}, {сообщение}, Приоритет, {теги}, а также все конкретные места проведения мероприятия. Использовать Джейсон суффикс для значений, избегающих JSON (например, {сообщение:json}).

Несколько целей

Вы можете использовать несколько целей одновременно. Каждая цель имеет независимые настройки событий, поэтому вы можете отправлять различные события в разные службы:

{
"цели": {
"ntfy": {
"Включено": правда,
"События": {
"ServerStart": { "включено": истинно},
"playerChat": {"enabled": false }
?
?
"раздор": {
"Включено": правда,
"События": {
"ServerStart": { "включено": истинно},
"playerChat": {"enabled": true }
?
?
?
? 

устранение неполадок

Уведомления не отправляются?

  • Убедитесь, что цель Разрешено: истинно
  • Проверьте, является ли событие Разрешено: истинно в пределах этой цели
  • Убедитесь, что URL правильный и доступен с вашего сервера.
  • Проверьте журналы сервера на наличие сообщений об ошибках

Разногласия не показываются?

  • Убедись. раздор Использование Embeds это истинный
  • Убедитесь, что URL веб-хука является полным и действительным.

Признания

Этот проект был построен с использованием Проект Hytale-Example как шаблон.

Заметки

Примечание: Этот плагин не связан с ntfy. рубить

Лицензия

МТИ Лицензия

Показать оригинальное описание (English)

Hytale EventNotifications Plugin

A Hytale server plugin that sends real-time notifications to external services when server events occur. Get notified via ntfy (phone, desktop, or web), Discord, Slack, or custom webhooks when players join, the server starts/stops, and more.

Supported Notification Services

  • ntfy - Free, open-source push notifications (recommended)
  • Discord - Webhook notifications with rich embeds
  • Slack - Webhook notifications with attachments
  • Webhooks - Generic HTTP webhooks for custom integrations

Installation

  1. Download the latest EventNotifications.jar from releases
  2. Place the JAR in your Hytale server's mods folder
  3. Start the server once to generate the default config
  4. Edit config.json to configure your notification targets
  5. Restart the server

Quick Start (ntfy)

The fastest way to get notifications:

  1. Get ntfy: install the mobile app, desktop app, or use the web app
  2. In the app, subscribe to a topic (e.g., my-hytale-server)
  3. In config.json, set "enabled": true at the top level
  4. Set the ntfy target to "enabled": true and update the URL to https://ntfy.sh/my-hytale-server
  5. Restart the server - you'll now receive notifications!

Configuration

The config file is located at mods/Valhal_EventNotifications/config.json.

Important: The top-level "enabled" must be set to true for the plugin to send any notifications. By default, this is false.

For a complete example with all options, see example-config.json.

Basic Structure

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

ntfy Setup

ntfy is a free push notification service. You can use the public server or self-host.

"ntfy": {
  "type": "ntfy",
  "enabled": true,
  "url": "" rel="noopener nofollow" target="_blank">https://ntfy.sh/your-topic-name",
  "events": {
    "serverStart": {
      "enabled": true,
      "title": "{server} - Online",
      "message": "The server is now online!",
      "priority": "high",
      "tags": "green_circle"
    }
  }
}

Discord Setup

  1. Create a webhook in your Discord channel (Channel Settings > Integrations > Webhooks)
  2. Copy the webhook URL
"discord": {
  "type": "discord",
  "enabled": true,
  "url": "" rel="noopener nofollow" target="_blank">https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN",
  "discordUsername": "Hytale Server",
  "discordUseEmbeds": true,
  "events": {
    "playerJoin": {
      "enabled": true,
      "title": "Player Joined",
      "message": "**{player}** joined the server",
      "color": "#5865F2"
    }
  }
}

Slack Setup

  1. Create a Slack app at api.slack.com/apps
  2. Enable "Incoming Webhooks" and create a webhook for your channel
  3. Copy the webhook URL
"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": "Player Joined",
      "message": "*{player}* joined the server",
      "color": "#5865F2"
    }
  }
}

Webhook Setup

For custom integrations with any HTTP endpoint:

"webhook": {
  "type": "webhook",
  "enabled": true,
  "url": "" rel="noopener nofollow" target="_blank">https://your-server.com/webhook",
  "contentType": "application/json",
  "events": {
    "serverStart": {
      "enabled": true,
      "title": "Server Online",
      "message": "The server started"
    }
  }
}

Authentication

All targets support optional authentication. Add these fields to any target configuration.

Bearer Token

For services that use token-based auth (like ntfy with access tokens (optional)):

"bearerToken": "tk_your_token_here"

This sends an Authorization: Bearer tk_your_token_here header with each request.

Basic Auth

For services that use username/password authentication:

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

This sends an Authorization: Basic <base64> header with each request.

Custom Headers

For webhooks that need custom authentication headers:

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

Supported Events

Event Placeholders Description
serverStart {server} Server finished starting
serverStop {server} Server is shutting down
playerJoin {server}, {player} Player connected
playerLeave {server}, {player} Player disconnected
playerChat {server}, {player}, {message} Player sent a chat message (disabled by default)
gameModeChange {server}, {gamemode} Game mode changed
groupPermissionChange {server}, {group}, {action}, {permissions} Group permissions modified
playerPermissionChange {server}, {player}, {action}, {group}, {permissions} Player permissions modified

Note: Chat notifications are disabled by default to avoid notification spam on busy servers. Enable playerChat in your config if you want to receive chat messages.

Event Configuration Options

Each event supports these options:

Option Description
enabled Whether to send notifications for this event
title Notification title (supports placeholders)
message Notification body (supports placeholders)
priority ntfy priority: min, low, default, high, urgent
tags ntfy emoji tags (e.g., green_circle, skull)
color Discord/Slack color as hex (e.g., #5865F2)

Target Configuration Options

ntfy Options

Option Default Description
ntfyMarkdown true Enable markdown formatting in messages
ntfyDefaultPriority default Default priority for all events (min, low, default, high, urgent)
ntfyIcon - URL to icon image shown in notifications

Discord Options

Option Default Description
discordUsername {server} Bot username shown in Discord (defaults to server name)
discordAvatarUrl - URL to bot avatar image
discordUseEmbeds true Use rich embeds instead of plain messages

Slack Options

Option Default Description
slackUsername {server} Bot username shown in Slack (defaults to server name)
slackIconUrl - URL to bot icon image
slackIconEmoji - Emoji to use as bot icon (e.g., :video_game:)
slackUseAttachments true Use rich attachments instead of plain messages

Webhook Options

Option Default Description
contentType application/json HTTP Content-Type header
bodyTemplate - Custom body template (see below)
headers - Custom HTTP headers as key-value pairs

Custom Body Template

Use bodyTemplate to send a custom JSON payload instead of the default format:

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

Available template placeholders: {eventType}, {title}, {message}, {priority}, {tags}, plus all event-specific placeholders. Use :json suffix for JSON-escaped values (e.g., {message:json}).

Multiple Targets

You can enable multiple targets simultaneously. Each target has independent event settings, so you can send different events to different services:

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

Troubleshooting

Notifications not sending?

  • Check that the target is enabled: true
  • Verify the event is enabled: true within that target
  • Ensure the URL is correct and accessible from your server
  • Check server logs for error messages

Discord embeds not showing?

  • Make sure discordUseEmbeds is true
  • Verify webhook URL is complete and valid

Acknowledgments

This project was built using Hytale-Example-Project as a template.

Notes

Note: This plugin is not affiliated with ntfy.sh

License

MIT License

Последние версии

EventNotifications-1.0.1.jar

Early Access 28.01.2026 52.1 КБ
Скачать

EventNotifications-1.0.0.jar

Early Access 26.01.2026 52.1 КБ
Скачать