1.3.7latestCrossChat 1.3.74 weeks ago Fixed
- Fixed players being disconnected because Velocity cannot deny signed chat messages. CrossChat now forwards the message unsigned. - Restored thecrosschat:suppresssignal for the Paper/Purpur companion. If the companion is unavailable, CrossChat leaves the source server's local chat alone and broadcasts only to other participating servers, avoiding a duplicate proxy broadcast on the source server. - The sender is excluded from the proxy broadcast to avoid duplicating the client's optimistic local chat render. - SignedVelocity is no longer required for CrossChat's chat handling.Changed
- Updated the proxy version to1.3.7. - Documented the Paper unsigned-chat setting and companion behavior for source-server formatting and local echo suppression.1.3.6CrossChat 1.3.64 weeks ago [1.3.6]
Fixed
- CrossChat now processesPlayerChatEventlast so its cancellation cannot be overwritten by another proxy chat listener, preventing duplicate local-backend messages.Changed
- Updated the proxy version to1.3.6.Fixed
- Fixed mixed legacy&color codes and MiniMessage formatting so a prefix/suffix can safely combine both styles without losing or bleeding color state. - The parser now correctly closes legacy styling before switching into a MiniMessage segment, which fixes cases like legacy prefix + MiniMessage suffix.1.3.4CrossChat 1.3.4Sep 4, 2026 [1.3.5] — 2026-09-04
Fixed
- Fixed mixed legacy&color codes and MiniMessage formatting so a prefix/suffix can safely combine both styles without losing or bleeding color state. - The parser now correctly closes legacy styling before switching into a MiniMessage segment, which fixes cases like legacy prefix + MiniMessage suffix.Changed
- Updated the proxy version to1.3.5.1.3.3CrossChat 1.3.3Aug 8, 2026 [1.3.3] — 2026-08-08
Added
- Added{suffix}and{group}placeholders backed by LuckPerms metadata.Changed
- Renamed the proxy plugin and jar toCrosschat, with configuration stored inplugins/Crosschat/. - Updated the proxy build target to the stable Velocity 3.4.0 API.1.3.2CrossChat 1.3.2Jun 27, 2026 [1.3.2] — 2026-06-26
Fixed
- Sender no longer sees their own message — the 1.3.1 workaround that excluded the sender from the broadcast was too aggressive; it was only needed because the client-side optimistic render doubled the message for the sender without [SignedVelocity](https://modrinth.com/plugin/signedvelocity) installed - With SignedVelocity on the proxy, Velocity properly completes the Minecraft 1.19+ chat-signing handshake soChatResult.denied()fully suppresses the client-side render — no double message occurs - The sender exclusion has been removed; all eligible players including the sender now receive the formatted broadcast exactly onceNotes
- [SignedVelocity](https://modrinth.com/plugin/signedvelocity) must be installed on the proxy (not the backend). This is required forChatResult.denied()to work correctly with signed chat on Velocity 3.x / Minecraft 1.19.3+. Installing it on backend servers is not needed and may cause issues.1.3.1CrossChat 1.3.1Jun 27, 2026 [1.3.1]
Fixed
- Double-message for the sender — in Minecraft 1.19.3+ the client renders the sender's own chat message locally the instant they press Enter (client-side optimistic display), before the server processes the packet; the proxy's formatted broadcast then arrived on top of that local render, producing two visible messages for the sender only - Fix: the sender is now excluded from thebroadcast()loop — they see their message exactly once via the client-side render; all other players continue to receive the formatted broadcast as normal1.2.1CrossChat 1.2.1Jun 24, 2026 [1.3.0] — 2026-06-24
Fixed
- Double-message bug — players were seeing every global-chat message twice (once from the proxy broadcast and once echoed by the backend server) - Root cause: theChatResult.message()+crosschat:suppressplugin-message approach introduced in 1.2.0 had a race condition on Velocity 3.5.0-SNAPSHOT; the suppress signal could arrive at the backend after the chat packet, causingSuppressListenerto miss the event and Paper to echo the message locally - Fix: replacedChatResult.message()withChatResult.denied()— Velocity drops the packet entirely so the backend never receives it and cannot echo it -ChatResult.denied()is safe on Velocity 3.3+ / Minecraft 1.19.3+; the 1.19.1–1.19.2 strict-signing concern that motivated the 1.2.0 workaround no longer applies to modern server buildsRemoved
- `crosschat:suppress` plugin-message channel — no longer sent - `CrossChatBackend` companion plugin is no longer required; it can be removed from backend servers (leaving it installed is harmless but it will never receive a suppress signal)1.2.0CrossChat 1.2.0Apr 18, 2026 Fixed
- Critical: players kicked with "A proxy plugin caused an illegal protocol state" on Minecraft 1.19.1+ - Root cause:ChatResult.denied()cannot cancel a cryptographically-signed chat message at the proxy level (Velocity/Minecraft protocol restriction introduced in 1.19.1) - Fix: replacedChatResult.denied()withChatResult.message(text)which strips the signature (making the message "unsigned") instead of attempting to cancel it — this prevents the disconnect entirelyAdded
- `crosschat:suppress` plugin-message channel — the proxy sends the sender's UUID to the backend over this channel immediately before forwarding the unsigned echo; the companion backend plugin uses this to silently cancel local display - `CrossChatBackend` companion Paper plugin (backend/) — drop into each Paper/Purpur backend'splugins/directory to suppress the local-chat echo of messages already broadcast globally: - Listens oncrosschat:suppress- CancelsAsyncChatEventfor the flagged player via a one-shotConcurrentHashMapset - Compatible with Paper 1.19.1+, Java 17+ - If the backend plugin is absent, global broadcast still works but the message will also appear in local backend chatNotes
- Inconfig/paper-global.ymlon each backend, ensureenforce-secure-profiles: falseso that the signature-stripped message forwarded by Velocity is accepted rather than rejected with a "Chat message delivery failed" system message1.1.0CrossChat 1.1.0Apr 18, 2026 - servers block in config.yml now uses key: "Display" format instead of a plain list, allowing each server to have its own coloured/formatted name shown in {server} - Backwards-compatible: old ' - name' list entries still load (display defaults to uppercased server name) - Config internally uses Map<String, String> with getDisplayName() - Bump version to 1.1.0
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta