
ZStaffChatPro
The most powerful and customizable staff chat plugin for your server!
ZStaffChatPro Folia 1.16.1
release23 марта 2026 г.ZStaffChatPro 1.16.1 - Changelog
Configuration Overhaul
- Complete config rewrite - All 4 config files (config.yml, messages.yml, discord.yml, filter.yml) rewritten in my style formatting with clear section headers and detailed per-option comments
- Removed global mode -
staff-chat-globalandglobal-channelremoved. Users who want a single channel simply keep one channel in thechannelssection - Removed
features.chat-prefixes- Chat prefix is now controlled per-channel viachat-prefix: "!"(set to""to disable) - Proxy settings grouped -
disabled-serversandserver-aliasesmoved underproxy:section - New prefix style - Default prefix changed to
&8(&cZStaffChatPro&8) &fwith white message text - Cleaner messages - All messages use
{prefix}consistently, enabled/disabled states shown in green/red - Help/About redesigned - Clean indented style with version display, no more
&m---separators
New Features
{server_previous}placeholder - Shows the display name of the previous server in server-change events{server_raw_previous}placeholder - Shows the raw name of the previous server{server_raw}placeholder - Renamed from{server}for clarity"server"stafflist mode - New display mode that groups players by their backend server within each channel (proxy only){version}placeholder in help - Help command now shows plugin version- PlaceholderUtil - New centralized placeholder system. Adding a new placeholder is now a single line of code
Bug Fixes
- Fixed signed chat kick (1.19.1+) - Chat prefixes (
!hello) and toggle mode no longer disconnect players on Velocity/BungeeCord. Uses Bridge plugin messaging to cancel chat on backend instead of proxy-sidedenied() - Fixed "Unknown command" on missing permission - All commands (zscp, stafflist, staffspy, stafftime, staffafk, channel commands) now show proper no-permission message instead of vanilla "Unknown or incomplete command"
- Fixed empty brackets in activity log - Cleanup regex now handles color codes inside brackets (e.g.
&8(&b&8)properly cleaned) - Fixed duplicate AFK messages -
isAfk()no longer has side effects. AFK detection moved to periodiccheckAfkStatus()task (every 10s) - Fixed activity log server name - Activity log now passes server name to channel format, so
({server_alias})in channel format works correctly
Improvements
- Bridge handshake - Proxy now initiates the handshake (sends PING when player connects to backend). No more waiting for backend to send first PING
- Bridge signed chat cancel - New
TYPE_CANCEL_CHATmessage type allows proxy to tell backend Bridge to cancel a chat message (for chat prefixes on 1.19.1+) - Placeholder refactor - LuckPerms placeholders renamed from
{lp_*}to{luckperms_*}for consistency - Reduced AFK throttle - Bridge activity throttle reduced from 30s to 10s, idle threshold from 5s to 3s for faster AFK detection
- Movement listener on Spigot/Folia - Added
PlayerMoveEventlistener for standalone setups (previously only tracked via chat) - Removed bStats global_mode chart - No longer needed after removing global mode
Code Quality
- PlaceholderUtil - Centralized placeholder resolution with
resolve(),buildLuckPermsPlaceholders(),buildServerPlaceholders(),cleanEmptyBrackets() - Simplified platform code - Removed global mode branching from all 4 platform files, ChannelManager, ConfigManager
- Consistent permission handling - All commands check permissions in
execute()instead of relying on platform-level permission gates
Breaking Changes
- Config version bumped (auto-backup + regenerate for existing users)
{server}renamed to{server_raw}{lp_prefix}etc. renamed to{luckperms_prefix}etc.staff-chat-global/global-channelremovedfeatures.chat-prefixesremovedingame-activity-log.sender-nameremoveddisabled-servers/server-aliasesmoved underproxy:
ZStaffChatPro 1.16.1
release23 марта 2026 г.ZStaffChatPro 1.16.1 - Changelog
Configuration Overhaul
- Complete config rewrite - All 4 config files (config.yml, messages.yml, discord.yml, filter.yml) rewritten in my style formatting with clear section headers and detailed per-option comments
- Removed global mode -
staff-chat-globalandglobal-channelremoved. Users who want a single channel simply keep one channel in thechannelssection - Removed
features.chat-prefixes- Chat prefix is now controlled per-channel viachat-prefix: "!"(set to""to disable) - Proxy settings grouped -
disabled-serversandserver-aliasesmoved underproxy:section - New prefix style - Default prefix changed to
&8(&cZStaffChatPro&8) &fwith white message text - Cleaner messages - All messages use
{prefix}consistently, enabled/disabled states shown in green/red - Help/About redesigned - Clean indented style with version display, no more
&m---separators
New Features
{server_previous}placeholder - Shows the display name of the previous server in server-change events{server_raw_previous}placeholder - Shows the raw name of the previous server{server_raw}placeholder - Renamed from{server}for clarity"server"stafflist mode - New display mode that groups players by their backend server within each channel (proxy only){version}placeholder in help - Help command now shows plugin version- PlaceholderUtil - New centralized placeholder system. Adding a new placeholder is now a single line of code
Bug Fixes
- Fixed signed chat kick (1.19.1+) - Chat prefixes (
!hello) and toggle mode no longer disconnect players on Velocity/BungeeCord. Uses Bridge plugin messaging to cancel chat on backend instead of proxy-sidedenied() - Fixed "Unknown command" on missing permission - All commands (zscp, stafflist, staffspy, stafftime, staffafk, channel commands) now show proper no-permission message instead of vanilla "Unknown or incomplete command"
- Fixed empty brackets in activity log - Cleanup regex now handles color codes inside brackets (e.g.
&8(&b&8)properly cleaned) - Fixed duplicate AFK messages -
isAfk()no longer has side effects. AFK detection moved to periodiccheckAfkStatus()task (every 10s) - Fixed activity log server name - Activity log now passes server name to channel format, so
({server_alias})in channel format works correctly
Improvements
- Bridge handshake - Proxy now initiates the handshake (sends PING when player connects to backend). No more waiting for backend to send first PING
- Bridge signed chat cancel - New
TYPE_CANCEL_CHATmessage type allows proxy to tell backend Bridge to cancel a chat message (for chat prefixes on 1.19.1+) - Placeholder refactor - LuckPerms placeholders renamed from
{lp_*}to{luckperms_*}for consistency - Reduced AFK throttle - Bridge activity throttle reduced from 30s to 10s, idle threshold from 5s to 3s for faster AFK detection
- Movement listener on Spigot/Folia - Added
PlayerMoveEventlistener for standalone setups (previously only tracked via chat) - Removed bStats global_mode chart - No longer needed after removing global mode
Code Quality
- PlaceholderUtil - Centralized placeholder resolution with
resolve(),buildLuckPermsPlaceholders(),buildServerPlaceholders(),cleanEmptyBrackets() - Simplified platform code - Removed global mode branching from all 4 platform files, ChannelManager, ConfigManager
- Consistent permission handling - All commands check permissions in
execute()instead of relying on platform-level permission gates
Breaking Changes
- Config version bumped (auto-backup + regenerate for existing users)
{server}renamed to{server_raw}{lp_prefix}etc. renamed to{luckperms_prefix}etc.staff-chat-global/global-channelremovedfeatures.chat-prefixesremovedingame-activity-log.sender-nameremoveddisabled-servers/server-aliasesmoved underproxy:
ZStaffChatPro Folia 1.15.1
release1 марта 2026 г.Bug Fixes:
- Fixed LuckPerms prefix/suffix hex colors (
&#RRGGBBformat) not rendering — showed raw text like#FF0000Nicknameinstead of colored text. Added&#RRGGBB/§#RRGGBBformat support to ColorUtil.
ZStaffChatPro 1.15.1
release1 марта 2026 г.Bug Fixes:
- Fixed LuckPerms prefix/suffix hex colors (
&#RRGGBBformat) not rendering — showed raw text like#FF0000Nicknameinstead of colored text. Added&#RRGGBB/§#RRGGBBformat support to ColorUtil.
ZStaffChatPro Folia 1.15.0
release18 февраля 2026 г.New Features:
-
Separate Discord Config — Discord configuration has been moved from
config.ymlto a dedicateddiscord.ymlfile for better organization. The new file has 4 clear top-level sections:webhook,webhook-activity-log,bot, andbot-activity-log. -
Stafflist AFK/Vanish Suffix — Added
stafflist-afk-suffixandstafflist-vanished-suffixto messages.yml, allowing status indicators to be displayed after player names (in addition to the existing prefix options). -
Chat Filter (Anti-Bad-Words) — Added a configurable chat filter in a dedicated
filter.ymlfile. Supports two modes:censor(replaces matched words with configurable replacements for Minecraft and Discord separately) andblock(prevents the message entirely). Supports plain word list with automatic word-boundary matching and raw regex patterns. Players with the bypass permission (zstaffchat.filter.bypass) skip filtering. -
Global Channel Toggle — Added
/zstaffchat toggle <channel>command to globally enable/disable channels. State persists toconfig.yml(survives restarts). Disabled channels block all messages (commands, chat prefixes, toggle mode) and show a configurablechannel-disabledmessage. Requireszstaffchat.togglepermission. Tab completion for channel IDs included. -
Grouped Stafflist Mode — Added
stafflist-modeconfig option (defaultorgrouped). Grouped mode displays rank as a title with players listed individually below, instead of comma-separated on one line. Fully customizable viastafflist-group-titleandstafflist-group-playerin messages.yml.
Improvements:
- Reduced config.yml size by ~250 lines (51% smaller) by moving Discord config to discord.yml
- Discord config now has its own version tracking (
discord-version) - Added /zscp command alias on all platforms
- Added
{prefix}placeholder support in all messages.yml messages — plugin prefix is no longer hardcoded, users can move or remove it from any message - Added Chat Filter status to startup message and
/zstaffchat aboutoutput on all platforms - Added Bridge Addon connection status to
/zstaffchat abouton proxy platforms (shows connected server names) - Added Discord bot name, owner, and server/guild name to
/zstaffchat aboutoutput (shows which bot is connected, who owns it, and to which Discord server) - Added
{server}and{server_alias}placeholder support in Discord bot and webhook message formats (text, embeds, footer, etc.) - Added
{server_alias}placeholder support in channel format (previously only{server}was available) - Empty
{server}placeholders now auto-clean surrounding brackets[]/()and double spaces - Removed dead code: unused methods, interface stubs, redundant logic across the codebase
Bug Fixes:
- Fixed hex colors ({#RRGGBB}) and gradients not working on BungeeCord — all commands and chat messages now use ColorUtil instead of ChatColor.translateAlternateColorCodes
- Fixed Kotlin compiler warnings: deprecated
description.version→pluginMeta.versionon Folia, unused event parameters on Velocity, redundant elvis operator in Folia AfkListener, unused parameter and redundant initializer in ConfigManager - Fixed
{server}placeholder not working in Discord bot/webhook messages (was missing from placeholder map) - Fixed player not seeing their own join/leave activity messages on proxy (BungeeCord/Velocity) — players without a backend server at login time were being skipped
- Fixed empty
{server}placeholder leaving extra spaces in channel format messages
