chat-bridge
Velocity-Plugin für CraftAttack: Chat und Tabliste gelten im ganzen Netzwerk (craftattack, arena, Limbo, Event). Velocity verteilt jede Zeile als Systemnachricht an alle Spieler; die Backends verwerfen den Chat selbst („Silencer“), sonst stünde er dort doppelt.
Warum so herum: Velocity kann eine signierte Chat-Nachricht (ab 1.19.1) weder ändern noch abbrechen, ohne den Spieler zu trennen. Der Proxy lässt sie deshalb zum Backend durch, schaut nur zu und verteilt sie selbst.
- Öffentlicher Chat mit Server-Kürzel (
[Arena],[Limbo]…, der Hauptserver ohne), Namen von Spielern im Netzwerk werden golden als@Namehervorgehoben und hören einen Ton. - Name: Rang-Prefixe schickt spawn (
DisplayName→ Kanalcraftattack:chat, gilt nur solange der Spieler auf diesem Server ist), blau mit Permissionadminmarker, 🎮 für Bedrock. - /msg (
tell,w,whisper), /r, /adminchat (Permissionadmin). - /mute
<Spieler><Stunden>, /unmute<Spieler>(Permissionadmin): temporäre LuckPerms-Permissionchatbridge.mutedin der gemeinsamen MariaDB, läuft von selbst ab. Gestummte dürfen weder öffentlich noch per /msg schreiben, außer an Admins. - Join/Leave nur beim Ein- und Ausloggen ins Netzwerk, nicht beim Serverwechsel.
- Einstellungen in
/settingsauf spawn (Join/Leave anzeigen, Erwähnungen hervorheben, Erwähnungston): Velocity speichert sie inplugins/chat-bridge/settings.propertiesund gibt sie beim Join an spawn zurück, damit die Arena dieselben Werte zeigt. Unbekannte Spieler übernimmt Velocity nur vomsettings-server(craftattack), damit die Defaults der Arena keine echten Werte verdrängen. - Tabliste: Spieler anderer Server stehen unten mit Server dahinter (
tab-tags, sonst Chat-Kürzel). Die Einträge vom eigenen Server schickt weiter das Backend (Skins, Spielmodus, Prefixe). Abgleich alle 2 s und kurz nach Join, Wechsel und Quit. - Log: Chat, /msg, Adminchat und Mutes stehen im Velocity-Log (
[chat],[msg],[adminchat],[mute]).
Silencer auf den Backends:
| Server | Wo |
|---|---|
| craftattack, arena | spawn, Appliance NetworkChat (verwirft Chat und /me, /teammsg, minecraft:msg) |
| limbo | EndlessJumper |
| event | Minigames (ab develop 8dc1659), velocity.chat-via-proxy: true in resources/config.yml |
Server ohne Silencer stehen in unsilenced-servers: Deren Spieler bekommen den Chat vom eigenen
Server nicht noch einmal, dort greift der Mute aber nur für die anderen Server.
Einstellungen: plugins/chat-bridge/config.properties (wird beim ersten Start angelegt, kommentiert).
Braucht LuckPerms auf Velocity.
Bauen und Deploy
Java 25, Gradle-Wrapper.
./gradlew build # inkl. Tests
./gradlew uploadPlugin # nach ~/velocity/plugins/chat-bridge.jar, danach: sudo systemctl restart velocity