【Minecraft】チェスト内のアイテムをコピーする
Minecraft 1.13 から追加された /data
コマンドですが、これを上手く使うといろんなことができます。
まずは /data
コマンドで何ができるかです。コマンドのオプションはこのようになっています。
/data get -> データを取得する /data merge -> データを結合する /data modify -> データを編集する /data remove -> データを削除する
これらのコマンドでできることを一言で言えば、データの操作です。
まずはチェストを作って、そこにアイテムを収納しておきましょう。
チェスト内には石ブロックとダイヤモンドが入っています。このデータを取得してみます。
/data get block <チェストの座標> Items
これで中身は得られるのですが、このデータをこのまま手で打ち込むのは面倒ですね。なので、storage を使用します。
/data modify storage <任意の変数名> <任意の要素> set from block <チェストの座標> <欲しいデータの要素>
今回はチェストのアイテム要素が欲しいので、こんな感じにしました。
/data modify storage chestitems Items set from block <チェストの座標> Items
これを実行した後に、
/data get storage <任意の変数名>
を実行すると、元のチェストのアイテム要素と同じNBTになっています。
storage はマイクラで扱うデータ(NBT)を保存しておく変数を宣言できるコマンドです。
新しいチェストを作り、そのチェストに対してこのコマンドを実行すると、
/data modify block <チェストの座標> Items set from storage <コピーした変数名> Items
空になっていたもう一方のチェストの Items 要素に storage の Items 要素がセット(上書き)されて、元のチェストと同じになりました。
これを応用すると、チェストアイテムのバックアップをとることができます。ワールドを削除してしまっても、このデータを保持していることができれば、新しいワールドのチェストに同様のアイテムを復元することができます。
この storage を使って Mod なしでアイテムをソートするようなプログラムを作ろうと考えています。完成したら Minecraft with Code Project のほうにアップしておきます。