Minecraft Wiki

Das Minecraft-Wiki wird von Microsoft nicht mehr als offiziell angesehen, weshalb einige Änderungen vorgenommen werden müssen, unter anderem am Logo des Wikis. Bitte lese diese Ankündigung für mehr Informationen.

MEHR ERFAHREN

Minecraft Wiki
Kappascopezz (Diskussion | Beiträge)
('font'-Eigenschaft von Textteilen ergänzt)
Delphi42 (Diskussion | Beiträge)
(Beispiele in den Abschnitt Beispiele verschoben, in meiner letzten Bearbeitung entfernte Beispiele wieder hinzugefügt und aktualisiert; Beschreibung für SNBT-Version von show_item hinzugefügt)
Markierung: Durch einen Tor-Ausgangsknoten
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 86: Zeile 86:
 
{{Anker|Elemente}}
 
{{Anker|Elemente}}
 
<div class="treeview">
 
<div class="treeview">
* {{JSON|liste}}: Ein Text kann aus mehreren Textteile bestehen, die in einer '''Liste''' zusammengefasst werden. Jeder Textteil kann individuell formatiert werden. Wenn die Formatierung für den gesamten Text gleich ist, ist nur ein einziger Textteil nötig. Dann können die Listenklammern weggelassen werden. Falls man eine Liste verwendet, vererbt der erste Textteil seine Formatierung an die weiteren. Wenn man das vermeiden möchte, nimmt man als ersten Textteil einen Leertext.
+
* {{JSON|liste}}: Ein Text kann aus mehreren Textteile bestehen, die in einer '''Liste''' zusammengefasst werden. Jeder Textteil kann individuell formatiert werden. Wenn die Formatierung für den gesamten Text gleich ist, ist nur ein einziger Textteil nötig. Dann können die Listenklammern weggelassen werden. Falls man eine Liste verwendet, vererbt der erste Textteil seine Formatierung an die weiteren. Wenn man das vermeiden möchte, nimmt man als ersten Textteil einen Leertext. Ein einfacher Freitext kann auch einfach als JSON-Zeichenkette angegeben werden, zum Beispiel <code>"Test"</code> oder ein Leertext als <code>""</code>.
 
** {{JSON|objekt}}: Ein '''Textteil'''.
 
** {{JSON|objekt}}: Ein '''Textteil'''.
  +
<!-- Texterzeugungsangaben
*** {{JSON|text|text}}: Der Textteil ist ein '''Freitext''', der wie eingegeben angezeigt wird. Eine [[Befehl#Zielauswahl|Zielauswahl]] in diesem Text hat keine Wirkung und wird wie ein Text behandelt.
 
  +
-->*** {{JSON|text|text}}: Der Textteil ist ein '''Freitext'''. Eine [[Befehl#Zielauswahl|Zielauswahl]] in diesem Text hat keine Wirkung und wird wie ein Text behandelt. Es werden jedoch bestimmte Zeichenfolgen interpretiert: <code>\n</code> erzeugt einen Zeilenumbruch und die Verwendung von [[Formatierungscodes]] ist möglich, indem das Paragrafenzeichen als Unicode-Zeichen <code>\u00a7</code> eingegeben wird.
*** {{JSON|text|keybind}}: Der Textteil ist eine Variable, die für eine Aktion steht. Die für diese Aktion im [[Menü/Optionen/Steuerung|Steuerungsmenü]] eingestellte Taste wird in den Text eingefügt. Beispielsweise wird für den Wert <code>key.inventory</code> standardmäßig ''E'' eingefügt. Die einzelnen Variablen sind in der Datei [[options.txt]] zu finden.
 
 
*** {{JSON|text|selector}}: Der Textteil ist eine [[Befehl#Zielauswahl|'''Zielauswahl''']]. Als Text werden die im Augenblick der Texterzeugung durch die Zielauswahl bestimmten Spielernamen angezeigt. Sollte es keinen passenden Spieler geben, wird dieser Eintrag zu einem Leertext. Ein "selector"-Textteil ermöglicht die Integration von Spielernamen im Text, bestimmt aber nicht, ''wer'' den Text erhält. Das wird außerhalb des Textes festgelegt.
 
*** {{JSON|text|keybind}}: Der Textteil ist eine Variable, die für eine Aktion steht. Die für diese Aktion im [[Menü/Optionen/Steuerung|Steuerungsmenü]] eingestellte Taste wird in den Text eingefügt. Beispielsweise wird für den Wert <code>key.inventory</code> standardmäßig ''E'' eingefügt. Die einzelnen Variablen sind in der Datei [[options.txt]] zu finden. Dabei ist das Präfix <code>key_</code> der Aktionsnamen wegzulassen (zum Beispiel <code>key.use</code>).<br/>Es können auch die Tastennamen wie <code>key.mouse.right</code> verwendet werden, dann wird aber immer die gleiche Taste angezeigt, unabhängig davon, was im Steuerungsmenü eingestellt ist.
 
*** {{JSON|text|translate}}: Der Textteil ist eine Variable aus einer Minecraft-'''Sprachdatei'''. Die Standard-Sprachdateien stehen im Ordner [[Standard-Ressourcen|.minecraft/assets]]. Die Variablen sind in allen Sprachdateien identisch. Bei der Verwendung von "translate" wird der in der aktuell eingestellten Sprache hinter der Variable stehende Text zum Textteil. "translate" wird von Minecraft selbst z.B. im Zusammenhang mit dem "hoverEvent" "show_item" verwendet, d.h. wenn man mit der Maus über einen Gegenstand im Inventar fährt, wird der Name in der aktuell eingestellten Sprache angezeigt. Man kann auch einen Freitext verwenden, der, wenn er nicht in den Sprachdateien vorhanden ist, als Freitext dargestellt wird. Das könnte man genauso mit der "text"-Eigenschaft lösen, aber bei "translate" kann man zusätzlich die "with"-Einfügungen verwenden, die man auch formatieren kann.
 
*** {{JSON|text|translate}}: Der Textteil ist eine Variable aus einer Minecraft-'''Sprachdatei'''. Die Standard-Sprachdateien stehen im Ordner [[Standard-Ressourcen|.minecraft/assets]]. Die Variablen sind in allen Sprachdateien identisch. Bei der Verwendung von "translate" wird der in der aktuell eingestellten Sprache hinter der Variable stehende Text zum Textteil. "translate" wird von Minecraft selbst z.B. im Zusammenhang mit dem "hoverEvent" "show_item" verwendet, d.h. wenn man mit der Maus über einen Gegenstand im Inventar fährt, wird der Name in der aktuell eingestellten Sprache angezeigt. Man kann auch einen Freitext verwenden, der, wenn er nicht in den Sprachdateien vorhanden ist, als Freitext dargestellt wird. Das könnte man genauso mit der "text"-Eigenschaft lösen, aber bei "translate" kann man zusätzlich die "with"-Einfügungen verwenden, die man auch formatieren kann.
*** {{JSON|liste|with}}: Nur in Verbindung mit "translate": Liste von Ersetzungstexten. Einige "translate"-Texte enthalten (immer in allen Sprachen) den Platzhalter %s. Beispiel: der Text zum Parameter "multiplayer.player.joined" lautet in Deutsch: "%s hat das Spiel betreten". Der Platzhalter wird in diesem Fall normalerweise durch den Spielernamen ersetzt. In einem Text kann man alle Platzhalter beliebig ersetzen. Die Anzahl der Ersetzungen in der "with"-Liste muss jedoch immer mit der Anzahl der %s-Platzhalter im Text übereinstimmen. Interessanterweise ist "with" keine Unter-Eigenschaft von "translate", sondern parallel zu dieser einzutragen. Die Einträge in "with" sind auch im JSON-Format, wodurch z.B. <code>"with":[{"selector":"@p","color":"green"}]</code> den nächsten Spieler in grüner Schrift einfügen würde.
+
*** {{JSON|liste|with}} (nur in Verbindung mit "translate"): Liste von Ersetzungstexten. Einige "translate"-Texte enthalten (immer in allen Sprachen) den Platzhalter %s. Beispiel: der Text zum Parameter "multiplayer.player.joined" lautet in Deutsch: "%s hat das Spiel betreten". Der Platzhalter wird in diesem Fall normalerweise durch den Spielernamen ersetzt.<br/>In einem Text kann man alle Platzhalter beliebig ersetzen. Die Anzahl der Ersetzungen in der "with"-Liste muss jedoch immer mit der Anzahl der %s-Platzhalter im Text übereinstimmen. Interessanterweise ist "with" keine Unter-Eigenschaft von "translate", sondern parallel zu dieser einzutragen. Die Einträge in "with" sind auch im JSON-Format, wodurch z.B. <code>"with":[{"selector":"@p","color":"green"}]</code> den nächsten Spieler in grüner Schrift einfügen würde.<br/>Statt dem Platzhalter %s kann in den Sprachdateien auch %''n''$s verwendet werden, um den ''n''-ten Ersetzungstext einzufügen. Dies ist nützlich, wenn die Ersetzungstexte in verschiedenen Sprachen in unterschiedlicher Reihenfolge stehen.
*** {{JSON|text|selector}}: Der Textteil ist eine [[Befehl#Zielauswahl|'''Zielauswahl''']]. Als Text werden im Augenblick der Texterzeugung die durch die Zielauswahl bestimmten Spielernamen angezeigt. Sollte es keinen passenden Spieler geben, wird dieser Eintrag bei der Erzeugung weggelassen. Der "selector" ermöglicht die Integration von Spielernamen im Text. Er bestimmt aber nicht, ''wer'' den Text erhält. Das wird außerhalb des Textes festgelegt.
 
 
*** {{JSON|text|nbt}}: [[Befehl#NBT-Pfad|NBT-Pfad]] zu '''[[NBT-Daten]]''': Zusätzlich zum NBT-Pfad muss genau einer der Parameter ''block'', ''entity'' oder ''storage'' angegeben werden, um festzulegen, wo die anzuzeigenden NBT-Daten herkommen.
 
*** {{JSON|text|nbt}}: [[Befehl#NBT-Pfad|NBT-Pfad]] zu '''[[NBT-Daten]]''': Zusätzlich zum NBT-Pfad muss genau einer der Parameter ''block'', ''entity'' oder ''storage'' angegeben werden, um festzulegen, wo die anzuzeigenden NBT-Daten herkommen.
*** {{JSON|text|block}}: Nur in Verbindung mit "nbt": Die Koordinaten eines Blocks, dessen NBT-Daten angezeigt werden sollen; im Format <code>x y z</code>.
+
*** {{JSON|text|block}} (nur in Verbindung mit "nbt"): Die Koordinaten eines Blocks, dessen NBT-Daten angezeigt werden sollen, im Format <code>x y z</code>.
*** {{JSON|text|entity}}: Nur in Verbindung mit "nbt": [[Befehl#Zielauswahl|Zielauswahl]] für ein Objekt, dessen NBT-Daten angezeigt werden sollen.
+
*** {{JSON|text|entity}} (nur in Verbindung mit "nbt"): [[Befehl#Zielauswahl|Zielauswahl]] für ein Objekt, dessen NBT-Daten angezeigt werden sollen.
*** {{JSON|text|storage}}: Nur in Verbindung mit "nbt": [[NBT-Datenspeicher|Wertspeicher]], dessen NBT-Daten angezeigt werden sollen.
+
*** {{JSON|text|storage}} (nur in Verbindung mit "nbt"): [[NBT-Datenspeicher|Wertspeicher]], dessen NBT-Daten angezeigt werden sollen.
*** {{JSON|bool|interpret}}: Nur in Verbindung mit "nbt": Bei <code>true</code> werden die NBT-Daten als Textteil interpretiert und können somit wiederum JSON-Text-Formatierungen enthalten.
+
*** {{JSON|bool|interpret}} (nur in Verbindung mit "nbt"): Bei <code>true</code> werden die NBT-Daten als Textteil interpretiert und können somit wiederum JSON-Text-Formatierungen enthalten.
*** {{JSON|text|separator}}: In Verbindung mit "selector" oder "nbt": Ersetzt das Komma in Auflistungen durch den hier angegebenen Text.
+
*** {{JSON|text|separator}} (in Verbindung mit "selector" oder "nbt"): Ersetzt das Komma in Auflistungen durch den hier angegebenen Text.
*** {{JSON|objekt|score}}: Der Textteil ist ein [[Anzeigetafel]]-'''Punktestand''' zum Augenblick der Texterzeugung. "score" funktioniert nicht in "hoverEvents".
+
*** {{JSON|objekt|score}}: Der Textteil ist ein [[Anzeigetafel]]-'''Punktestand'''. Dabei wird im Augenblick der Texterzeugung der momentane Punktestand im Text gespeichert. Dieser Wert wird dann auch weiterhin angezeigt, wenn sich der Punktestand ändert. "score" funktioniert nicht in "hoverEvents".
 
**** {{JSON|text|objective}}: der Name eines Anzeigetafel-Ziels. Der Name wird nicht angezeigt, sondern dient ebenfalls zur Identifizierung des richtigen Punktestandes.
**** {{JSON|text|name}}: der Name eines Spielers, eines Anzeigetafel-Zählers (das ist ein Spielername, der mit # beginnt) oder einer [[Befehl#Zielauswahl|Zielauswahl]]. Der Name wird ''nicht'' angezeigt, sondern dient zur Identifizierung des richtigen Punktestandes. Wenn der Spieler (oder Zähler) mit dem Namen noch keinen Punktestand hat (auch nicht 0 Punkte), wird nur ein eventueller Text davor und dahinter angezeigt, z.B. "Ergebnis:&nbsp; Punkte" statt "Ergebnis: 5 Punkte". Daher empfiehlt es sich, allen infrage kommenden Spielern initial 0 Punkte zu geben, damit zumindest dies angezeigt wird. Wenn eine Zielauswahl verwendet wird, die nicht genau ein Ergebnis liefert (also keins oder mehr als eines z.B. bei "@a"), wird der tellraw-Befehl nicht erfolgreich durchgeführt. Die Fehlermeldung lautet dann: "Dieses Objekt kann nicht gefunden werden".
+
**** {{JSON|text|name}}: der Name eines Spielers, eines Anzeigetafel-Zählers (das ist ein Spielername, der mit # beginnt) oder einer [[Befehl#Zielauswahl|Zielauswahl]]. Der Name wird ''nicht'' angezeigt, sondern dient zur Identifizierung des richtigen Punktestandes. Wenn der Spieler (oder Zähler) mit dem Namen noch keinen Punktestand hat (auch nicht 0 Punkte), wird der Textteil zu einem Leertext. Daher empfiehlt es sich, allen infrage kommenden Spielern initial 0 Punkte zu geben, damit zumindest dies angezeigt wird. Wenn eine Zielauswahl verwendet wird, die nicht genau ein Ergebnis liefert (also keins oder mehr als eines z.B. bei "@a"), wird der tellraw-Befehl nicht erfolgreich durchgeführt. Die Fehlermeldung lautet dann: "Dieses Objekt kann nicht gefunden werden".
**** {{JSON|text|objective}}: der Name eines Anzeigetafel-Ziels. Das Ziel wird wie der Name nicht angezeigt, sondern dient ebenfalls zur Identifizierung des richtigen Punktestandes.
 
**** {{JSON|text|value}}: diese Eigenschaft zeigt einen Punktestand an: Nach der Ausführung des Befehls ermittelt Minecraft den Punktestand des Spielers bzw. Objektes anhand der "name"- und "objective"-Eigenschaften und fügt eine "value"-Eigenschaft hinzu, die den Punktestand angibt. Sollte diese Eigenschaft bereits vorhanden sein, wird sie nicht ersetzt, wodurch der Punktestand immer auf dem einmal ermittelten Stand bleibt, auch wenn man den JSON-Text mehrfach zu unterschiedlichen Zeitpunkten liest.
+
**** {{JSON|text|value}} (optional): speichert den anzuzeigenden Wert: Nach der Ausführung des Befehls ermittelt Minecraft den Punktestand des Spielers bzw. Objektes anhand der "name"- und "objective"-Eigenschaften und fügt eine "value"-Eigenschaft hinzu, die den Punktestand angibt.<br/>Sollte diese Eigenschaft bereits vorhanden sein, wird sie nicht ersetzt, wodurch der Punktestand immer auf dem einmal ermittelten Stand bleibt, auch wenn man den JSON-Text mehrfach zu unterschiedlichen Zeitpunkten liest. Gibt man diese Eigenschaft jedoch beim Ausführen eines Befehls mit an, ignoriert Minecraft sie und fügt den tatsächlichen Punktestand ein.
  +
<!-- Formatierungsangaben
*** {{JSON|text|font}}: der interne Name der [[Schriftdaten|Schriftart]] des Textteils. Standardmäßig ist der Wert <code>minecraft:default</code>.
 
  +
-->*** {{JSON|text|font}}: der interne Name der für den Textteil zu verwendenden [[Schriftdaten|Schriftart]]: Standardmäßig wird <code>minecraft:default</code> verwendet. Die Schriftart <code>minecraft:uniform</code> ist die kleinere, für die Option "Unicode erzwingen" (im Sprachmenü) verwendete Schriftart. Ist diese Option eingeschaltet, ist das gleichbedeutend mit <code>minecraft:default</code>. Außerdem kann die Schriftart <code>minecraft:alt</code> für Beschriftungen im [[Zaubertisch#Die_Zaubersprüche|Standard Galactic Alphabet]] verwendet werden, dabei werden jedoch nur Buchstaben (und Leerzeichen) unterstützt, andere Zeichen erscheinen als Rechteck.
*** {{JSON|text|color}}: einer von 16 Farbnamen zum Einfärben des Textteils: "white", "black", "yellow", "gold", "aqua", "dark_aqua", "blue", "dark_blue", "light_purple", "dark_purple", "red", "dark_red", "green", "dark_green", "gray", "dark_gray". Man kann als Farbe auch einige Textformatierungen wie "bold" angeben, die auch zu fett gedruckter, weißer Schrift führt. Interessanterweise funktioniert dies bei <code>underlined</code> nicht. Wegen der Übersichtlichkeit ist es jedoch ratsam, stets die dafür vorgesehene "bold"-Eigenschaft zu verwenden.
+
*** {{JSON|text|color}}: einer der folgenden 16 Farbnamen zum Einfärben des Textteils: "white", "black", "yellow", "gold", "aqua", "dark_aqua", "blue", "dark_blue", "light_purple", "dark_purple", "red", "dark_red", "green", "dark_green", "gray", "dark_gray".<br/>Man kann als Farbe auch einige Textformatierungen wie "bold" angeben, die auch zu fett gedruckter, weißer Schrift führt. Interessanterweise funktioniert dies bei <code>underlined</code> nicht. Wegen der Übersichtlichkeit ist es jedoch ratsam, stets die dafür vorgesehene "bold"-Eigenschaft zu verwenden.
 
*** {{JSON|bool|bold}}: Bei <code>true</code> wird der Textteil fett formatiert.
 
*** {{JSON|bool|bold}}: Bei <code>true</code> wird der Textteil fett formatiert.
 
*** {{JSON|bool|italic}}: Bei <code>true</code> wird der Textteil kursiv formatiert.
 
*** {{JSON|bool|italic}}: Bei <code>true</code> wird der Textteil kursiv formatiert.
Zeile 110: Zeile 112:
 
*** {{JSON|bool|strikethrough}}: Bei <code>true</code> wird der Textteil durchgestrichen formatiert.
 
*** {{JSON|bool|strikethrough}}: Bei <code>true</code> wird der Textteil durchgestrichen formatiert.
 
*** {{JSON|bool|obfuscated}}: Bei <code>true</code> wird der Textteil verschleiert formatiert, d.h. er wird unlesbar, weil sich die Buchstaben ständig ändern.
 
*** {{JSON|bool|obfuscated}}: Bei <code>true</code> wird der Textteil verschleiert formatiert, d.h. er wird unlesbar, weil sich die Buchstaben ständig ändern.
  +
<!-- Zusatzaktionen
*** {{JSON|objekt|hoverEvent}} zusätzlicher Text, der beim Darüberfahren mit der Maus reagieren über diesen Textteil anzeigt wird: Für Schilder und den {{b|/title}} ist das Darüberfahren nicht möglich und bleibt dort funktionslos.
+
-->*** {{JSON|objekt|hoverEvent}}: zusätzlicher Text, der beim Darüberfahren mit der Maus über diesen Textteil anzeigt wird: Für Schilder und den {{b|/title}} ist das Darüberfahren nicht möglich und bleibt dort funktionslos.
**** {{JSON|text|action}}: eine von folgenden drei Aktionen: "show_text", "show_item", "show_entity".
+
**** {{JSON|text|action}}: eine der Aktionen "show_text", "show_item" oder "show_entity":<br/>&#8226; <code>"show_text"</code> zeigt einen JSON-Text an.
**** {{JSON|objekt|contents}}: ein Freitext:<br>&#8226; '''"show_text"''' zeigt den Freitext an. Der Freitext ist kein JSON-Text, er wird also nicht JSON-mäßig interpretiert. Aber Zeilenumbrüche mit <code>\n</code> und [[Farbcode]]s über das Unicode-Paragrafenzeichen <code>\u00a7</code> sind möglich. Beispiel: <code>/tellraw @p {"text":"Hover mich", "hoverEvent":{"action":"show_text", "contents":"weiß\u00a76 gold\u00a7f weiß\nneue Zeile"}}</code><br>&#8226; '''"show_item"''' ist eine spezielle '''formatierte Ausgabe''': in einem blauen Rahmen mit abgerundeten Ecken wird der Beschreibungstext eines Gegenstandes angezeigt, wenn der Freitext gemäß den [[Gegenstandsdaten]] angegeben wird. Beispiel: <code>"{id:\"minecraft:pumpkin\", Count:1b}"</code> oder komplexer: <code>"{id:\"minecraft:iron_pickaxe\", Count:1b, tag:{Enchantments:[{id:\"minecraft:sharpness\",lvl:1s}], display:{Lore:[\"\\\"Zauberaxt\\\"\"]}}}"</code>. Diese Formatierung wird von Minecraft verwendet, wenn man im Inventar mit der Maus über einen Gegenstand fährt. Dabei hat das Drücken von {{Taste|F3}} + {{Taste|H}} die zusätzliche Auswirkung, dass man mehr Informationen erhält (siehe [[Debug-Bildschirm#Weitere Debug-Tasten|F3]]).<br>&#8226; '''"show_entity"''' ist eine spezielle '''formatierte Ausgabe''': in einem blauen Rahmen wird der Beschreibungstext eines [[Objekt]]es angezeigt, wenn zuvor {{Taste|F3}} + {{Taste|H}} gedrückt wurde (siehe [[Debug-Bildschirm#Weitere_Debug-Tasten|F3]]). Diese Formatierung wird von Minecraft verwendet, wenn man im Chat mit der Maus über den Namen eines Objektes fährt, das z.B. mit dem {{b|/say @e}} aufgelistete wurde. Beispiel: <code>"{name:\"Huhn\", type:\"minecraft:chicken\", id:\"4e6ee278-0806-4d9b-b0b2-1af538924b2c\"}"</code>. Ohne vorheriges Drücken von {{Taste|F3}} + {{Taste|H}} wird nichts angezeigt. Der formatierte Freitext enthält [[NBT]]-Parameter, weshalb dort etwas andere Regeln gelten, z.B. müssen Eigenschaftsnamen nicht in Anführungszeichen stehen. Der gesamte formatierte Freitext ist die "contents"-Eigenschaft, hat also Anführungszeichen am Anfang und Ende:
 
  +
**** {{JSON|liste}}{{JSON|objekt}}{{JSON|text|contents}}: der anzuzeigende JSON-Text<br/>&#8226; <code>"show_item"</code> zeigt die Beschreibung eines Gegenstands an (wie wenn man im Inventar mit der Maus über den Gegenstand fährt).
***** {{NBT|compound}}
 
  +
**** {{JSON|text|contents}}: [[Gegenstand#ID-Namen|ID-Name]] des anzuzeigenden Gegenstands
****** {{NBT|compound|name}}: ist optional und kann weggelassen werden, in der formatierten Ausgabe wird dann eine Leerzeile ausgegeben. Ansonsten ist für den Namen ein beliebiger Freitext möglich.
 
  +
**** {{JSON|objekt|contents}}: alternativ [[Gegenstandsdaten]] des anzuzeigenden Gegenstands, dabei sind die einzelnen Einträge [[SNBT]]-Zeichenketten<br/>&#8226; <code>"show_entity"</code> zeigt die Beschreibung eines [[Objekt]]es an, wenn die erweiterten Schnellinfos mit {{Taste|F3}} + {{Taste|H}} aktiviert wurden (sonst wird nichts angezeigt).
****** {{NBT|string|type}}: ist ebenfalls optional und erzeugt beim Weglassen in der formatierten Ausgabe ''keine'' Leerzeile. Der Grund dafür ist vermutlich, dass ein Spieler keine Objekt-ID hat und diese deshalb nicht angegeben wird. Ansonsten ist auch hier ein beliebiger Freitext möglich.
 
  +
**** {{JSON|objekt|contents}}
****** {{NBT|string|id}}: Eine Zeichenfolge, die die [[UUID]] des Objektes im hexadezimalen Format mit Bindestrich enthält. Sollte eine gültige UUID sein.
+
***** {{JSON|text|id}}: [[UUID]] des Objektes im hexadezimalen Format mit Bindestrichen
*** {{JSON|objekt|clickEvent}}: ein Objekt, das den Textteil auf das Anklicken mit der Maus reagieren lässt. Für den {{b|/title}} ist Anklicken nicht möglich und bleibt dort funktionslos. Das Objekt hat folgende Eigenschaften:
 
  +
***** {{JSON|text|type}}: [[Objekt#ID-Namen|ID-Name]] des Objektes
**** {{JSON|text|action}}: eine von folgenden vier Aktionen: "run_command", "suggest_command", "open_url", "change_page" und "copy_to_clipboard".
 
  +
***** {{JSON|text|name}} (optional): Hier kann für den anzuzeigenden Namen des Objektes ein beliebiger Freitext eingegeben werden; das Objekt hat muss nicht tatsächlich diesen Namen haben.
**** {{JSON|text|value}}: ein Freitext:<br>&#8226; Bei '''"suggest_command"''' wird der Freitext (vorzugsweise ein beliebiger Minecraft-Befehl, aber es muss kein Befehl sein) beim Anklicken des JSON-Textes ins Chat-Fenster des Empfängers gestellt und nicht ausgeführt. Der Empfänger kann dann entscheiden, ob er den Befehl (wenn es einer ist) ausführt. "suggest_command" funktioniert nur für den {{b|/tellraw}}, nicht für Bücher oder Schilder.<br>&#8226; Bei '''"run_command"''' wird der Freitext als Befehl (auch /tellraw) im Chat-Fenster des Empfängers ausgeführt. Der Schrägstrich muss eingegeben und die 256-Zeichen-Grenze beachtet werden. Außerdem muss der Spieler das Recht haben, den Befehl auszuführen.<br> &#8226; Bei '''"open_url"''' wird der Freitext als Webadresse interpretiert. Beim Anklicken öffnet sich ein Rückfrage-Fenster, das die Webadresse anzeigt und ermöglicht, sie automatisch im Standard-Browser zu öffnen oder sie in die Zwischenablage des Betriebssystems zu kopieren. "open_url" funktioniert nur für den {{b|/tellraw}} und für Bücher, nicht für Schilder.<br>&#8226; Bei '''"change_page"''' wird der Freitext als Seitenzahl interpretiert. Diese Aktion ist für Bücher gedacht und funktioniert nur bei ihnen. Beim Anklicken des so markierten Textes wird auf die angegebene Seite gewechselt. So lässt sich ein Inhaltsverzeichnis realisieren.
 
 
*** {{JSON|objekt|clickEvent}}: Lässt den Textteil auf das Anklicken mit der Maus reagieren. Für den {{b|/title}} ist Anklicken nicht möglich und bleibt dort funktionslos. Das Objekt hat folgende Eigenschaften:
 
**** {{JSON|text|action}}: eine der Aktionen "run_command", "suggest_command", "open_url", "change_page" und "copy_to_clipboard":<br>&#8226; Bei '''"suggest_command"''' wird der Freitext (vorzugsweise ein beliebiger Minecraft-Befehl, aber es muss kein Befehl sein) beim Anklicken des JSON-Textes ins Chat-Fenster des Empfängers gestellt und nicht ausgeführt. Der Empfänger kann dann entscheiden, ob er den Befehl (wenn es einer ist) ausführt. "suggest_command" funktioniert nur für den {{b|/tellraw}}, nicht für Bücher oder Schilder.<br>&#8226; Bei '''"run_command"''' wird der Freitext als Befehl (auch /tellraw) im Chat-Fenster des Empfängers ausgeführt. Der Schrägstrich muss eingegeben und die 256-Zeichen-Grenze beachtet werden. Außerdem muss der Spieler das Recht haben, den Befehl auszuführen.<br> &#8226; Bei '''"open_url"''' wird der Freitext als Webadresse interpretiert. Beim Anklicken öffnet sich ein Rückfrage-Fenster, das die Webadresse anzeigt und ermöglicht, sie automatisch im Standard-Browser zu öffnen oder sie in die Zwischenablage des Betriebssystems zu kopieren. "open_url" funktioniert nur für den {{b|/tellraw}} und für Bücher, nicht für Schilder.<br>&#8226; Bei '''"change_page"''' wird der Freitext als Seitenzahl interpretiert. Diese Aktion ist für Bücher gedacht und funktioniert nur bei ihnen. Beim Anklicken des so markierten Textes wird auf die angegebene Seite gewechselt. So lässt sich ein Inhaltsverzeichnis realisieren.
  +
**** {{JSON|text|value}}: der Freitext für die Aktion (Befehl, URL oder Seitenzahl)
 
*** {{JSON|text|insertion}}: ein Freitext, der in der Chatzeile angehängt wird (soweit Platz ist, maximal 256 Zeichen), wenn man mit {{Taste|Shift}} auf den Textteil klickt. "insertion" wird im Spiel verwendet, wenn man sich z.B. mit dem {{b|/say @e}} alle Objekte anzeigen lässt und dann mit {{Taste|Shift}} auf eines in der Liste klickt. Dann wird die Objekt-[[UUID]] in der Chatzeile angehängt. "insertion" funktioniert nur beim {{b|/tellraw}}.
 
*** {{JSON|text|insertion}}: ein Freitext, der in der Chatzeile angehängt wird (soweit Platz ist, maximal 256 Zeichen), wenn man mit {{Taste|Shift}} auf den Textteil klickt. "insertion" wird im Spiel verwendet, wenn man sich z.B. mit dem {{b|/say @e}} alle Objekte anzeigen lässt und dann mit {{Taste|Shift}} auf eines in der Liste klickt. Dann wird die Objekt-[[UUID]] in der Chatzeile angehängt. "insertion" funktioniert nur beim {{b|/tellraw}}.
*** {{JSON|liste|extra}}: eine Liste mit weiteren Textteilen, die die Formatierungen des zugehörigen Textteils erben.
+
*** {{JSON|liste|extra}}: eine Liste mit weiteren JSON-Textteilen, die die Formatierungen des zugehörigen Textteils erben.
 
</div>
 
</div>
   
  +
== Beispiele ==
;Beispiele für Formatierungen:
 
 
Verschachtelte JSON-Texte können schnell unübersichtlich werden und man übersieht fehlende Klammern und Kommata. Daher ist es sinnvoll, ab einer gewissen Komplexität den JSON-Text strukturiert aufzubauen. '''Der JSON-Text kann auch in dieser strukturierten Form in einen Befehlsblock kopiert werden, es ist nicht notwendig, die Leerzeichen und Zeilenumbrüche zu entfernen.'''
  +
 
=== Beispiele für einfache Formatierungen ===
 
Kompletter Text gleichbleibend formatiert (grün):
 
Kompletter Text gleichbleibend formatiert (grün):
 
<syntaxhighlight lang="JSON">
 
<syntaxhighlight lang="JSON">
Zeile 184: Zeile 192:
 
Für Boolean-Werte (z.B. "bold" oder "underlined") ist der Standardwert ''false''.
 
Für Boolean-Werte (z.B. "bold" oder "underlined") ist der Standardwert ''false''.
   
== Beispiele ==
+
=== komplexere Beispiele ===
Verschachtelte JSON-Texte können schnell unübersichtlich werden und man übersieht fehlende Klammern und Kommata. Daher ist es sinnvoll, ab einer gewissen Komplexität den JSON-Text strukturiert aufzubauen. '''Der JSON-Text kann auch in dieser strukturierten Form in einen Befehlsblock kopiert werden, es ist nicht notwendig, die Leerzeichen und Zeilenumbrüche zu entfernen.'''
 
 
<syntaxhighlight lang="JSON">
 
<syntaxhighlight lang="JSON">
 
/tellraw @p
 
/tellraw @p
Zeile 314: Zeile 321:
 
]
 
]
 
</syntaxhighlight>
 
</syntaxhighlight>
  +
  +
Hoverevent mit formatiertem Text:
  +
<syntaxhighlight lang="JSON">
  +
/tellraw @p
  +
{
  +
"text":"Hover mich",
  +
"hoverEvent":
  +
{
  +
"action":"show_text",
  +
"contents":
  +
[
  +
{"text":"weiß ","color":"white"},
  +
{"text":"gold ","color":"gold"},
  +
"weiß\nneue Zeile"
  +
]
  +
}
  +
}
  +
</syntaxhighlight>
  +
  +
Hoverevent mit einfachem Gegenstand:
  +
<syntaxhighlight lang="JSON">
  +
/tellraw @p
  +
{
  +
"text":"Hover mich",
  +
"hoverEvent":
  +
{
  +
"action":"show_item",
  +
"contents": "minecraft:pumpkin"
  +
}
  +
}
  +
</syntaxhighlight>
  +
  +
Hoverevent mit einem Gegenstand mit mehr Eigenschaften:
  +
<syntaxhighlight lang="JSON">
  +
/tellraw @p
  +
{
  +
"text":"Hover mich",
  +
"hoverEvent":
  +
{
  +
"action":"show_item",
  +
"contents":
  +
{
  +
"id": "minecraft:iron_pickaxe",
  +
"tag": "{Enchantments:[{id:\"minecraft:sharpness\",lvl:1}], display:{Lore:[\"\\\"Zauberaxt\\\"\"]}}"
  +
}
  +
}
  +
}
  +
</syntaxhighlight>
  +
  +
Hoverevent mit einem Objekt (wobei angenommen wird, dass <code>4e6ee278-0806-4d9b-b0b2-1af538924b2c</code> die UUID eines Huhns ist):
  +
<syntaxhighlight lang="JSON">
  +
/tellraw @p
  +
{
  +
"text":"Hover mich",
  +
"hoverEvent":
  +
{
  +
"action":"show_entity",
  +
"contents":
  +
{
  +
id: "4e6ee278-0806-4d9b-b0b2-1af538924b2c",
  +
type:"minecraft:chicken",
  +
name: "DAS Huhn"
  +
}
  +
}
  +
}
  +
</syntaxhighlight>
  +
Tipp: Wird ein Objekt mit dem {{Befehl|/summon}} erschaffen, so kann die UUID des Objekts durch {{Taste|Umschalt}}-Klick auf den Objekt-Namen in der Ausgabe des Befehls in die Chat-Eingabe eingefügt werden, während man den Befehl eintippt. Das funktioniert auch mit der Ausgabe einiger anderer Befehle, zum Beispiel <code>/say @e[type=minecraft:cow,distance=..10]</code>.
  +
   
 
== Geschichte ==
 
== Geschichte ==

Aktuelle Version vom 12. Oktober 2021, 15:04 Uhr

Diese Seite ist unvollständig.
Du kannst helfen, indem Du sie ergänzt. Fehlende Inhalte: Alle Beispiel-Befehle auf Funktion testen

Rückfrage bei clickEvent-action open_url

Formatierte Textausgaben, hier über die Konsole

Ein JSON-Text ist ein Text im JSON-Format. Von Minecraft wird dieses Format verwendet, um Schrift zu formatieren oder ihr besondere Eigenschaften zu geben, z.B. eine Aktion auszuführen, wenn auf die Schrift geklickt wird.

Verwendung[]

Im Spiel gibt es mehrere Möglichkeiten für die Verwendung solcher Texte:

Eigenschaften[]

Ein JSON-Text kann folgende Eigenschaften haben:

  • Formatierungen: einzelne Textteile können unterschiedliche Farben und Schriftformatierungen haben wie z.B. Fettschrift.
  • Maus-Sensitivität: einzelne Textteile können einen Tooltip-Text anzeigen, wenn man mit der Maus darüber fährt (mit hoverEvent).
  • Maus-Klick-Sensitivität: einzelne Textteile können angeklickt werden (mit clickEvent) und...
    • ... einen Befehl vorschlagen, indem er in die Chat-Konsole des Empfängers gestellt wird,
    • ... einen Befehl ausführen in der Chat-Konsole des Empfängers,
    • ... eine Web-Adresse aufrufen (mit Rückfrage, wenn in den Einstellungen aktiviert),
    • ... eine Buchseite aufrufen.
  • Shift-Maus-Klick-Sensitivität: einzelne Textteile können mit ⇧ Umschalttaste angeklickt werden und schreiben dann einen Text in den Chat (mit insertion).
  • Systemtexte: aus der Sprachendatei können beliebige Texte übernommen werden (mit translate).
  • Spieler und Kreaturen: in den Text können beliebige Zielauswahlen integriert werden (mit selector).
  • NBT-Daten: in den Text können NBT-Daten integriert werden (mit nbt).
  • Anzeigetafel: in den Text können Punktestände der Anzeigetafel integriert werden (mit score).

Wenn der Text einen Befehl enthält, wird dieser immer in die Chat-Konsole des Empfängers eingetragen und dort ausgeführt. Das führt zu folgenden Effekten:

  • Wenn der Empfänger keine Berechtigung zur Ausführung des Befehls hat, erhält er die entsprechende Fehlermeldung. Der Befehl /trigger, für dessen Ausführung jeder Spieler berechtigt ist, ist speziell für die Anwendung in JSON-Texten gedacht, um Punkte für Anzeigetafel-Ziele zu erhöhen.
  • Wenn der Befehl länger als die Chat-Konsole ist (256 Zeichen), wird er abgeschnitten, was meist zu einer Fehlermeldung führt.
  • Wenn der Befehl die Zielauswahl @p enthält, wird dort immer der Empfänger des JSON-Textes eingesetzt, denn er ist selbst die Befehlsquelle und gleichzeitig der Befehlsquelle am nächsten.
  • Der Befehl ist nach der Ausführung - ob mit oder ohne Fehlermeldung - in der Chat-Historie des Empfängers zu sehen.

Der Text kann Unicode 7-Zeichen enthalten im Format \u1234. Beispiel: /tellraw @p {"text":"\u00A9 Copyright"} ergibt "© Copyright". Unter Windows erhält man den Unicode eines Zeichens, indem man bei "Start" das Wort "Zeichentabelle" eingibt und auswählt. Klickt man in dieser Tabelle ein Zeichen an, steht unten links der Unicode, z.B. "U+00A9 Copyright-Zeichen".

Escaping[]

Bei verschachtelten Parametern mit einem Text innerhalb eines Textes, ergibt sich ein Anführungszeichenproblem: Der Beginn des inneren Textes wird fälschlich als das Ende des äußeren Textes interpretiert. Um diesem Problem zu entkommen (engl. escape), markiert man die inneren Anführungszeichen mit einem besonderen Zeichen, dem Rückwärtsschrägstrich \ (Backslash). Ganz allgemein wird vor jedes Zeichen, das der Interpretation durch das Programm entkommen soll, ein Backslash geschrieben. Das wird Escaping genannt. Das Escaping wird notwendig, wenn man geschachtelte JSON-Texte konstruiert, z.B. bei einem Schild, das auf dem Befehlsblock stehen soll, der es erzeugt. Zuerst der normale JSON-Schildtext:

/setblock ~ ~1 ~ minecraft:oak_sign{Text1:"{\"text\":\"Zeile 1 im Schild\"}"}

Ein escapedter Text mit Hochkommas '. Mithilfe dieser kann man eine Stufe tiefer bei dem Escaping beginnen:

/summon minecraft:zombie ~ ~ ~ {CustomNameVisible:true,CustomName:'{"text":"Alucard"}'} 

Jetzt ein JSON-Schildtext als Liste mit verschiedenen Formatierungen:

/setblock ~ ~1 ~ minecraft:oak_sign{Text1:"[{\"text\":\"Blau \",\"color\":\"blue\"},{\"text\":\" Rot\",\"color\":\"red\"}]"}

Benötigt man eine weitere Verschachtelung, muss man sowohl das Anführungszeichen als auch den davorstehenden Backslash escapen. Aus den zwei Zeichen \" werden dann vier: \\\".

/setblock ~ ~1 ~ minecraft:oak_sign{
  Text1:
        "{
           \"text\":\"Hier klicken\",
           \"clickEvent\":
           {
             \"action\":\"run_command\",
             \"value\":\"/execute as @p run tellraw @s 
                         {
                           \\\"text\\\":\\\"Du hast mich angeklickt!\\\"
                         }
                       \"
           }
        }"
}

In der nächsten Verschachtelungstiefe muss man wieder vor jedes Zeichen einen Backslash schreiben. Aus den vier Zeichen \\\" werden dann acht: \\\\\\\". Hier erzeugt das Schild beim Anklicken ein zweites Schild mit rotem Text genau da, wo der Spieler steht.

/setblock ~ ~1 ~ minecraft:oak_sign{
  Text1:
        "{
           \"text\":\"Hier klicken\",
           \"clickEvent\":
           {
             \"action\":\"run_command\",
             \"value\":\"/execute at @p run setblock ~ ~ ~ minecraft:oak_sign{
                           Text1:
                                 \\\"{
                                       \\\\\\\"text\\\\\\\":\\\\\\\"Roter Text\\\\\\\",
                                       \\\\\\\"color\\\\\\\":\\\\\\\"red\\\\\\\"
                                 }\\\"
                         }
                       \"
           }
        }"
}

Elemente eines formatierten JSON-Textes[]

  • : Ein Text kann aus mehreren Textteile bestehen, die in einer Liste zusammengefasst werden. Jeder Textteil kann individuell formatiert werden. Wenn die Formatierung für den gesamten Text gleich ist, ist nur ein einziger Textteil nötig. Dann können die Listenklammern weggelassen werden. Falls man eine Liste verwendet, vererbt der erste Textteil seine Formatierung an die weiteren. Wenn man das vermeiden möchte, nimmt man als ersten Textteil einen Leertext. Ein einfacher Freitext kann auch einfach als JSON-Zeichenkette angegeben werden, zum Beispiel "Test" oder ein Leertext als "".
    • : Ein Textteil.
      • text: Der Textteil ist ein Freitext. Eine Zielauswahl in diesem Text hat keine Wirkung und wird wie ein Text behandelt. Es werden jedoch bestimmte Zeichenfolgen interpretiert: \n erzeugt einen Zeilenumbruch und die Verwendung von Formatierungscodes ist möglich, indem das Paragrafenzeichen als Unicode-Zeichen \u00a7 eingegeben wird.
      • selector: Der Textteil ist eine Zielauswahl. Als Text werden die im Augenblick der Texterzeugung durch die Zielauswahl bestimmten Spielernamen angezeigt. Sollte es keinen passenden Spieler geben, wird dieser Eintrag zu einem Leertext. Ein "selector"-Textteil ermöglicht die Integration von Spielernamen im Text, bestimmt aber nicht, wer den Text erhält. Das wird außerhalb des Textes festgelegt.
      • keybind: Der Textteil ist eine Variable, die für eine Aktion steht. Die für diese Aktion im Steuerungsmenü eingestellte Taste wird in den Text eingefügt. Beispielsweise wird für den Wert key.inventory standardmäßig E eingefügt. Die einzelnen Variablen sind in der Datei options.txt zu finden. Dabei ist das Präfix key_ der Aktionsnamen wegzulassen (zum Beispiel key.use).
        Es können auch die Tastennamen wie key.mouse.right verwendet werden, dann wird aber immer die gleiche Taste angezeigt, unabhängig davon, was im Steuerungsmenü eingestellt ist.
      • translate: Der Textteil ist eine Variable aus einer Minecraft-Sprachdatei. Die Standard-Sprachdateien stehen im Ordner .minecraft/assets. Die Variablen sind in allen Sprachdateien identisch. Bei der Verwendung von "translate" wird der in der aktuell eingestellten Sprache hinter der Variable stehende Text zum Textteil. "translate" wird von Minecraft selbst z.B. im Zusammenhang mit dem "hoverEvent" "show_item" verwendet, d.h. wenn man mit der Maus über einen Gegenstand im Inventar fährt, wird der Name in der aktuell eingestellten Sprache angezeigt. Man kann auch einen Freitext verwenden, der, wenn er nicht in den Sprachdateien vorhanden ist, als Freitext dargestellt wird. Das könnte man genauso mit der "text"-Eigenschaft lösen, aber bei "translate" kann man zusätzlich die "with"-Einfügungen verwenden, die man auch formatieren kann.
      • with (nur in Verbindung mit "translate"): Liste von Ersetzungstexten. Einige "translate"-Texte enthalten (immer in allen Sprachen) den Platzhalter %s. Beispiel: der Text zum Parameter "multiplayer.player.joined" lautet in Deutsch: "%s hat das Spiel betreten". Der Platzhalter wird in diesem Fall normalerweise durch den Spielernamen ersetzt.
        In einem Text kann man alle Platzhalter beliebig ersetzen. Die Anzahl der Ersetzungen in der "with"-Liste muss jedoch immer mit der Anzahl der %s-Platzhalter im Text übereinstimmen. Interessanterweise ist "with" keine Unter-Eigenschaft von "translate", sondern parallel zu dieser einzutragen. Die Einträge in "with" sind auch im JSON-Format, wodurch z.B. "with":[{"selector":"@p","color":"green"}] den nächsten Spieler in grüner Schrift einfügen würde.
        Statt dem Platzhalter %s kann in den Sprachdateien auch %n$s verwendet werden, um den n-ten Ersetzungstext einzufügen. Dies ist nützlich, wenn die Ersetzungstexte in verschiedenen Sprachen in unterschiedlicher Reihenfolge stehen.
      • nbt: NBT-Pfad zu NBT-Daten: Zusätzlich zum NBT-Pfad muss genau einer der Parameter block, entity oder storage angegeben werden, um festzulegen, wo die anzuzeigenden NBT-Daten herkommen.
      • block (nur in Verbindung mit "nbt"): Die Koordinaten eines Blocks, dessen NBT-Daten angezeigt werden sollen, im Format x y z.
      • entity (nur in Verbindung mit "nbt"): Zielauswahl für ein Objekt, dessen NBT-Daten angezeigt werden sollen.
      • storage (nur in Verbindung mit "nbt"): Wertspeicher, dessen NBT-Daten angezeigt werden sollen.
      • interpret (nur in Verbindung mit "nbt"): Bei true werden die NBT-Daten als Textteil interpretiert und können somit wiederum JSON-Text-Formatierungen enthalten.
      • separator (in Verbindung mit "selector" oder "nbt"): Ersetzt das Komma in Auflistungen durch den hier angegebenen Text.
      • score: Der Textteil ist ein Anzeigetafel-Punktestand. Dabei wird im Augenblick der Texterzeugung der momentane Punktestand im Text gespeichert. Dieser Wert wird dann auch weiterhin angezeigt, wenn sich der Punktestand ändert. "score" funktioniert nicht in "hoverEvents".
        • objective: der Name eines Anzeigetafel-Ziels. Der Name wird nicht angezeigt, sondern dient ebenfalls zur Identifizierung des richtigen Punktestandes.
        • name: der Name eines Spielers, eines Anzeigetafel-Zählers (das ist ein Spielername, der mit # beginnt) oder einer Zielauswahl. Der Name wird nicht angezeigt, sondern dient zur Identifizierung des richtigen Punktestandes. Wenn der Spieler (oder Zähler) mit dem Namen noch keinen Punktestand hat (auch nicht 0 Punkte), wird der Textteil zu einem Leertext. Daher empfiehlt es sich, allen infrage kommenden Spielern initial 0 Punkte zu geben, damit zumindest dies angezeigt wird. Wenn eine Zielauswahl verwendet wird, die nicht genau ein Ergebnis liefert (also keins oder mehr als eines z.B. bei "@a"), wird der tellraw-Befehl nicht erfolgreich durchgeführt. Die Fehlermeldung lautet dann: "Dieses Objekt kann nicht gefunden werden".
        • value (optional): speichert den anzuzeigenden Wert: Nach der Ausführung des Befehls ermittelt Minecraft den Punktestand des Spielers bzw. Objektes anhand der "name"- und "objective"-Eigenschaften und fügt eine "value"-Eigenschaft hinzu, die den Punktestand angibt.
          Sollte diese Eigenschaft bereits vorhanden sein, wird sie nicht ersetzt, wodurch der Punktestand immer auf dem einmal ermittelten Stand bleibt, auch wenn man den JSON-Text mehrfach zu unterschiedlichen Zeitpunkten liest. Gibt man diese Eigenschaft jedoch beim Ausführen eines Befehls mit an, ignoriert Minecraft sie und fügt den tatsächlichen Punktestand ein.
      • font: der interne Name der für den Textteil zu verwendenden Schriftart: Standardmäßig wird minecraft:default verwendet. Die Schriftart minecraft:uniform ist die kleinere, für die Option "Unicode erzwingen" (im Sprachmenü) verwendete Schriftart. Ist diese Option eingeschaltet, ist das gleichbedeutend mit minecraft:default. Außerdem kann die Schriftart minecraft:alt für Beschriftungen im Standard Galactic Alphabet verwendet werden, dabei werden jedoch nur Buchstaben (und Leerzeichen) unterstützt, andere Zeichen erscheinen als Rechteck.
      • color: einer der folgenden 16 Farbnamen zum Einfärben des Textteils: "white", "black", "yellow", "gold", "aqua", "dark_aqua", "blue", "dark_blue", "light_purple", "dark_purple", "red", "dark_red", "green", "dark_green", "gray", "dark_gray".
        Man kann als Farbe auch einige Textformatierungen wie "bold" angeben, die auch zu fett gedruckter, weißer Schrift führt. Interessanterweise funktioniert dies bei underlined nicht. Wegen der Übersichtlichkeit ist es jedoch ratsam, stets die dafür vorgesehene "bold"-Eigenschaft zu verwenden.
      • bold: Bei true wird der Textteil fett formatiert.
      • italic: Bei true wird der Textteil kursiv formatiert.
      • underlined: Bei true wird der Textteil unterstrichen formatiert.
      • strikethrough: Bei true wird der Textteil durchgestrichen formatiert.
      • obfuscated: Bei true wird der Textteil verschleiert formatiert, d.h. er wird unlesbar, weil sich die Buchstaben ständig ändern.
      • hoverEvent: zusätzlicher Text, der beim Darüberfahren mit der Maus über diesen Textteil anzeigt wird: Für Schilder und den Befehl /title ist das Darüberfahren nicht möglich und bleibt dort funktionslos.
        • action: eine der Aktionen "show_text", "show_item" oder "show_entity":
          "show_text" zeigt einen JSON-Text an.
        • contents: der anzuzeigende JSON-Text
          "show_item" zeigt die Beschreibung eines Gegenstands an (wie wenn man im Inventar mit der Maus über den Gegenstand fährt).
        • contents: ID-Name des anzuzeigenden Gegenstands
        • contents: alternativ Gegenstandsdaten des anzuzeigenden Gegenstands, dabei sind die einzelnen Einträge SNBT-Zeichenketten
          "show_entity" zeigt die Beschreibung eines Objektes an, wenn die erweiterten Schnellinfos mit F3 + H aktiviert wurden (sonst wird nichts angezeigt).
        • contents
          • id: UUID des Objektes im hexadezimalen Format mit Bindestrichen
          • type: ID-Name des Objektes
          • name (optional): Hier kann für den anzuzeigenden Namen des Objektes ein beliebiger Freitext eingegeben werden; das Objekt hat muss nicht tatsächlich diesen Namen haben.
      • clickEvent: Lässt den Textteil auf das Anklicken mit der Maus reagieren. Für den Befehl /title ist Anklicken nicht möglich und bleibt dort funktionslos. Das Objekt hat folgende Eigenschaften:
        • action: eine der Aktionen "run_command", "suggest_command", "open_url", "change_page" und "copy_to_clipboard":
          • Bei "suggest_command" wird der Freitext (vorzugsweise ein beliebiger Minecraft-Befehl, aber es muss kein Befehl sein) beim Anklicken des JSON-Textes ins Chat-Fenster des Empfängers gestellt und nicht ausgeführt. Der Empfänger kann dann entscheiden, ob er den Befehl (wenn es einer ist) ausführt. "suggest_command" funktioniert nur für den Befehl /tellraw, nicht für Bücher oder Schilder.
          • Bei "run_command" wird der Freitext als Befehl (auch /tellraw) im Chat-Fenster des Empfängers ausgeführt. Der Schrägstrich muss eingegeben und die 256-Zeichen-Grenze beachtet werden. Außerdem muss der Spieler das Recht haben, den Befehl auszuführen.
          • Bei "open_url" wird der Freitext als Webadresse interpretiert. Beim Anklicken öffnet sich ein Rückfrage-Fenster, das die Webadresse anzeigt und ermöglicht, sie automatisch im Standard-Browser zu öffnen oder sie in die Zwischenablage des Betriebssystems zu kopieren. "open_url" funktioniert nur für den Befehl /tellraw und für Bücher, nicht für Schilder.
          • Bei "change_page" wird der Freitext als Seitenzahl interpretiert. Diese Aktion ist für Bücher gedacht und funktioniert nur bei ihnen. Beim Anklicken des so markierten Textes wird auf die angegebene Seite gewechselt. So lässt sich ein Inhaltsverzeichnis realisieren.
        • value: der Freitext für die Aktion (Befehl, URL oder Seitenzahl)
      • insertion: ein Freitext, der in der Chatzeile angehängt wird (soweit Platz ist, maximal 256 Zeichen), wenn man mit ⇧ Umschalttaste auf den Textteil klickt. "insertion" wird im Spiel verwendet, wenn man sich z.B. mit dem Befehl /say @e alle Objekte anzeigen lässt und dann mit ⇧ Umschalttaste auf eines in der Liste klickt. Dann wird die Objekt-UUID in der Chatzeile angehängt. "insertion" funktioniert nur beim Befehl /tellraw.
      • extra: eine Liste mit weiteren JSON-Textteilen, die die Formatierungen des zugehörigen Textteils erben.

Beispiele[]

Verschachtelte JSON-Texte können schnell unübersichtlich werden und man übersieht fehlende Klammern und Kommata. Daher ist es sinnvoll, ab einer gewissen Komplexität den JSON-Text strukturiert aufzubauen. Der JSON-Text kann auch in dieser strukturierten Form in einen Befehlsblock kopiert werden, es ist nicht notwendig, die Leerzeichen und Zeilenumbrüche zu entfernen.

Beispiele für einfache Formatierungen[]

Kompletter Text gleichbleibend formatiert (grün):

 /tellraw @p 
 {"text":"Dieser Text ist grün", "color":"green"}

Einzelne Textteile unterschiedlich formatiert in einer Liste:

 /tellraw @p 
 [
   {"text":"Nur ein "},
   {"text":"Wort", "color":"green"},
   {"text":" ist grün"}
 ]

Das erste Listenelement vererbt seine Formatierung, die weiteren nicht:

 /tellraw @p 
 [
   {"text":"Fettgrün ", "color":"green", "bold":true},
   {"text":"überall ", "italic":true},
   {"text":"bis hier", "underlined":true}
 ]

Das erste Listenelement wird leer gelassen, wenn die Vererbung stört:

 /tellraw @p 
 [
   "",
   {"text":"Fettgrün ", "color":"green", "bold":true},
   {"text":"hier nicht ", "italic":true},
   {"text":"hier auch nicht", "underlined":true}
 ]

Vererbung der gelben Farbe mit "extra"-Eigenschaft:

 /tellraw @p 
 [
   "",
   {"text":"Grün ", "color":"green"},
   {"text":"Gelbkursiv", "color":"yellow",
    "extra":
    [
      {"text":" auch im"},
      {"text":" extra", "italic":true},
      {"text":"-Teil"}
    ]
   },
   {"text":" Standard-Weiß"}
 ]

Es gibt keine Schlüsselwörter, um Farbe oder Formatierung zurückzusetzen. Die Verwendung von Wörtern wie "reset", "null" oder "none" bewirken nichts.

Für Boolean-Werte (z.B. "bold" oder "underlined") ist der Standardwert false.

komplexere Beispiele[]

/tellraw @p 
[
	{"text":""},
	{"text":"Wir begrüßen ", "color":"yellow", "bold":true},
	{"selector":"@a[distance=..10]",  "color":"green",  "underlined":true}
]

Die obige Nachricht hat drei Textteile: Der erste ist leer, damit keine Formatierung vererbt wird. Der zweite ist gelb und fett, der dritte ist grün und unterstrichen. Der selector-Textteil gibt alle Spielernamen im Umkreis von 10 Metern um die Befehlsquelle aus. Wenn das die Spieler oyo123 und yoyo sind, lautet die Nachricht: "Wir begrüßen oyo123 and yoyo". Das "and" wird automatisch generiert.

/tellraw @p 
[
	{ "text":"Hier gibt's "},
	{
		"text":">MC<, ",
		"hoverEvent":
		{
			"action":"show_text",
			"contents":"die Minecraft-Webseite"
		},
		"clickEvent":
		{
			"action":"open_url",
			"value":"https://minecraft.net"
		}
	},
	{ "text":"hier " },
	{
		"text":">Diamanten< ",
		"hoverEvent":
		{
			"action":"show_text",
			"contents":
			[
				"",
				{
					"translate":"advancements.story.mine_diamond.title",
					"color":"green"
				},
				{ "text":"\n" },
				{ "translate":"advancements.story.mine_diamond.description" }
			]
		},
		"clickEvent":
		{
			"action":"suggest_command",
			"value":"/teleport @p 100 15 -50"
		}
	},
	{ "text":"und das ist unglaublich: " },
	{
		"translate":"chat.type.advancement.goal",
		"with":
		[
			"Ein >Schneegolem<",
			"Diamantenkönig"
		],
		"hoverEvent":
		{
			"action":"show_entity",
			"contents":"{\"name\":\"Eisverkäufer\", \"type\":\"minecraft:snowball\", \"id\":\"Personalausweis zu Hause vergessen\"}"
		}
	},
	{ "text":" und betrachtete seinen neuen Fortschritt durch das Drücken der Taste \"" },
	{
		"keybind":"key.advancements",
		"bold":true
	},
	{ "text":"\". Dabei verlor er einen " },
	{
		"text":">???<",
		"hoverEvent":
		{
			"action":"show_item",
			"contents":"{id:\"minecraft:pumpkin\", Count:1b}"
		},
		"clickEvent":
		{
			"action":"run_command",
			"value":"/give @p minecraft:pumpkin 1"
		}
	},
	{
		"text":" und sagte (hier Shift-Klick)",
		"insertion":"Alles prima!"
	}
]

Die obige Nachricht lautet:Hier gibt's >MC<, hier >Diamanten< und das ist unglaublich: Ein >Schneegolem< hat das Ziel Diamantenkönig erreicht und betrachtete seinen neuen Fortschritt durch das Drücken der Taste "L". Dabei verlor er einen >???< und sagte (hier Shift-Klick). Die Nachricht hat neun Textteile:

  • Der 1., 3., 5., 7. und 9. Textteil ist unformatiert und reagiert nicht auf die Maus. Nur der 8. Textteil ist formatiert, die anderen Texteile sind ebenfalls unformatiert, reagieren aber auf die Maus:
  • Wenn man mit der Maus über >MC< fährt, wird der Tooltip-Text: "die Minecraft-Webseite" angezeigt. Wenn man >MC< anklickt, wird das Rückfragenfenster zum Öffnen der Webseite "http://minecraft.net" angezeigt.
  • Wenn man mit der Maus über >Diamanten< fährt, wird der Tooltip-Text: "Diamanten! Beschaffe Diamanten" angezeigt. Wenn man >Diamanten< anklickt, wird der Teleportations-Befehl "/teleport @p 100 15 -50" in die Chat-Konsole kopiert, aber nicht ausgeführt.
  • Der 6. Textteil übersetzt eine Sprachvariable. Wenn die Sprache "Deutsch" eingestellt ist, lautet der Textteil: "%s hat den Erfolg %s erzielt". Durch die with-Eigenschaft werden die beiden %s-Platzhalter durch "ein >Schneegolem<" und "Diamantenkönig" ersetzt. Wenn man F3 + H gedrückt hat und mit der Maus über den Text fährt, erscheinen in einem blauen Rahmen die drei Zeilen: "Eisverkäufer", "Type: snowball" und "Personalausweis zu Hause vergessen". Es müssen Anführungszeichen mit Escaping verwendet werden, weil sie innerhalb der Anführungszeichen des "value"-Textes stehen.
  • Als Taste ist die zum Öffnen des Fortschrittsfensters festgelegte Taste in Fettschrift angegeben. Standardmäßig ist dies die Taste L.
  • Wenn man mit der Maus über >???< fährt, wird der Tooltip-Text: "Kürbis" angezeigt. Wenn man >???< anklickt, wird der Befehl "/give @p pumpkin" in die Chat-Konsole kopiert und ausgeführt. Man erhält dann einen Kürbis in sein Inventar.
/tellraw @p 
[
	{ "text":"Ergebnis: Es wurden " },
	{ "score":
		{
			"name":"#Gesamt",
			"objective":"SpinneKill"
		}
	},
	{ "text":" Spinnen getötet" }
]

Wenn in der Anzeigetafel ein Ziel "SpinneKill" definiert wurde und der Anzeigetafel-Zähler "#Gesamt" bei diesem Ziel einen Punktestand von 35 hat, lautet die Nachricht: Ergebnis: Es wurden 35 Spinnen getötet.

Benutzung der "nbt"-Eigenschaft:

/tellraw @p 
[
	{ "text":"Name des nächsten Rüstungsständers: " },
	{
		"nbt":"CustomName",
		"entity":"@e[type=minecraft:armor_stand,sort=random,limit=1]"
	},
	{ "text":"\n\nAnzahl der Gegenstände im ersten Slot des Blocks an den Koordinaten 0, 62, 0: " },
	{
		"nbt":"Items[{Slot:0b}].Count",
		"block":"0 62 0"
	}
]

Hoverevent mit formatiertem Text:

/tellraw @p
{
	"text":"Hover mich",
	"hoverEvent":
		{
			"action":"show_text",
			"contents":
				[
					{"text":"weiß ","color":"white"},
					{"text":"gold ","color":"gold"},
					"weiß\nneue Zeile"
				]
		}
}

Hoverevent mit einfachem Gegenstand:

/tellraw @p
{
	"text":"Hover mich",
	"hoverEvent":
		{
			"action":"show_item",
			"contents": "minecraft:pumpkin"
		}
}

Hoverevent mit einem Gegenstand mit mehr Eigenschaften:

/tellraw @p
{
	"text":"Hover mich",
	"hoverEvent":
		{
			"action":"show_item",
			"contents":
				{
					"id": "minecraft:iron_pickaxe",
					"tag": "{Enchantments:[{id:\"minecraft:sharpness\",lvl:1}], display:{Lore:[\"\\\"Zauberaxt\\\"\"]}}"
				}
		}
}

Hoverevent mit einem Objekt (wobei angenommen wird, dass 4e6ee278-0806-4d9b-b0b2-1af538924b2c die UUID eines Huhns ist):

/tellraw @p
{
	"text":"Hover mich",
	"hoverEvent":
		{
			"action":"show_entity",
			"contents":
				{
					id: "4e6ee278-0806-4d9b-b0b2-1af538924b2c",
					type:"minecraft:chicken",
					name: "DAS Huhn"
				}
		}
}

Tipp: Wird ein Objekt mit dem Befehl /summon erschaffen, so kann die UUID des Objekts durch Umschalt-Klick auf den Objekt-Namen in der Ausgabe des Befehls in die Chat-Eingabe eingefügt werden, während man den Befehl eintippt. Das funktioniert auch mit der Ausgabe einiger anderer Befehle, zum Beispiel /say @e[type=minecraft:cow,distance=..10].


Geschichte[]

Versionsgeschichte der Java Edition
Vollversion 1.7 (13w37a)
Vollversion 1.8
14w20a
14w25a
Vollversion 1.9 (15w31a)
  • Es wird nur noch das strikte JSON-Format verwendet.
Vollversion 1.12 (17w16a)
  • Neue keybind-Text-Komponente wird hinzugefügt, um sich auf die Tastatureinstellungen der Spieler beziehen zu können.
Vollversion 1.13
18w01a
  • Die Zielauswahl-Eigenschaft name erlaubt JSON-Texte.
  • Die Eigenschaft CustomName (bzw. Name bei Gegenstandsdaten) erfordert einen JSON-Text.
18w05a
18w20a
  • Die beiden Parameter prefix und suffix vom Befehl /team verwenden JSON-Text.
1.13-pre8
Vollversion 1.14
18w43a
  • Die Eigenschaft Lore (bei Gegenstandsdaten) erfordert einen JSON-Text.
  • Neue Chat-Komponenten nbt, block und entity.
19w44a
  • Neue Chat-Komponente interpret.
  • Die Chat-Komponente block verlangt die Koordinaten-Angaben in einem String und nicht in drei separaten Ganzzahlen.
19w08a
  • Das Escaping wird mit einer zusätzlichen Möglichkeit vereinfacht.
  • Alternativ von "{\"text\":\"JSON-Text\"}" kann auch '{"text":"JSON-Text"}' verwendet werden.
Vollversion 1.15
19w39a
  • Neue Chat-Komponente storage für das Anzeigen von NBT-Daten aus dem NBT-Datenspeicher im Chat.
19w41a
  • Neue Klick-Komponente copy_to_clipboard für die Text-Komponente clickEvent.
Vollversion 1.16 (20w17a)
  • Neue Textkomponente font.
  • Neues Argument contents für hoverEvent, es ersetzt value jedoch ist das weiterhin nutzbar.
  • Die color-Komponente kann Hexadezimale RGB-Werte enthalten, in dem man ein # voranstellt. (Beispiel: "color":"#ff0088")
Vollversion 1.17 (21w15a)
  • Neue Chat-Komponente separator für das Ändern von Kommas in Auflistungen.
  • Beispiel: {"selector":"@e[type=minecraft:chicken]","separator":"_"}