Minecraft Wiki
Registrieren
Advertisement
Nutzbarkeit
 Einzelspieler ja
 Mehrspieler ja
 Cheat ja, 2
 Befehlsblock ja

/data verändert oder zeigt die Eigenschaften von Kreaturen und Blöcken an.

Syntax[]

/data remove entity|block|storage <Selektor|Position|Datenspeicher> <Pfad>

/data merge entity|block|storage <Selektor|Position|Datenspeicher> <NBT-Daten>

/data get entity|block|storage <Selektor|Position|Datenspeicher> [<Pfad>] [<Skalierung>]

/data modify entity|block|storage <Selektor|Position|Datenspeicher> <Pfad> <Operation> from entity|block|storage <Selektor|Position|Datenspeicher> <Pfad>

/data modify entity|block|storage <Selektor|Position|Datenspeicher> <Pfad> <Operation> string entity|block|storage <Selektor|Position|Datenspeicher> <Pfad> <Anfang> [<Ende>]

/data modify entity|block|storage <Selektor|Position|Datenspeicher> <Pfad> <Operation> value <NBT-Daten>

Details[]

/data ...
... get
... (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>] [<Skalierung>]
... merge
... (block <Position>|entity <Selektor>|storage <Datenspeicher>) <nbt>
... modify (block <Position>|entity <Selektor>|storage <Datenspeicher>) <Pfad> ...
... append from (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>]
... append value <Wert>
... insert <index> from (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>]
... insert <index> string (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>] <Anfang> [<Ende>]
... insert <index> value <Wert>
... merge from (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>]
... merge string (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>] <Anfang> [<Ende>]
... merge value <Wert>
... prepend from (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>]
... prepend string (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>] <Anfang> [<Ende>]
... prepend value <Wert>
... set from (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>]
... set string (block <Position>|entity <Selektor>|storage <Datenspeicher>) [<Pfad>] <Anfang> [<Ende>]
... set value <Wert>
... remove
... (block <Position>|entity <Selektor>|storage <Datenspeicher>) <Pfad>
  • Objekt ist eine Zielauswahl mit @e, die kein Spieler sein darf und maximal ein Objekt umfassen darf.
  • x y z sind die Koordinaten des Blockes. Für absolute Koordinaten kann man die Koordinaten-Schnelleingabe nutzen. Wird ein "~" vor eine Koordinate geschrieben, ist der Koordinatenwert nicht absolut, sondern relativ zur Position der Befehlsquelle (Spieler oder Befehlsblock), wobei deren Standort ~0 ~0 ~0 mit ~ ~ ~ abgekürzt werden kann. Für die Höhe y sind nur Werte zwischen 0 und 255 möglich.
  • Datenspeicher ist ein Name des Speichers für NBT-Daten. Er ist unabhängig von der Dimension in der man sich befindet immer zugreifbar.
  • NBT-Daten sind die Eigenschaften des Objektes, Blockes oder Datenspeichers, die geändert werden sollen. Eine ausführliche Beschreibung steht hier.
  • Pfad gibt die NBT-Eigenschaft an. Siehe Abschnitt Beispiele für die genaue Pfad Angabe
  • Skalierung sagt aus, um welchen Faktor der NBT-Wert multipliziert werden soll.
  • Operation bestimmt die Art der Änderung:
set Ersetzt den Wert.
merge Verändert die Daten von Blöcken oder Objekten.
prepend Nur für Listen: Fügt die Daten vor allen anderen Einträgen der Liste hinzu, alte Einträge werden nach hinten verschoben.
append Nur für Listen: Fügt die Daten nach allen anderen Einträgen der Liste hinzu, alte Einträge bleiben unverändert.
insert <Index> Nur für Listen: Fügt die Daten an dieser Position der Liste hinzu, alte Einträge bis zu dieser Position bleiben unverändert, alte Einträge ab dieser Position werden nach hinten verschoben.
  • Anfang bestimmt den Index ab wo die Zeichenkette beginnen soll. Der Index darf auch negativ sein.
  • Ende bestimmt den Index wo die Zeichenkette enden soll, wird dieser Wert weggelassen, wird das Ende als das Ende des Datenwerts angenommen. Der Index darf auch negativ sein.

Zur Eingabe eines Befehls siehe Befehl#Eingabe.

Eigenschaften[]

Spielerdaten können damit nur ausgelesen werden, nicht aber verändert werden. Im Gegensatz zu dem Befehl /setblock wird bei /data block der Block nicht neu erzeugt. Daher eignet sich /data für das Abschließen oder Entsperren von gefüllten Behältern (z.B. einer Truhe). Er kann alle Eigenschaften von Blockobjekten ändern. Da die Endertruhe stets den Inhalt für den Spieler zeigt, der sie öffnet, kann diese nicht abgeschlossen werden. Mit dem Befehl /data get block x y z bei einem Block mit NBT-Daten wird die komplette Datenstruktur des Blockes im JSON-Format ausgegeben.

Datenspeicher[]

Die Datenspeicherung von NBT-Daten ist eine effiziente Möglichkeit für Befehle, auf NBT-Daten zuzugreifen oder sie zu speichern, ohne dass ein Overhead für Blockobjekte oder Objekte entsteht, die aus den NBT-Daten lesen oder in sie schreiben.

Jeder Datenspeicher ist ein Allzweck-Schlüsselwertspeicher, der durch einen Ressourcenort identifiziert wird, um unbeabsichtigte Konflikte zu vermeiden.

/data get und /data modify können aus dem Speicher lesen, während /data merge, /data modify, /data remove und /execute store in den Speicher schreiben können.

Der Datenspeicher ist auch mit JSON-Text zugänglich.

Beispiele[]

/data merge entity @e[distance=..15,type=slime,limit=1] {Size:10}

vergrößert einen Schleim im Umkreis von 15 Blöcken auf die Größe 10.

/execute as @e[distance=..5,type=pig,nbt=!{NoAI:true}] run data merge entity @s {NoAI:true}

deaktiviert die KI aller Schweine im Umkreis von 5 Blöcken, wenn sie eine KI besitzen.

/data get entity @e[type=armor_stand,limit=1]

Liefert eine Liste aller NBT-Daten, die man beim nächstgelegenen Rüstungsständer ändern kann.

/data merge block 45 72 -10 {Lock:"Eisenbarts Goldzahn"}

verschließt den Container an Position 45/72/-10, der danach nur noch geöffnet werden kann, wenn der Spieler einen Gegenstand in der Hand hält, der den Namen "Eisenbarts Goldzahn" trägt.

/data merge block 45 72 -10 {Lock:""}

entsperrt den Behälter an Position 45/72/-10.

/data remove entity @e[type=slime,distance=..15,limit=1] Size

entfernt die Größeneigenschaft des nächstgelegenen Schleims, somit wird er auf die kleinste Größe schrumpfen.

/data get entity @s DataVersion 100

zeigt die aktuelle Versions-ID mit dem Faktor 100 multipliziert an.

/execute as @a store result score @s Invent run data get entity @s Inventory[{id:"minecraft:carrot"}].Count

Mit diesem Befehl lässt sich die Anzahl eines Gegenstandes im Inventar von Spielern auf einen Punktestand von einem Ziel übertragen. Der Punktestand kann dann weiter verarbeitet werden, um z.B Bedingungen zu prüfen.

/execute as @a store result score @s Effekt run data get entity @s ActiveEffects[{Id:25}].Amplifier

Mit diesem Befehl lässt sich die Stärke eines Effektes von Spielern auf einen Punktestand von einem Ziel übertragen.

/execute as @e[type=villager] run data modify entity @s VillagerData.profession set from entity @e[type=villager,limit=1,nbt={VillagerData:{profession:"minecraft:nitwit"}}] VillagerData.profession

Mit diesem Befehl werden alle Dorfbewohner zu Nichtsnutzen, wenn ein Nichtsnutz vorhanden ist.

/data merge storage wiki:neue_etiketten {NeueEtiketten:["erstesEtikett","zweitesEtikett"]}
/data modify entity @e[limit=1,sort=nearest,type=!player] Tags append from storage wiki:neue_etiketten NeueEtiketten[]

Zuerst wird ein Datenspeicher "wiki:neue_etiketten" erstellt, der zwei Etiketten/Tags beinhaltet. Danach werden einem Nicht-Spieler-Objekt/Entity durch den Parameter "append" gleich mehrere Etiketten auf einmal hinzugefügt, ohne die eigenen Etiketten zu überschreiben.

/execute store result storage beispiel:ruestung_farbe farbe int 1 run scoreboard players get farbe farbmischung
/execute as @e[tag=xyz] run data modify entity @s ArmorItems[2].tag.display.color set from storage beispiel:ruestung_farbe farbe

Mit diesen zwei Befehlen lässt sich die Farbe einer Lederrüstung ändern, jedoch funktioniert dies nur bei Kreaturen und nicht am Spieler, da Spielerdaten im allgemeinen nicht über /data geändert werden können.
Dies lässt sich nur über einen speziellen Trick mittels einer Shulker-Kiste und /loot umgehen.
Für viele Beispiele mit NBT-Daten siehe: Anleitungen/Befehle mit NBT

Geschichte[]

Versionsgeschichte der Java Edition
Vollversion 1.13
17w45b
18w03a
  • Befehl /execute store in Verbindung mit /data get mit Angabe eines NBT-Pfades funktioniert auch für nicht-numerische NBT-Daten.
Vollversion 1.14 (18w43a)
  • Neuer Parameter modify hinzugefügt.
Vollversion 1.15
19w38a
  • Neuer Parameter storage hinzugefügt, ist ein Datenspeicher, der NBT-Daten speichern kann, ohne das ein Objekt oder Block notwendig ist.
19w39a
  • Für den Datenspeicher gibt es eine JSON-Text-Komponente.
Vollversion 1.19.4 (23w03a)
  • Neuer Parameter string, mit welchen man einen gezielten Bereich der Daten mit einem beliebigen Datentyp in einen String umwandeln kann.
Vollversion 1.20 (1.20-pre1)
  • Der Parameter string erlaubt für Anfang und Ende auch negative Zahlenwerte, die als Index vom Ende der Zeichenkette aus gezählt interpretiert werden.

Advertisement