
4
0
A Velocity 3.x proxy plugin that routes chat from every backend server into a single global channel, visible to all connected players in real time.
Features
- Cross-server chat — messages sent on any backend server are broadcast to all players on all (configured) servers
- Fully customisable format — edit
config.ymlwith your own colour codes and placeholders &legacy codes and MiniMessage — auto-detected; use whichever style you prefer- LuckPerms integration — optional; prefixes are pulled automatically if LuckPerms is installed on the proxy
- Server filter — choose which servers participate; exclude lobby-only or mini-game servers
- Toggle on/off without restarting — flip
enabled: falseand restart the proxy
Requirements
| Requirement | Version |
|---|---|
| Java | 17 or later |
| Velocity | 3.x (tested against 3.4.0) |
| LuckPerms (optional) | 5.x |
Installation
- Download
crosschat-x.x.x.jar - Drop it into your Velocity
plugins/folder - Restart the proxy —
plugins/velocityglobalchat/config.ymlis created automatically - Edit the config to taste, then restart again
Configuration
plugins/velocityglobalchat/config.yml
# Enable or disable the plugin entirely
enabled: true
# Chat format — placeholders:
# {server} — backend server name (e.g. HUB, SURVIVAL)
# {player} — sender's Minecraft username
# {prefix} — LuckPerms prefix (empty if LuckPerms is absent)
# {message} — the chat message (always plain text — injection-safe)
#
# Use & colour codes OR MiniMessage tags — do not mix both.
format: "&8[&b{server}&8] &7{prefix}{player}&f: {message}"
# Servers that participate in global chat.
# Players on servers NOT listed here neither see nor send global messages.
# Leave the list empty to include ALL servers.
servers:
- hub
- survival
- farming
Format examples
| Style | Example |
|---|---|
Legacy & codes | &8[&b{server}&8] &7{prefix}{player}&f: {message} |
| MiniMessage | <dark_gray>[<aqua>{server}</aqua>]</dark_gray> <gray>{prefix}{player}</gray><white>: {message}</white> |
Note: Player message content is always inserted as plain text regardless of the format style, preventing colour-code injection by players.
How it works
PlayerChatEventfires on the proxy when a player sends a chat message- The handler resolves the player's current backend server via
player.getCurrentServer() - The format string is rendered using the Adventure API (legacy or MiniMessage)
- The component is broadcast to all players whose current server is in the configured
serverslist - The original event is denied — the backend server never receives the message, so it is not echoed locally
Licence
MIT — see LICENSE
Совместимость
Создатели
Детали
Лицензия:MIT
Опубликован:3 недели назад
Обновлён:3 недели назад
