HyAnnouncer - Announcements - Broadcasts - Sounds

A powerful announcement system for Hytale servers with scheduled messages, welcome messages, join/leave broadcasts, clickable links, and full customization support.

File Details

Release 1.1.7

  • R
  • Jun 20, 2026
  • 217.54 KB
  • 43
  • 0.5

File Name

hyannouncer-1.1.7.jar

Supported Versions

  • 0.5
Requires **Hytale 0.5.6+** (Java 25). Build with JDK 25 toolchain via Gradle.

### Added

- **Granular permissions:** Replaced OP-only command access with `hyannouncer.command.*` permission nodes. OP (`*`) still grants full access.
  - `hyannouncer.command.use` — `/ha info`, `/ha list`
  - `hyannouncer.command.reload` — `/ha reload`
  - `hyannouncer.command.broadcast` — `/ha broadcast`, `/ha test`
  - `hyannouncer.command.send` — `/ha send`, `/ha sendplayer`
  - `hyannouncer.command.gui` — `/ha gui`
  - `hyannouncer.command.control` — `/ha start`, `/ha stop`, `/ha startsys`, `/ha stopsys`
  - `hyannouncer.admin` or `hyannouncer.*` — full HyAnnouncer access

### Changed

- **Hytale 0.5.6 / Java 25:** Bumped `ServerVersion`, Java toolchain, and build docs for hytale-downloader layout.
- **API:** Replaced removed `Player.getDisplayName()` with `PlayerRef.getUsername()` via `PlayerHelper.getUsername()`.
- **GUI command:** `/ha gui` migrated from `AbstractAsyncCommand` to `AbstractPlayerCommand` because `Player` no longer implements `CommandSender` in Update 5.
- **Version display:** Startup log and `/ha info` now read version from plugin manifest instead of hardcoded string.
- **Build:** `build.gradle` supports `local.properties` and `HYTALE_HOME` / `HYTALE_SERVER_JAR` env vars for locating `HytaleServer.jar`.
- **Documentation:** Updated commands, permissions, troubleshooting, and CurseForge descriptions for 1.1.7.

### Fixed

- **Announcement permissions:** Config `Permission` fields on chat/title/notify/welcome announcements now use the real Hytale permission system via `PlayerHelper`.
- **Leave-world messages:** Default white "player left world" chat is now suppressed when join-leave is enabled, using `RemovedPlayerFromWorldEvent.setBroadcastLeaveMessage(false)` (mirrors join suppression on `AddPlayerToWorldEvent`).