Derselbe rote Text bricht auf Java und Bedrock
Ein Farbcode, der in einem Plugin perfekt dargestellt wird, erscheint im nächsten als wörtliche Ampersands. Das Format ist der Grund, nicht das Plugin.
Ein §-Code und ein MiniMessage-Tag können dieselbe Farbe beschreiben und trotzdem vom selben Server abgelehnt werden. Farbiger Servertext ist kein einzelnes Format – es sind mindestens fünf, und Plugins sind sich uneinig, welche sie akzeptieren.
Die fünf Dialekte
| Dialekt | Sieht aus wie | Wo er überlebt |
|---|---|---|
| Legacy-Abschnittszeichen | §cHello | Vanilla-Chat, ältere Plugins |
| Ampersand-Legacy | &cHello | Konfigurationsdateien, viele Plugins |
| BungeeCord-Hex | &x&f&f&0&0&0&0 | Proxy-Plugins, mancher Chat |
| MiniMessage | <red>Hello</red> | Moderne Paper-Plugins |
| JSON-Komponente | {"text":"Hello","color":"red"} | Vanilla-Befehle, /tellraw |
Die Ampersand-Form ist überhaupt kein Farbcode, bis etwas sie übersetzt. Füge &c in ein Plugin ein, das MiniMessage erwartet, und die Spieler lesen die wörtlichen Zeichen.
Legacy-Codes gehen die Farben aus
Das Abschnittszeichen-System trägt einen festen Satz Farbbuchstaben plus Formatierungs-Schalter. Es gibt keine Möglichkeit, eine beliebige Farbe darin auszudrücken. Hex kam später, und die BungeeCord-Form kodiert ihn Zeichen für Zeichen – &x gefolgt von sechs &-präfixierten Hex-Ziffern, weshalb sie so lang aussieht.
MiniMessage nimmt #ff0000 direkt. JSON nimmt denselben Hex-Wert als String-Wert.
Java und Bedrock sind sich nicht einig
Bedrock verwendet ebenfalls das Abschnittszeichen, aber sein Farbsatz und seine Behandlung von Formatierungs-Resets unterscheiden sich von Java. Ein String, der auf einem Java-Server korrekt dargestellt wird, kann auf Bedrock-Clients vereinzelte Zeichen anzeigen, und Cross-Play-Proxys übersetzen oft zwischen den beiden, anstatt Text durchzureichen. Wenn dein Server Bedrock-Spieler akzeptiert, teste die Ausgabe auf beiden.
Die Verschachtelungsfalle
Legacy-Codes sind zustandsbehaftet: Ein Farbcode setzt die Formatierung zurück, also ist §l§cBold rot und fett, aber §c§lBold ist nur bis zum nächsten Farbcode fett rot, der das Fett löscht. MiniMessage ist ein Baum – <red><bold>text</bold></red> schließt sauber. Einen verschachtelten MiniMessage-String in Legacy-Codes umzuwandeln verliert die Struktur, weil Legacy kein schließendes Tag hat.
Escaping
MiniMessage behandelt < als Syntax. Ein Spieler namens <Steve> bricht jedes Plugin, das seinen Namen als Komponente parst. Legacy-Formate haben dasselbe Problem mit &, weshalb viele Plugins && oder ein Konfigurationsflag zum Escapen erfordern.
Schreibe den Text einmal, wähle den Dialekt, den dein Plugin tatsächlich parst, und kopiere den exakten String aus Server Text Studio.