Releases: HyperSystemsDev/Werchat
Werchat v1.11.2
Fixes\n- Fixed chat format parsing so PlaceholderAPI is applied to the full format string before Werchat token replacement.\n- Prevented per-literal PAPI parsing during token assembly, which could leave some placeholders unresolved for certain configs.\n\n## Build\n- Built against latest release channel server version via Maven resolution.\n\n## Artifacts\n- Werchat-1.11.2.jar
Werchat v1.11.1
Full Changelog: v1.11.0...v1.11.1
Werchat v1.11.0
Werchat 1.11.0
UI
- Added a unified
/chsettings UI with Main, Channels, and moderator management views. - Added password popup flow for joining locked channels from the UI.
- Added modal management lists for bans, mutes, and moderators.
- Added channel owner and selected-channel online roster data to the UI.
- Added dynamic command help panel in Main view.
/ch helpnow opens the UI help view (permission-filtered command list)./ch listnow opens the Channels view directly.
UI Scalability
- Replaced overflowing moderator button strip with a dropdown selector + Open action.
- Fixed moderator dropdown routing bug that could show
Unknown moderator tab. - Adjusted help panel scrolling so long command lists no longer create large empty space.
Channels
- Added channel descriptions (
description,descriptionEnabled) and UI visibility support. - Added channel MOTD (
motd,motdEnabled) and UI visibility support. - MOTD delivery is session-safe (once per login for eligible members).
- Added auto-disambiguated default nicks when creating channels without explicit nick:
- Uses first character, then suffixes for collisions (
1,1-2,1-3).
- Uses first character, then suffixes for collisions (
Commands
- Added
/ch description <channel> <text|on|off|clear>. - Added
/ch motd <channel> <text|on|off|clear>. - Added
/ch reloadsupport in the UI command help list (permission-aware).
PlaceholderAPI
- Added channel keys for description and MOTD:
descriptionmotdhas_descriptionhas_motddescription_enabledmotd_enabled
Stability & Hardening
- Removed UI test-ban seeding logic from moderation list rendering.
- Improved save-thread safety for debounced channel/player persistence.
/ch reloadnow flushes pending debounced saves before disk reload./ch unmodnow blocks removing channel owner moderator status.- Quick-chat symbol matching now prefers longest symbol first (deterministic tiebreak).
- Added permission enforcement for
/ignorelist(werchat.ignore,werchat.*, or*).
Werchat 1.10.1
Werchat 1.10.1
- Bumped plugin version to
1.10.1for a new release artifact. - Built against latest Hytale release server version resolved at build time.
- No UI branch work included in this release.
Werchat 1.10.0
Quick Changelog
- Added clickable URL support in channel chat and private messages.
- Added
clickableUrls.enabledconfig toggle (default:true). - Added braced PAPI channel selectors for underscore-safe channel names:
%werchat_channel_{<selector>}%%werchat_channel_{<selector>}_<key>%
- Kept backward compatibility for existing selector/key syntax:
%werchat_channel_<selector>_<key>%%werchat_channel_<selector>__<key>%
- Fixed PAPI reload edge case for persistent Werchat expansion by making active alias config reads reload-safe.
- Improved build pipeline to resolve Hytale
ServerVersionfrom Maven metadata at build time.
Werchat 1.1.9
Werchat 1.1.9
Compatibility
Added explicit Hytale ServerVersion targeting in manifest.json: 2026.02.17-255364b8e.
Added build-time validation so ServerVersion must be an exact build string.
Added
/ch reload command for reloading Werchat config and channel data safely.
PlaceholderAPI support is new in 1.1.9:
chat-format placeholder parsing (soft dependency),
built-in werchat expansion with global/player/channel placeholders,
Full list is available on the werchat docs/wiki
Public Werchat API improvements for integrations:
typed action/membership result objects,
API capability/version surface,
pre/post hook registration,
exact and fuzzy channel lookup modes.
Changed
Channel permission terminology is now read (replacing legacy view/see language).
Added optional channel permission enforcement for normal /ch usage and chat routing (off by default).
Enable it with channelPermissions.enforce: true in config.json.
Example for a staff channel: grant werchat.channel.staff.join, werchat.channel.staff.read, and werchat.channel.staff.speak.
Persistence moved from periodic autosave to dirty + debounced saves (20s) with final flush on shutdown.
Default channel announcements now route through a single default-channel broadcast path.
Fixed
Fixed repeated join/leave announcement spam behavior.
Fixed PM command flow to respect allowPrivateMessages (/msg and /r).
Removed deprecated/unused API paths and dead code discovered during cleanup.
Werchat v1.1.8
New Features
Separate Tag & Text Colors
Set independent colors for channel tag and message text.
/ch color <channel> <#tag> [#text]— one color sets both, two colors set them independently- Example:
/ch color Global #55FF55 #FFFFFFgives a green tag but white message text - Shown in
/ch infowhen a separate text color is set - Backward compatible: existing channels continue using tag color for both
Per-Channel Quick Chat
Quick chat symbol triggers are now controlled per channel.
- Each channel has
quickChatEnabled(true/false) in channels.json - Moved from global config.json toggle to per-channel control
- Existing channels with symbols auto-enable on first load
Multi-World Channels
Restrict channels to one or more worlds.
- Set
"worlds": ["world1", "world2"]in channels.json - Players can only send/receive messages when in an allowed world
/ch world <channel> add <world>— add a world to the restriction list/ch world <channel> remove <world>— remove a world from the list/ch world <channel> none— clear all world restrictions- Requires
werchat.worldpermission - World restriction shown in
/ch infoand/ch list - Backward compatible: old
"world": "name"format auto-migrates to array
Admin Targeting for Nicknames & Message Colors
Admins can set other players' nicknames and message colors.
/ch playernick <player> <name> [#color] [#gradient]— requireswerchat.playernick.others/ch msgcolor <player> <#color> [#gradient]— requireswerchat.msgcolor.others- Use
/ch playernick <player> resetor/ch msgcolor <player> resetto clear
Ignore Chat Cancellations
Optional ignoreChatCancellations setting in config.json.
- When enabled, Werchat processes chat even if another plugin cancelled the event
- Useful when running alongside plugins that have their own chat formatters