MiniMessage: Moderne Textformatierung für Minecraft-Server
Wenn Sie jemals versucht haben, einen ansprechenden MOTD für einen Minecraft-Server oder eine farbige Chat-Nachricht zu erstellen, sind Ihnen wahrscheinlich Konstruktionen wie §6§lWillkommen begegnet. Das funktioniert, sieht aber aus wie ein Zeichensalat. Adventure API und das MiniMessage-Format lösen dieses Problem ein für alle Mal.
In diesem Artikel schauen wir uns an, wie MiniMessage funktioniert, warum sich der Umstieg von Legacy-Codes lohnt und wie Sie alle Möglichkeiten nutzen - von einfachen Farben bis hin zu Verläufen und interaktiven Elementen.
Was sind Adventure API und MiniMessage
Adventure ist eine Bibliothek zur Arbeit mit Textkomponenten in Minecraft. Sie wurde vom KyoriPowered-Team entwickelt und ist mittlerweile direkt in Paper, Velocity, Sponge und andere beliebte Server-Plattformen integriert.
MiniMessage ist ein Text-Serialisierungsformat innerhalb von Adventure. Wenn die Component API der programmatische Weg ist, Text aus Objekten im Java-Code zusammenzubauen, dann ist MiniMessage der Weg, dasselbe als einzelnen String in einer Konfiguration oder Nachricht zu schreiben.
Statt diesem Code:
Component.text("Hallo")
.color(NamedTextColor.GOLD)
.decorate(TextDecoration.BOLD)
.append(Component.text(" Welt").color(NamedTextColor.GREEN))
Schreiben Sie einfach:
<gold><bold>Hallo</bold> <green>Welt</green>
Das Ergebnis ist identisch, aber die zweite Variante kann direkt in eine YAML-Konfiguration und jeder Admin versteht sofort, was passiert.
Warum §-Codes veraltet sind
Legacy-Codes mit dem §-Symbol (oder & in Plugins, die es automatisch ersetzen) gibt es seit der Minecraft-Beta. Sie haben mehrere ernsthafte Probleme:
Nur 16 Farben. Sie sind auf eine Palette von 16 vordefinierten Farben beschränkt. Keine Hex-Werte, keine Abstufungen - nur §a Grün, §c Rot und so weiter.
Keine Verschachtelung. Die Formatierung funktioniert linear. Wenn Sie §l§6Text§r schreiben, löscht der Reset §r alles - sowohl Farbe als auch Fettdruck. Sie müssen die Farbe nach jedem Reset erneut angeben.
Keine Interaktivität. Legacy-Codes unterstützen keine Click-Events, Hover-Tooltips oder andere Chat-Komponenten-Funktionen. Es ist einfach flacher Text mit Farben.
Schwer lesbar. Die Zeichenkette §6§l✦ §e§lServer §6§l✦ §7- §fWillkommen! - versuchen Sie auf den ersten Blick zu verstehen, was dort passiert.
MiniMessage löst all diese Probleme. Gleichzeitig behalten die meisten Tools, die MiniMessage unterstützen, die Abwärtskompatibilität mit Legacy-Codes bei. Sie können schrittweise umsteigen.
Grundlegende MiniMessage-Syntax
Das Grundprinzip ist einfach: Tags in spitzen Klammern öffnen die Formatierung, Tags mit / schließen sie.
Benannte Farben
<red>Roter Text</red>
<gold>Goldener Text</gold>
<dark_purple>Dunkelviolett</dark_purple>
Alle 16 Standard-Minecraft-Farben stehen zur Verfügung: black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, gold, gray, dark_gray, blue, green, aqua, red, light_purple, yellow, white.
Hex-Farben
Das ist der Grund, warum viele zu MiniMessage wechseln. Die volle Palette von 16 Millionen Farben:
<#FF5555>Benutzerdefiniertes Rot</#FF5555>
<color:#00AAFF>Blauton</color>
<#FFD700>Gold</#FFD700>
Zwei Schreibweisen - beide funktionieren gleich. Hex-Farben eröffnen enorme Möglichkeiten für das Server-Branding.
Textformatierung
<bold>Fett</bold> oder kurz <b>Fett</b>
<italic>Kursiv</italic> oder <i>Kursiv</i>
<underlined>Unterstrichen</underlined> oder <u>Unterstrichen</u>
<strikethrough>Durchgestrichen</strikethrough> oder <st>Durchgestrichen</st>
<obfuscated>Verschleiert</obfuscated> oder <obf>Verschleiert</obf>
Tags können kombiniert werden:
<bold><red>Fett rot</red></bold>
<#FF0000><b><u>Rot fett unterstrichen</u></b></#FF0000>
Formatierung zurücksetzen
Der <reset>-Tag setzt die gesamte Formatierung zurück. Normalerweise brauchen Sie ihn aber nicht - schließen Sie einfach den Tag und die Formatierung endet von selbst.
<red><bold>Fett rot</bold> einfach rot</red> normaler Text
Verläufe und Effekte
Hier zeigt MiniMessage seine wahre Stärke. Versuchen Sie mal, einen Verlauf mit Legacy-Codes zu erstellen - das sind Dutzende von Zeichen mit manuell ausgewählten Farben für jeden Buchstaben. In MiniMessage ist es eine einzige Zeile.
Gradient-Text
<gradient:red:gold>Sanfter Übergang von Rot zu Gold</gradient>
<gradient:#FF0000:#00FF00:#0000FF>Dreifarbiger Verlauf</gradient>
<gradient:green:blue:purple>Grün über Blau zu Violett</gradient>
Der Verlauf verteilt sich automatisch über alle Zeichen im Text. Sie können zwei, drei oder mehr Farben angeben - die Übergänge werden gleichmäßig verteilt.
Rainbow (Regenbogen)
<rainbow>Text in allen Regenbogenfarben</rainbow>
<rainbow:2>Regenbogen mit anderer Phase</rainbow>
Der Phasenparameter (die Zahl nach dem Doppelpunkt) verschiebt die Startfarbe des Regenbogens. Nützlich, wenn Sie mehrere Regenbogen-Elemente haben und nicht alle mit derselben Farbe beginnen sollen.
Transition
<transition:red:gold:0.5>Farbe bei 50% zwischen Rot und Gold</transition>
Im Gegensatz zu gradient wendet transition eine einzelne Farbe auf den gesamten Text an - berechnet als Zwischenwert der angegebenen Farben.
Interaktive Elemente
MiniMessage unterstützt alle Funktionen der Minecraft-Chat-Komponenten. Das funktioniert im Chat, in Büchern, in der Tab-Liste und an anderen Stellen, wo der Client JSON-Text rendert.
Click-Events
<click:open_url:'https://example.com'>Website öffnen</click>
<click:run_command:'/spawn'>Klicke zum Teleportieren</click>
<click:suggest_command:'/msg '>Nachricht senden</click>
<click:copy_to_clipboard:'Kopierter Text'>Kopieren</click>
Click-Event-Typen:
open_url- öffnet einen Link im Browserrun_command- führt einen Befehl als Spieler aussuggest_command- fügt Text in die Chat-Zeile eincopy_to_clipboard- kopiert Text in die Zwischenablage
Hover-Tooltips
<hover:show_text:'Das ist ein Tooltip'>Fahre über mich</hover>
<hover:show_text:'<red>Roter Tooltip'>Hover</hover>
MiniMessage-Formatierung funktioniert auch innerhalb von Hover-Text. Sie können farbige, mehrzeilige Tooltips erstellen:
<hover:show_text:'<gold>Verzaubertes Schwert
<gray>Schaden: <red>+15
<gray>Haltbarkeit: <green>1500/1500'>⚔ Drachenschwert</hover>
Alles kombinieren
Die wahre Stärke zeigt sich in der Kombination:
<click:open_url:'https://example.com'><hover:show_text:'<aqua>Website besuchen'><gradient:gold:yellow><bold>Unsere Website</bold></gradient></hover></click>
Das erstellt Text mit Verlauf, der beim Hovern einen Tooltip zeigt und beim Klicken einen Link öffnet.
Spezielle Tags
Übersetzbarer Text (Translatable)
<translatable:block.minecraft.diamond_block>
Zeigt den Blocknamen in der Sprache des Spieler-Clients an. Nützlich für mehrsprachige Server.
Keybind
Drücke <keybind:key.sneak> zum Ducken
Zeigt die Taste, die bei diesem Spieler mit der Aktion verknüpft ist.
Selector
<selector:@p> - nächster Spieler
Insertion (Einfügung)
<insertion:'Text zum Einfügen'>Shift+Klick mich</insertion>
Bei Shift+Klick fügt der angegebene Text in die Chat-Zeile ein.
Praxisbeispiele
Server-MOTD
<gradient:#FF6B35:#FFD700><bold>MEINSERVER</bold></gradient> <dark_gray>- <gray>Survival 1.21
<aqua>▸ <white>Neue Saison! <green>Online: <yellow>42
Willkommensnachricht
<gradient:gold:yellow>✦ Willkommen, </gradient><green><bold>%player%</bold></green><gradient:yellow:gold> ✦</gradient>
<gray>Viel Spaß auf dem Server!
<dark_gray>▸ <click:run_command:'/rules'><hover:show_text:'<yellow>Klicke zum Lesen'><aqua>Regeln</aqua></hover></click> <dark_gray>▸ <click:open_url:'https://discord.gg/example'><hover:show_text:'<#7289DA>Unser Discord'><#7289DA>Discord</#7289DA></hover></click>
Kick-Nachricht
<red><bold>Vom Server getrennt</bold></red>
<gray>Grund: <white>%reason%
<dark_gray>Kontaktiere uns auf <click:open_url:'https://discord.gg/example'><aqua>Discord</aqua></click>
Wo MiniMessage eingesetzt wird
Paper und seine Forks
Paper (und Forks wie Purpur, Pufferfish, Folia) hat Adventure API eingebaut. Jedes Plugin kann MiniMessage direkt nutzen:
MiniMessage mm = MiniMessage.miniMessage();
Component message = mm.deserialize("<gold>Hallo, <green>" + playerName);
player.sendMessage(message);
Viele moderne Plugins unterstützen MiniMessage bereits in ihren Konfigurationen: EssentialsX, LuckPerms (in einigen Kontexten), TAB, DeluxeChat und andere.
Velocity
Velocity basiert ebenfalls auf Adventure API. MiniMessage funktioniert in Konfigurationen und Plugins für Velocity. MOTD, Kick-Nachrichten, Nachrichten beim Serverwechsel - alles unterstützt dieses Format.
MineGuard
Der DDoS-Schutzdienst MineGuard unterstützt MiniMessage in allen benutzerdefinierten Nachrichten. Proxy-MOTD, Kick-Nachrichten bei Blockierung, Nachrichten während der Captcha-Prüfung - überall können Sie sowohl MiniMessage-Tags als auch Legacy §/& Codes verwenden. So können Sie das Erscheinungsbild des Schutzes an den Stil Ihres Servers anpassen, einschließlich Verläufe und Hex-Farben.
BungeeCord / Waterfall
BungeeCord nutzt Adventure nicht nativ, aber es gibt Bridge-Bibliotheken (adventure-platform-bungeecord), die es Plugins ermöglichen, mit MiniMessage zu arbeiten.
Tools für die Arbeit mit MiniMessage
MiniMessage Web Viewer
Das wichtigste Tool ist webui.advntr.dev. Es ist ein Online-Editor, in dem Sie:
- MiniMessage-Markup schreiben und das Ergebnis in Echtzeit sehen können
- Die Korrektheit der Syntax prüfen können
- Verläufe und Farbkombinationen testen können
- Mit Hover- und Click-Events experimentieren können
Ich empfehle sehr, diesen Tab beim Konfigurieren Ihres Servers offen zu halten.
MiniMessage API im Code
Für Plugin-Entwickler:
// Grundlegende Nutzung
MiniMessage mm = MiniMessage.miniMessage();
Component parsed = mm.deserialize("<red>Nachricht");
// Mit Platzhaltern (sicher vor Injection)
Component parsed = mm.deserialize(
"Hallo, <name>!",
Placeholder.unparsed("name", playerName)
);
// Mit Komponenten-Platzhaltern
Component parsed = mm.deserialize(
"Hallo, <name>!",
Placeholder.component("name", playerNameComponent)
);
Beachten Sie Placeholder.unparsed() - das ist wichtig für die Sicherheit. Wenn Sie Benutzereingaben direkt in den String einsetzen, könnte ein Spieler MiniMessage-Tags einfügen. unparsed escapt diese.
Konvertierung von Legacy
Wenn Sie bereits viele Nachrichten im Legacy-Format haben, können Sie programmatisch konvertieren:
LegacyComponentSerializer legacy = LegacyComponentSerializer.legacySection();
Component component = legacy.deserialize("§6§lText");
String miniMessage = MiniMessage.miniMessage().serialize(component);
Häufige Fehler
Nicht geschlossene Tags. MiniMessage ist streng bei der Tag-Paarung. <bold>Text ohne </bold> kann zu unerwartetem Verhalten führen. Schließen Sie Ihre Tags immer.
Falsche Schließreihenfolge. Tags werden in umgekehrter Reihenfolge geschlossen, wie in HTML:
Richtig: <bold><red>Text</red></bold>
Falsch: <bold><red>Text</bold></red>
Anführungszeichen in click/hover. Wenn Ihr Tooltip-Text Anführungszeichen enthält, verwenden Sie verschiedene Typen:
<hover:show_text:"Text mit 'einfachen' Anführungszeichen">Hover</hover>
Leerzeichen in Tags. Setzen Sie keine Leerzeichen in Tags: <bold> ist korrekt, < bold > funktioniert nicht.
Stil-Tipps
Einige Empfehlungen, die mit der Erfahrung kommen:
-
Übertreiben Sie es nicht mit Farben. Regenbogentext überall ist nicht stilvoll. Wählen Sie 2-3 Hauptfarben für Ihren Server und bleiben Sie dabei.
-
Verläufe sind für Überschriften. Verwenden Sie Verläufe für Servernamen und Abschnittsüberschriften. Für normalen Text eignen sich einfache Farben besser.
-
Hover für nützliche Informationen. Fügen Sie Hover nicht um des Hovers willen hinzu. Tooltips sollten zusätzliche Informationen liefern.
-
Testen Sie auf verschiedenen Clients. Bedrock-Clients über Geyser können Text anders darstellen. Überprüfen Sie das, wenn Sie einen plattformübergreifenden Server haben.
-
Verwenden Sie Variablen. Statt Farben fest zu codieren, erstellen Sie Vorlagen. Wenn Sie die Hauptfarbe Ihres Servers ändern möchten, müssen Sie sie nur an einer Stelle ändern.
Zusammenfassung
MiniMessage ist die Richtung, in die sich das Minecraft-Server-Ökosystem bewegt. Paper hat vollständig auf Adventure API umgestellt, Velocity wurde von Anfang an darauf aufgebaut, und immer mehr Plugins und Dienste (einschließlich MineGuard) fügen Unterstützung für dieses Format hinzu.
Wenn Sie immer noch §-Codes verwenden, ist es Zeit, MiniMessage auszuprobieren. Beginnen Sie mit webui.advntr.dev, experimentieren Sie mit Verläufen und Hover-Tooltips. Sobald Sie sich an die Syntax gewöhnt haben, werden Sie nicht mehr zurückwollen.
Schützen Sie Ihren Server vor DDoS-Angriffen
Kostenloser Schutz mit 5-Minuten-Einrichtung. 1 TB Traffic inklusive.
Kostenlos testenWeitere Artikel
UHC Server einrichten: Ultra Hardcore ohne Regen, kompletter Guide
Wie du einen Ultra Hardcore Server aufsetzt: naturalRegeneration Gamerule, Plugins, Scenarios, Border, Anticheat und World Pre-generation.
Minecraft Server Welt-Backup und Wiederherstellung: Vollständige Anleitung
So sichern Sie Ihre Minecraft-Serverwelt richtig: manuelle und automatische Backups, Remote-Speicherung, Plugins, Wiederherstellung und Schutz vor Datenverlust.
Discord Whitelist Bot: Bewerbungsformular und Auto-Whitelist für SMP
Discord-Bot mit Bewerbungsformular, Accept/Deny-Buttons und Auto-Whitelist per RCON oder DiscordSRV. Fertige Bots, eigener discord.js-Aufbau, Fake-Schutz.