16.6
Compatibility
Changes
Network & Synchronization Update
Today we implemented a major advancement in network communication, synchronization, and administrative control within the plugin. Below is the complete overview of everything added and improved:
1. Cross-Server Mentions Synchronization (Redis)
Raw Message Transmission
We modified the Redis protocol (RedisMessageData) to include the rawMessage (original message) hidden inside the public chat JSON before applying colors, gradients, or visual formatting.
Detection on the Destination Server
When a server receives the packet from Redis, it now silently processes the rawMessage using MentionsManager to properly detect mentions.
Cross-Server Alerts
If a player is mentioned from another server in the network, they will now receive:
- Visual ActionBar alert
- Notification sound
fully synchronized across servers.
Respect for Local Configuration
Mentions fully respect each server's local configuration. Example:
- If Server B has
mentions.enabled: false - then no mention coming from Server A will trigger alerts there.
Self-Mention Prevention
We blocked the possibility of players receiving their own cross-server mention notifications.
Duplicate Prevention
A HashSet<UUID> was implemented to ensure players never receive duplicate sounds or alerts for the same synchronized message.
2. Sound Support & Compatibility Improvements
New Structured Sound Configuration
Sound settings for both PMs and mentions now support a structured configuration format:
enablednamevolumepitch
Legacy & Modern Compatibility
We analyzed and fixed compatibility issues between old and modern Minecraft sound names.
The plugin now properly supports:
ORB_PICKUPENTITY_EXPERIENCE_ORB_PICKUPBLOCK_NOTE_BLOCK_PLING
as well as custom Resource Pack sounds such as:
custom.soundname
3. Critical Cross-Server Mentions Bugfix
During a technical audit, we detected and patched a critical issue inside RedisSubscriber.
Detected Problem
When Redis received a Legacy format (plain text without JSON):
- chat messages were processed correctly,
- but execution terminated prematurely (
return), - preventing mentions from being processed entirely.
Applied Fix
The mentions processing system was integrated directly into the Legacy fallback path:
sendPublicChatLegacy
ensuring mentions now work correctly even with old message formats.
4. Native PlaceholderAPI Expansion
We developed and injected a native PlaceholderExpansion directly into the plugin to expose real-time player settings and states.
This allows seamless integration with:
- Scoreboards
- TAB plugins
- Holograms
- Menus
- any PlaceholderAPI-compatible system
Available Placeholders
Fast Boolean States
%quickchat_chat_enabled%%quickchat_msg_enabled%
Returns:
truefalse
Ideal for conditions and logic checks in external plugins.
Visual Status Placeholders
%quickchat_chat_status%%quickchat_msg_status%
These directly fetch the formatted texts configured in player_settings.yml, for example:
&aEnabled&cDisabled
ready to be displayed in GUIs, scoreboards, or menus.
5. New Subcommands & Administrative Tools
The base /qchat command has been significantly expanded with advanced administration, debugging, and monitoring tools.
Forced Preference Management
New commands:
/qchat chattoggle [player]/qchat msgtoggle [player]
These allow:
- Console
- Administrators
- Staff members
to modify any player's chat or private message visibility preferences across the network.
Useful for:
- player assistance,
- moderation,
- or soft punishments.
Anti-Popup Suite
New system:
/qchat antipopup
Available subcommands:
infostatusreloadclearhelp
This suite allows administrators to monitor and hot-reload the packet interception system related to:
- Secure Chat Reporting
- client popups
- packet interception
without restarting the server.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Nw8Sb3nr:QpbWvY0s"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Nw8Sb3nr:QpbWvY0s"
}

