Added
Fixed
- New
[bal]/[balance]/[money]chat preview tokens (and{bal},{balance},{money}variants) that show the sender's economy balance via Vault, with hover tooltip showing the full amount.messages.preview.balanceconfig section withlabel-template,hoverandunavailable-label(placeholders:{balance},{amount},{currency},{player}).- Dedicated ender chest preview support:
[ec]/[enderchest]/[echest]tokens (and curly variants) open a preview of the sender's ender chest on click.- Nightly build GitHub Actions workflow that publishes a rolling
nightlypre-release with the latest jar on every push tomain.- Release GitHub Actions workflow that, on every
v*tag, builds the jar, creates a GitHub Release, and publishes the version to Modrinth (paper, purpur, folia, bukkit, spigot — Minecraft 1.20.4+).
[ec]/[enderchest]tokens were not being replaced when the sender had a chatcolor preset selected — the color code was being prepended to the token, breaking literal matching. Balance and ender chest tokens are now also excluded from chatcolor application.- Emoji aliases like
:)and<3were also matching when used inside longer sequences (e.g.:)),<33). Aliases now only match as standalone tokens (surrounded by whitespace, start, or end of the message).rexchat.preview.enderchestpermission was missing fromplugin.yml.- Mention highlighting could break message colors and was sometimes missing the
@symbol.- Player chat color is now restored after a mention highlight instead of being reset to white.
Bug Fixes
- Fixed /rexchat global and /rexchat local working when proximity chat is disabled - These subcommands now properly check if chat-management.proximity.enabled is true before executing.
- Fixed /rexchat viewinv and /rexchat viewitem working when chat previews are disabled - These subcommands now check chat-previews.enabled before opening preview GUIs.
- Fixed double permission prefix bug - /rexchat global and /rexchat local were checking rexchat.rexchat.proximity.toggle instead of rexchat.proximity.toggle, making them unusable for non-op players.
- Fixed proximity message config paths - Global/local toggle messages were reading from a non-existent messages.proximity.* path instead of the correct chat-management.proximity.*.
Improvements
- Removed dead /rexchat inv and /rexchat item subcommands - These were leftover handlers that did nothing. Preview functionality is handled by viewinv/viewitem (triggered via chat clicks).
- Smarter tab completion - Subcommands global/local are now hidden from tab complete when proximity chat is disabled.
- Cleaner help menu - /rexchat help now only shows proximity commands when the feature is enabled.
- Added missing permissions to plugin.yml - rexchat.chat.minimessage, rexchat.chat.placeholders, rexchat.proximity.bypass, and rexchat.proximity.toggle are now properly defined.
- Proximity config validation - ConfigValidator now validates proximity chat settings (enabled, radius, bypass-permission) and reports errors on misconfiguration.
Security Fixes
Patched MiniMessage bypass exploit - Implemented a secure tag-escaping method using the native AdventureescapeTagslibrary. This fixes a vulnerability where players could use backslashes to bypass permission checks and use unauthorized MiniMessage tags (like<click>or<hover>) in chat.
Bug Fixes
- Fixed standalone hex colors - Hex colors like
#A96EEEnow work correctly when followed by text without space- Fixed MiniMessage hex color format - Hex colors in
<#hex>format are now properly treated as MiniMessage tags instead of showing angle brackets literally- Fixed color bleeding in hover previews - Colors and formatting no longer bleed across multiple lines in hover text - each line now properly resets formatting
- Fixed chat preview tokens with chat colors - Preview tokens like
[item],[i],[inv], and[inventory]now work correctly even when players have a chat color preset selected
Features
- Proximity/Local Chat System - Added global proximity chat with configurable radius - messages only visible to players within X blocks in the same world
- Proximity bypass permission - Staff can use
rexchat.proximity.bypassto see all messages regardless of distance- PlaceholderAPI support expanded - All message strings throughout the plugin now support PlaceholderAPI placeholders
Improvements
- Cleaner command output - Removed redundant prefix spam from
/chatcolorand other command outputs for better readability- New API methods - Added
isProximityChatEnabled(),getProximityChatRadius(),setProximityChatEnabled(), andsetProximityChatRadius()for developers
Bug Fixes
- Fixed chat preview tokens not working with chat colors - Preview tokens like [item], , [inv], and [inventory] now work correctly even when players have a chat color preset selected
[*]Improved command output formatting - Removed redundant prefix spam from /chatcolor & /help command output for cleaner display
Requirements
- Minecraft: 1.20.4 - 1.21.11 (officially supported)
- Java: 21 (required)
Documentation
Full documentation available at: https://rexsystems.github.io/rexchat
