Files
proxy/README.md
T

2.2 KiB

chat-bridge

Velocity-Plugin für CraftAttack: Der Chat gilt 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 @Name hervorgehoben und hören einen Ton.
  • Name: Rang-Prefixe schickt spawn (DisplayName → Kanal craftattack:chat, gilt nur solange der Spieler auf diesem Server ist), blau mit Permission adminmarker, 🎮 für Bedrock.
  • /msg (tell, w, whisper), /r, /adminchat (Permission admin).
  • /mute <Spieler> <Stunden>, /unmute <Spieler> (Permission admin): temporäre LuckPerms-Permission chatbridge.muted in 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.
  • 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, 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