promotional bannermobile promotional banner

Chat Plugin

A Hytale server plugin that provides advanced, configurable chat functionality with dynamic proximity-based modes, player groups, mentions, and permission-based customization.

File Details

Chat-1.0.1.jar

  • R
  • Feb 27, 2026
  • 565.89 KB
  • 18
  • Early Access

File Name

Chat-1.0.1.jar

Supported Versions

  • Early Access
## [1.0.1]

### Added
- Auto Announce system with server-level configuration:
- World targeting (`allWorlds` or explicit world list)
- Schedule by `REAL_TIME` (timezone-aware, optional fixed dates) or `IN_GAME_TIME`
- Per-entry message and chat mode routing
- Optional event overlay (title/subtitle/icon/sound/major/timings)
- `AutoAnnouncementService`: scheduler runs every second; REAL_TIME checks every 15 seconds (fixed); IN_GAME_TIME checked every tick so triggers are not missed; dedupe so the same announce is not re-executed (per real-time minute for REAL_TIME, per entry/world/game-minute for IN_GAME_TIME).
- Manual announcement execution API (`sendManual`) with permission/policy checks.
- `/announce` command: opens Auto Announce UI; supports `/announce send <id> [--force]`.
- Auto Announce GUI: dedicated tab in `ChatEditPage`; entry list with create/edit/delete/run/force-run; `AutoAnnouncementEditPage` with sections (General, Scheduling, Chat integration & Message, Event overlay, Manual control), chat mode dropdown, and compact layout (chat mode + message on one row, manual control on one row, event fields grouped).
- Chat Edit UI: **Reload** button to reload configuration from disk and refresh runtime.
- Direction indicator: placeholder `{direction}` uses translation keys (`Messages.DIRECTION_*`) so direction is shown in the recipient’s language; chat mode flag `showDirection` is respected (suffix with direction skipped when disabled).
- Config model: `AutoAnnouncementConfig`, `AutoAnnouncementEntry`, `AnnouncementTarget`, `AnnouncementSchedule`, `AnnouncementEventDisplay`.
- Full chat processing structured logs: `CHAT_INTERCEPT`, `CHAT_BLOCKED`, `CHAT_SENT`.

### Changed
- Real-time announcement handling: null-safe config/schedule; schedule type `REALTIME` (no underscore) accepted; time parsing accepts single-digit hour (e.g. `9:00`); entry validation null-safe for id/message.
- Auto Announce edit page: save error fixed (removed update to non-existent validation message element); Cancel/Save button styling aligned with Chat Mode page.
- **Announcement links**: Explicit link notation in announcement messages: `[link|<url>]` (link text = URL) or `[link|<url>|<message>]` (link text = message). Rendered as clickable links via `Message.raw(displayText).link(url)`. Link parsing applies to all announcements regardless of chat mode id (previously only when mode id was `announce`).
- **Auto Announce UI**: Force button removed from the GUI; force execution remains available via `/announce send <id> --force` for admins.
- **Confirm before destructive/run actions**: Delete (player group, chat mode, announcement) and Run announcement from the UI now require a second click within 10 seconds to confirm. New translation keys: `gui.confirm_delete_group`, `gui.confirm_delete_chatmode`, `gui.confirm_delete_announce`, `gui.confirm_run_announce` (en-US and it-IT).