| Vollversion | |||||||
|---|---|---|---|---|---|---|---|
| 1.13 |
|
||||||
| 1.14 (18w43a) |
|
||||||
| 1.15 |
|
||||||
| 1.19.4 (23w03a) |
|
||||||
| 1.20 (1.20-pre1) |
|
||||||
| 26.3 |
|
||||||
Befehl/data
| Dieser Inhalt ist nur für die Java Edition. |
| Operator-Level benötigt |
2 |
|---|---|
| Einschränkungen |
Keine |
/data verändert oder zeigt die Eigenschaften von Kreaturen, Blöcken und Datenspeichern an.
Syntax
[Bearbeiten | Quelltext bearbeiten]Syntax-Baum
[Bearbeiten | Quelltext bearbeiten]/data ...... get ...... (block <Position>|entity <Objekt>|storage <Datenspeicher>) [<Pfad>] [<Skalierung>]
... merge ...... (block <Position>|entity <Objekt>|storage <Datenspeicher>) <NBT-Daten>
... modify (block <Position>|entity <Objekt>|storage <Datenspeicher>) <Pfad> ...... remove ...... (block <Position>|entity <Objekt>|storage <Datenspeicher>) <Pfad>
Syntax-Tabelle
[Bearbeiten | Quelltext bearbeiten]/data ...
... get ...... block <Position> ...... entity <Objekt> ...... storage <Datenspeicher> ...
... [<Pfad>] [<Skalierung>]... merge ...... <NBT-Daten>... modify ...... <Pfad> ...... append ...... compute ...... block <Position> ...... entity <Objekt> ...... default ...
... float ...... <Zahlenanbieter>
... integer ...
... from ...... block <Position> ...... entity <Objekt> ...... storage <Datenspeicher> ...
... [<Pfad>]... string ...... [<Pfad>] [<Anfang>] [<Ende>]... value <Wert>
... insert <Index> ...... merge ...... prepend ...... set ...
... remove ...... <Pfad>
Argumente
[Bearbeiten | Quelltext bearbeiten]Parameter-Argumente
[Bearbeiten | Quelltext bearbeiten]<Position>
- Die Position des Ziel-Blockobjekts, deren NBT gelesen oder geschrieben werden soll.
- Muss eine Blockposition sein, die aus den Koordinaten
<X>,<Y>und<Z>besteht, die jeweils eine Ganzzahl oder eine Tilde- (~) oder Zirkumflex-Notation (^) sein muss.
<Objekt>
- Gibt ein Objekt an, auf deren NBT zugegriffen werden soll.
- Muss ein Spieler, eine Zielauswahl oder eine UUID sein.
<Datenspeicher>
- Gibt den Namen eines zu Datenspeichers an, auf dessen NBT zugegriffen werden soll.
- Der Datenspeicher ist unabhängig von der Dimension in der man sich befindet und ist immer zugreifbar.
<Pfad>
- Gib den abzurufenden oder zu entfernenden NBT-Pfad an.
- Der NBT-Pfad zeigt an, auf welche NBT-Eigenschaft zugegriffen werden soll.
<Skalierung>
- Sagt aus, um welchen Faktor der NBT-Wert multipliziert werden soll.
- Die Sakalierung ist für Kommazahl-Eigenschaften (wie
floatunddouble) gedacht, deren Nachkommastellen bei der Übertragung ansonsten verloren gehen würden.
<NBT-Daten>
- Gib eine Verbundtyp-Eigenschaft an, das an beliebiger Stelle zusammengeführt werden soll.
- Die NBT-Daten sind die Eigenschaften des Objektes, Blockes oder Datenspeichers, die geändert werden sollen.
<Index>
- Gib den Index eines Elements innerhalb einer Liste an.
- Der Index muss eine Ganzzahl sein. Er darf auf negativ sein, um vom Ende aus auf die Liste zugreifen zu können.
<Anfang>
- Gibt den Index des ersten Zeichens an, das am Anfang der Zeichenkette eingefügt werden soll. Negative Werte werden als Index vom Ende der Zeichenkette aus gezählt interpretiert.
- Muss eine Ganzzahl (32-Bit-Integer-Zahl) sein (von -2147483648 (-231) bis 2147483647 (231-1).
<Ende>
- Gibt den Index des ersten auszuschließenden Zeichens am Ende der Zeichenkette an. Negative Werte werden als Index vom Ende der Zeichenkette aus gezählt interpretiert.
- Muss eine Ganzzahl (32-Bit-Integer-Zahl) sein (von -2147483648 (-231) bis 2147483647 (231-1).
<Wert>
- Der Wert mit dem die Eigenschaft überschrieben oder gesetzt werden soll.
- Der Wert kann eine beliebige Eigenschaft sein, eine Zahl, ein String, ein Verbundtyp oder eine Liste.
<Zahlenanbieter>
- Gibt einen Zahlenanbieter an, dessen Ergebnis für die Berechnung des Zielwertes verwendet werden soll.
- Der Zahlenanbieter kann einen festen Zahlenwert enthalten oder diesen dynamisch aus der Spielwelt ermitteln.
Zur Eingabe eines Befehls siehe Befehl#Eingabehilfe.
Befehls-Argumente
[Bearbeiten | Quelltext bearbeiten]get
- Gibt die Daten von Blöcken, Objekten oder Datenspeichern als Chat-Meldung aus.
merge
- Verändert die Daten von Blöcken, Objekten oder Datenspeichern.
modify
- Setzt die Daten von Blöcken, Objekten oder Datenspeichern auf Daten, die von anderen Blöcken, Objekten oder Datenspeichern erhalten werden.
remove
- Entfernt Daten von Blöcken, Objekten oder Datenspeichern.
modify ... append
- Nur für Listen: Fügt die Daten nach allen anderen Einträgen der Liste hinzu, alte Einträge bleiben unverändert.
modify ... 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.
modify ... merge
- Verändert die Daten von Blöcken, Objekten oder Datenspeichern.
modify ... prepend
- Nur für Listen: Fügt die Daten vor allen anderen Einträgen der Liste hinzu, alte Einträge werden nach hinten verschoben.
modify ... set
- Ersetzt den Wert.
... compute
- Ersetzt den Wert durch das Ergebnis eines Zahlenanbieters. Hierbei entscheidet
integerundfloatob das Ergebnis eine Ganzzahl oder eine Kommazahl sein wird.
... from
- Ersetzt den Wert durch die Daten eines Blockes, Objektes oder Datenspeichers.
... string
- Ersetzt den Wert durch einen String oder einen Teil eines Strings aus den Daten eines Blockes, Objektes oder Datenspeichers.
... value
- Ersetzt den Wert durch den angegebenen Wert.
Eigenschaften
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]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 Datenspeicher lesen, während /data merge, /data modify, /data remove und /execute store in den Datenspeicher schreiben können.
Der Datenspeicher ist auch mit JSON-Text zugänglich.
Ausgabe
[Bearbeiten | Quelltext bearbeiten]
| Befehle | Auslöser | Java Edition |
|---|---|---|
| Beliebig | die Argumente sind nicht korrekt angegeben | Unparsbar |
<ZielPosition> ist ungeladen oder außerhalb der Welt | Fehlschlag | |
Der Block bei <ZielPosition> ist kein Blockobjekt | ||
<Selektor> (im entity <Selektor>-Modus) kann nicht zu einem Wesen aufgelöst werden (der genannte Spieler muss online sein) | ||
/data get ... | mehr als eine Eigenschaft ist möglich | |
/data get ... <Pfad> | <Pfad> existiert nicht | |
/data get ... <Pfad> <Skalierung> | Die erhaltene Eigenschaft ist keine numerische Eigenschaft | |
/data merge ... | Nichts wird geändert | |
| Versuch Spielerdaten zu ändern | ||
/data remove ... | <Pfad> wählt das Wurzel-Verbundtyp-Eigenschaft aus | |
/data modify ... (from|string) block ... | <QuellPosition> ist ungeladen oder außerhalb der Welt | |
Der Block bei <QuellPosition> ist kein Blockobjekt | ||
/data modify ... (from|string) entity ... | <Quelle> kann nicht zu einem Wesen aufgelöst werden (benannter Spieler muss online sein) | |
/data modify ... (from|string) ... <QuellPfad> | <QuellPfad> existiert nicht | |
/data modify ... string ... <QuellPfad> <Anfang> <Ende> | die von <QuellPfad> ausgewählten Eigenschaften sind weder vom Typ String noch numerisch (in einen String umgewandelt) Eigenschaft(en) | |
<Anfang> oder <Ende> ist außerhalb der gültigen Indizes der Quellzeichenfolge(n) | ||
Das durch <Anfang> indizierte Zeichen steht hinter dem durch <Ende> indizierten Zeichen | ||
/data modify ... append ... | Die Ziel-Eigenschaft(en) sind keine Listen- oder Array-Eigenschaft(en) | |
| Quelldaten haben nicht den richtigen Typ für die Liste(n) oder die Array(s) | ||
/data modify ... insert <Index> ... | Der Index ist für jedes Ziel ungültig | |
/data modify ... merge ... | Der Zielpfad wählt keine Verbundtyp-Eigenschaften aus | |
| Die Quelldaten sind keine Verbundtyp-Eigenschaften | ||
| Beliebig | Sonstiges | Erfolgreich |
Rückgabe
[Bearbeiten | Quelltext bearbeiten]
| Befehle | Edition | Situation | Erfolgszähler | /execute store success ... | /execute store result ... |
|---|---|---|---|---|---|
| Beliebig | Java Edition | Bei Fehlschlag | 0 | 0 | 0 |
/data get ... | Bei Erfolg | 1 | 1 | 1 | |
/data get ... <Pfad> | eine numerische Eigenschaft wird erhalten | 1 | 1 | der erhaltene Wert nach dem Abrunden | |
| eine Listen- oder Array-Eigenschaft wird erhalten | 1 | 1 | Die Anzahl der Elemente in dieser Liste oder diesem Array | ||
| eine String-Eigenschaft wird erhalten | 1 | 1 | Die Länge des Strings | ||
| eine Verbundtyp-Eigenschaft wird erhalten | 1 | 1 | Die Anzahl der Eigenschaften, die direkte Kinder dieser Verbundtyp-Eigenschaft sind | ||
/data get ... <Pfad> <Skalierung> | Bei Erfolg | 1 | 1 | der erhaltene Wert multipliziert mit <Skalierung>, dann abgerundet | |
/data merge ... | Bei Erfolg | 1 | 1 | 1 | |
/data remove ... | Bei Erfolg | 1 | 1 | 1 | |
/data modify ... append ... | Bei Erfolg | 1 | 1 | die Anzahl der Listen oder Arrays, zu denen neue Elemente hinzugefügt werden | |
/data modify ... set ... | Bei Erfolg | 1 | 1 | die Anzahl der Ziel-Eigenschaften, die erfolgreich geändert wurden | |
/data modify ... merge ... | Bei Erfolg | 1 | 1 | die Anzahl der erfolgreich geänderten Ziel-Verbundtyp-Eigenschaften |
Beispiele
[Bearbeiten | Quelltext bearbeiten]| Befehl | Beispiel |
|---|---|
/data get
|
/data get entity @e[type=minecraft:armor_stand,limit=1]
|
/data get entity @s DataVersion
| |
/data get entity @p Inventory[{Slot:0b}].id
| |
/data merge
|
/data merge entity @e[distance=..15,type=minecraft:slime,limit=1] {Size:10}
|
/data merge block 45 72 -10 {lock:{components:{"minecraft:custom_name":"Eisenbarts Goldzahn"} } }
| |
/data merge storage wiki:beispiel {Liste:[2,5,8,9,6,10]}
| |
/data modify
|
/data modify entity @n[type=minecraft:item,distance=..10] PickupDelay set value -1
|
/data modify block 1 64 1 Items[0].id set value "minecraft:diamond_block"
| |
/data modify ... compute
|
/data modify storage wiki:beispiel Ganzzahl set compute default integer {type:"constant",value:42}
|
/data modify storage wiki:beispiel Kommazahl set compute default float {type:"constant",value:3.5}
| |
/data modify storage wiki:beispiel Zufallszahl set compute default integer {type:"minecraft:uniform",min:1,max:6}
| |
/data remove
|
/data remove block 45 72 -10 lock
|
/data remove entity @n[distance=..15,type=minecraft:slime] Size
| |
/execute ... data
|
/execute if data block ~ ~-1 ~ Items[{Slot:0b}] run data modify block ~ ~-1 ~ Items[{Slot:0b}].id set value "minecraft:pottery_shard_arms_up"
|
/execute as @e[distance=..5,type=minecraft:pig,nbt=!{NoAI:true}] run data merge entity @s {NoAI:true}
| |
/execute as @e[type=minecraft:villager] run data modify entity @s VillagerData.profession set from entity @e[type=minecraft:villager,limit=1,nbt={VillagerData:{profession:"minecraft:nitwit"}}] VillagerData.profession
|
| Für weitere Beispiele mit NBT-Daten siehe: Anleitungen/Befehle mit NBT |
Geschichte
[Bearbeiten | Quelltext bearbeiten]| Versionen der Java Edition |
|---|
Navigation
[Bearbeiten | Quelltext bearbeiten]| Objekte |
| ||||
|---|---|---|---|---|---|
| Welten |
| ||||
| Server |
| ||||
| Debug | |||||
| Historisch |
| ||||
| Überblick |
| ||||
| Education Befehle | |||||
| Objekte |
| ||||
| Welten |
| ||||
| Server |
| ||||
| Historisch | |||||