マルチプレイなら『シン・VPS』がおすすめ!

【エンダーチェストを操作】itemコマンドで中身を変更【マイクラ】

【エンダーチェストを操作】itemコマンドで中身を変更【マイクラ】

この記事では、Minecraft Java Edition(バージョン1.18.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

コマンドでエンダーチェストの中身を変えたいマインクラフター
「コマンドで他人のエンダーチェストの中身を弄ることってできるのかな? 確認する方法とかも教えて欲しいな」

こんな疑問を解決します!

本記事の内容
  • itemコマンドで中身を変更する
  • dataコマンドで何を仕舞っているのか確認する

こんにちは! マインクラフターのなつめ(@natsume_717b)です。

なつめ

マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ

この記事では、エンダーチェストの中身をコマンドで扱うことをまとめています。

エンダーチェストは通常のチェストなどと異なり、プレイヤーごとにデータが存在しているため少々厄介な存在と言えます。
しかし、それでもコマンドで中身を変更したり確認することができますので、それらを解説していきます。

それでは、さっそく見ていきましょう!



itemコマンドで中身を変更する

エンダーチェストの中身を変更するには、itemコマンドを使います。
itemコマンドはプレイヤーの装備やチェストの中身といった、スロットの内容を変更するコマンドですね。

なので、エンダーチェストの中身(スロット)も変更することができるわけです。
ただしエンダーチェストはプレイヤーごとにデータが異なるので、エンダーチェスト自体ではなくプレイヤーを指示してあげる必要があります。

実際のコマンドは以下のようになります。

/item replace entity ターゲットセレクター enderchest.〇 with アイテムID 個数

ターゲットセレクターには変更したいプレイヤーが対象となるように指示すればOKで、アイテムIDにはエンダーチェストに入れたいアイテムのIDを、個数はそのままの意味で入れたい個数を指示すればOKですね。

見慣れないのがenderchest.〇の部分ですね。

まず、〇の部分には0から26のいずれかの数字が入ります。
そしてこの数字によって、エンダーチェストのスロットの位置を示しています。

具体的には左上から数えていき、右端まで行くと2列目の左端から再び数えます。
3列目も同様ですね。

なので、最も近いプレイヤーのエンダーチェストの左上のスロットをダイヤモンド(1つ)に変更するコマンドを実行したい場合は

/item replace entity @p enderchest.0 with minecraft:diamond 1

となります。

というわけで、itemコマンドでenderchestの項目を利用することでエンダーチェストの中身を変更することができます。

dataコマンドで何を仕舞っているのか確認する

エンダーチェストの中身を知るには、dataコマンドを使用する必要があります。
今回の場合は、そのプレイヤーがエンダーチェストに何を仕舞っているのかをデータとして抜き出すといったイメージでOKです。

というわけで、以下のようなコマンドを使います。

/data get entity @p EnderItems

上記のコマンドでは、ターゲットセレクターが最も近いプレイヤーを対象にしていますので、各自知りたいプレイヤーを対象となるように変更して使ってください。

ターゲットセレクターについては、コマンドの対象は全部で6種類!それぞれが意味するものを解説します【マイクラ】をどうぞ。

EnderItemsというのが、そのプレイヤーのエンダーチェストの中身を示すこととなり、以下のような結果と似ているものが出てくるかと思います。

[{Slot:0b,id:"minecraft:diamond",Count:1b}]

これはSlotがエンダーチェストのどの位置にあるのか、idはそのスロットにあるアイテムのID、Countは個数ですね。
これらの意味を把握しておけば、出てきた結果を理解できるはず。

ちなみに上記のような結果が出た場合には、エンダーチェストの左上にダイヤモンドが1つ入っていることを示します。

というわけでエンダーチェストに入っているアイテムの情報を取り出すにはそのプレイヤーを対象としてdataコマンドを使えばOKです。

まとめ

というわけで、今回のまとめです。

今回使ったコマンドはこちら。

今回使ったコマンド
  • itemコマンドでエンダーチェストの中身を変更する際のコマンドの雛型
/item replace entity ターゲットセレクター enderchest.〇 with アイテムID 個数
  • 最も近いプレイヤーのエンダーチェストの中身を知るためのコマンド
/data get entity @p EnderItems
ポイント
  • エンダーチェストの中身を扱う際は、エンダーチェストの座標ではなくプレイヤーごとに対象を絞る必要があります。
    (プレイヤーごとにエンダーチェストのデータを持っているため)

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】