Minecraft Wiki
Advertisement
Information icon.svg
この項目はJava Edition限定の要素です。 
data
必要権限レベル

2

実行制限

なし

ブロックエンティティおよびエンティティNBTデータの取得(get)、併合(merge)、編集(modify)、削除(remove)を行う。

構文[]

/dataには4つの命令文(getmergemodifyremove)があり、それぞれの命令で対象/参照元にblock <targetPos>entity <target>storage <target>を選択できる。

/data ...
... get
... (block <targetPos>|entity <target>|storage <target>) [<path>] [<scale>]
<taegetPos>座標のブロック、<target>で指定したエンティティ、<target>で指定したストレージのNBTデータ全体もしくは一部を取得する。<scale>が指定されている場合その値でスケーリング(乗算)される.

... merge
... (block <targetPos>|entity <target>|storage <target>) <nbt>
<taegetPos>座標のブロック、<target>で指定したエンティティ、<target>で指定したストレージのNBTデータを<nbt>で指定したデータで併合(merge)する。

... modify (block <targetPos>|entity <target>|storage <target>) <targetPath> ...
... append from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... append value <value>
参照元のデータを対象のリストの末尾に追加する。

... insert <index> from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... insert <index> value <value>
参照元のデータを対象のリストの<index>の位置に挿入する、リストにある挿入位置以上の<index>は末尾方向にずれる。

... merge from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... merge value <value>
参照元のデータで対象のリストを併合する。

... prepend from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... prepend value <value>
参照元のデータを対象のリストの先頭に追加する。リストのデータは末尾方向にずれる。

... set from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... set value <value>
指定した<targetPath>のデータを参照元のデータに設定する。

... remove
... (block <targetPos>|entity <target>|storage <target>) <path>
<taegetPos>座標のブロック、<target>で指定したエンティティ、<target>で指定したストレージの<path>にあるデータを削除する。プレイヤーのNBTデータは削除できない。


様々な形式での表記

引数[]

<targetPos>block_pos
NBTデータ操作の対象とするblock entityの座標。
の整数またはチルダ・キャレット表記法で表記された<x>、<y>、<z>でブロック座標を指定する。

<target>entity (in entity <target> mode)
NBTデータ操作の対象とするエンティティの指定。
プレイヤー名、ターゲットセレクターまたはUUIDで指定する。また、ターゲットセレクターは単一のものである必要がある。

<target>resource_location (in storage <target> mode)
NBTデータ操作の対象とするストレージの指定。
名前空間IDで指定する。

<path>nbt_path
取り出す、もしくは削除するNBT指定する。
NBTパスで指定する。

<scale>double
コマンドの返り値をスケーリングする値。
倍精度浮動小数点数を指定する。

<nbt>nbt_compound_tag
併合の参照元にするcompond tagを指定する。
SNBTフォーマットのcompound NBTで指定する。

<targetPath>nbt_path
編集するNBTを指定する。
NBTパスで指定する。

<index>integer
リスト内のindexを指定する。
32ビットの整数値で指定する。また、値は-2,147,483,648以上2,147,483,647以下で指定する。

<sourcePos>block_pos
NBTを参照するblock entityの座標を指定する。
の整数またはチルダ・キャレット表記法で表記された<x>、<y>、<z>でブロック座標を指定する。

<source>entity (in entity <source> mode)
modifyのNBT参照元にするエンティティを指定する。
プレイヤー名、ターゲットセレクターまたはUUIDで指定する。また、ターゲットセレクターは単一のものである必要がある。

<source>resource_location (in storage <source> mode)
modifyのNBT参照元にするストレージを指定する。
名前空間IDで指定する。

<sourcePath>nbt_path
modifyのNBT参照元を指定する。
NBTパスで指定する。

<value>nbt_tag
対象NBTの編集に使用する値。同じデータ型でなければならない。
SNBTフォーマットでのNBTタグで指定する。

結果[]

コマンドトリガーJava Edition
任意引数の指定が正しくない場合 構文解析不能
<targetPos>がロードされた範囲でないもしくはワールドの外の場合 失敗
<targetPos>のブロックがブロックエンティティでない場合
<target>で1つ以上の(in entity <target> mode)に解決できない場合(名前のついたプレイヤーはオンラインでなければならない)
/data get ...複数のタグが取得された場合
/data get ... <path><path>が存在しない場合
/data get ... <path> <scale>取得したタグが数値でない場合
/data merge ...
/data remove ...
/data modify ...
変更点がない場合
プレイヤーのデータを編集しようとした場合
/data remove ...
/data modify ... set ...
<path>が複合タグのルートだった場合
/data modify ... from block ...<sourcePos>のブロックがブロックエンティティでない場合
<sourcePos>のブロックがブロックエンティティでない場合
/data modify ... from entity ...<sourceEntity>で1つ以上のエンティティに解決できない場合(名前のついたプレイヤーはオンラインでなければならない)
/data modify ... from ... <sourcePath><sourcePath>が存在しない場合
/data modify ... append ...
/data modify ... insert <index> ...
/data modify ... prepend ...
対象のタグがリストや配列でない場合
参照元のデータ型がリストに追加できる型でない場合
/data modify ... insert <index> ...<index>が無効な場合
/data modify ... merge ...編集対象に指定の複合タグがない場合
参照元のデータが複合タグでない場合
任意成功時NBTデータを取得、併合、編集、削除する。

出力[]

コマンドエディション状況成功回数/execute store success .../execute store result ...
任意Java Edition失敗000
/data get ...成功111
/data get ... <path>数値が取得された場合11取得した数値を丸めこみした値[1]
リストか配列が取得された場合11リストか配列の要素数
文字列が取得された場合11文字列の文字数
複合タグが取得された場合11その複合タグの直接の子の数
/data get ... <path> <scale>成功11取得した値を<scale>倍後、丸めこみした値[2]
/data merge ...成功111
/data remove ...成功111
/data modify ... append ...
/data modify ... insert <index> ...
/data modify ... prepend ...
成功11リストや配列に新しく追加された要素数
/data modify ... set ...成功11設定に成功したタグの数
/data modify ... merge ...成功11編集に成功した複合タグの数

使用例[]

  • 実行者の満腹度を取得する:
    /data get entity @s foodSaturationLevel
  • 10ブロック以内に落ちているアイテムのうち最も近い位置のものをプレイヤーが拾えないようにする:
    /data modify entity @e[type=item,distance=..10,limit=1,sort=nearest] PickupDelay set value -1
  • 落ちているアイテムのうちランダムで選んだ1つのY座標を取得する:
    /data get entity @e[type=item,limit=1,sort=random] Pos[1]
  • 最も近くにいるプレイヤーのホットバースロットの最初(最も左)のアイテムのIDを取得する:
    /data get entity @p Inventory[{Slot:0b}].id
  • 座標(0, 64, 0)から最も近いイルカの防御力(attribute)を20に設定する:
    /data modify entity @e[x=0,y=64,z=0,type=dolphin,limit=1] Attributes[{Name:"generic.armor"}].Base set value 20
  • 座標(1, 64, 1)にあるチェストの最初のスロットをダイヤモンドブロックに変更するが、もともとそのスロットにあったアイテムのNBTデータを引き継がせる。:
    /data modify block 1 64 1 Items[0].id set value "minecraft:diamond_block"
  • 最も近いゾンビが死んだ時左手のアイテムを80%の確率で、右手のアイテムの0%の確率でドロップように設定する:
    /data merge entity @e[type=zombie,limit=1,sort=nearest] {HandDropChances: [0f, 0.8f]}
  • 最も近いゾンビが死んだ時左手のアイテムを80%の確率でドロップするように設定するが、右手のアイテムの確率は変更しない:
    /data modify entity @e[type=zombie,limit=1,sort=nearest] HandDropChances[1] set value 0.8f

ストレージ[]

command storage format」も参照

NBTデータのコマンドストレージはブロックエンティティエンティティへの書き込みや読み込み負荷なしに、commandsで効率的にNBTデータにアクセスできる方法です。 それぞれのコマンドストレージは、汎用のキーとデータがセットになった形式で、意図しない競合を防ぐためにresource locationによって識別される。 /data get/data modify はストレージから読み込みが、/data merge/data modify/data remove/execute store はストレージに書き込むことができる。

コマンドストレージはJSON textを用いても同じ様にアクセスできる。

歴史[]

Java Edition
1.1317w45b/dataが追加された。
17w47aコマンド /blockdata/entitydata が削除され /data に併合された。
18w03a/data get (block|entity|storage) とpathを用いて数字でない値も取得できるようになった。
1.1418w43a/data modify (block|entity|storage)が追加された。
1.1519w38astorage <resource location>が参照元、対象として追加された。

注釈[]

  1. double n = (double)value;
    int output = n < (int)n ? (int)n - 1 :(int)n;
  2. double n = (double)value * scale;
    int output = n < (int)n ? (int)n - 1 :(int)n;


Advertisement