この記事では、Minecraft Java Edition(バージョン1.18.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
コマンドで畑を扱いたいマインクラフター
「耕されている状態の土ブロックってどういうアイテムIDを持っているの? 畑に何か植えられている状態を検知するにはどうすればいいのかな?」
こんな疑問を解決します!
- 耕地のアイテムID
- 農作物が植わっているかどうかを検知する方法
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ
この記事では農作物を植えることのできる耕地ブロックを、コマンドの観点からお話していきます。
具体的には耕地ブロックのアイテムID、農作物が植わっている耕地ブロックを判定する方法といった感じですね。
農作物が植わっているかどうかの判定については、どんなものでもいいから植わっていることを感知する方法と、特定の農作物が植わっている場合の2種類を紹介。
それでは、さっそく見ていきましょう!
耕地のアイテムID
耕地のアイテムIDは”minecraft:farmland”になっています。
なので、giveコマンドで手に入れようとする場合には
/give @p minecraft:farmland 1
とすればいいわけですね。
もしも土ブロックから耕地に変化したように見せる際にコマンドを使いたい場合は、setblockコマンドを使えばOKです。
土ブロックがある場所の座標を指定しつつ、土ブロックを耕地ブロックに上書きします。
(下記コマンドでは、座標をXYZ=10の地点で指定しています。なので、各自土ブロックのある座標へと変更して実行してください)
/setblock 10 10 10 minecraft:farmland replace
農作物が植わっているかどうかを検知する方法
耕地ブロックと言えば、農作物を植えられるブロックです。
なので、農作物が植わっているかどうかをコマンドを使って判定してみたいという場合もあるはず。
結論から言うと、判定することができます。
耕地ブロックと農作物の植わっているブロックは別のマスなので、耕地ブロックの上のブロックに何のアイテム(ブロック)があるのかを判断すれば、上手くいくはずと予想できます。
そこで使うのがexecuteコマンドで、「どこそこの座標に□□のブロックがない場合にコマンドを実行する」という条件を付与して、コマンドを実行します。
今回の場合は「農作物がある=空気ブロックではない」という考えでやっていくわけですね。
自由にブロックを設置できないアドベンチャーモードで使うことを想定しています。
サバイバルモードなどの自由にブロックを設置できるモードの場合は、農作物以外のブロックを置かれる可能性があるため、その場合もう少し精密に判定するようコマンドを組む必要があります。
あくまでも例なので、実行されるコマンドはeffectコマンドにしてプレイヤーが発光するようにします。
というわけで、以下のコマンドをリピートコマンドブロックに打ち込みます。
/execute unless block 10 10 10 air run effect give @p minecraft:glowing 1 0 true
これで、座標XYZ=10の場所が空気ブロックでなければプレイヤーが発光されるようになります。
なので、耕地ブロックはXZ=10、Y=9の場所にあることになりますね。
実際に使用してみる際は、以下の言語化したものを参考にしてみてください。
unless blockからrunの手前までの部分が「指定した場所に指定したブロックがない場合」を指示する場所になっています。
/execute unless block 座標 ブロックのID run 実行したいコマンド
特定の農作物が植わっているかどうかを判定したい場合
特定の農作物が植わっているかどうかを判定したい場合には、上述したコマンドのように「空気ブロックでない場合」とやらずに「○○がある場合」としてしまえばOKです。
というわけで、unlessではなくifを使っていきます。
以下のコマンドはジャガイモが植わっている場合にeffectコマンド(発光)が実行されるようになっているものです。
/execute if block 10 10 10 minecraft:potatoes run effect give @p minecraft:glowing 1 0 true
その他の農作物のIDは以下の表をどうぞ。
農作物 | ID |
---|---|
小麦の種(小麦) | minecraft:wheat |
ジャガイモ | minecraft:potatoes |
ニンジン | minecraft:carrots |
ビートルートの種(ビートルート) | minecraft:beetroots |
本来のアイテムIDとは若干スペルが異なるので、要注意です。
(ジャガイモの場合はminecraft:potatoからminecraft:potatoesとなっています)
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
/give @p minecraft:farmland 1
/setblock 10 10 10 minecraft:farmland replace
/execute unless block 10 10 10 air run effect give @p minecraft:glowing 1 0 true
/execute if block 10 10 10 minecraft:potatoes run effect give @p minecraft:glowing 1 0 true
この記事は以上になります。