スポンジ,種を投げて水抜き/種まきできる一つのコマンド[マルチプレイ対応 1.8+1.9も対応]
種を投げるだけで種まきしたり、スポンジを投げて水抜きができたら…
できます。これからお見せするコマンドを、一回実行するだけです。
今回は、Minecraft 1.8 + 1.9で種まきやスポンジ水抜きを投げて行えるようになる
とっても便利なコマンドを作ったので紹介します。
回路はもう出来上がっています。コマンドを実行すれば勝手に出来上がります。
[2016年3月4日追記] バージョン1.9用のコマンドへのリンクを追記しました。
目次
目次
※第一章と第二章は、自動化という男のロマンを叶えるためだけの解説です。
ただ単に、種やスポンジを投げて使いたいだけ、という方は3章からお読み下さい。
まずは実行してみて下さい。回路が完成して動きます。
それでは早速、あなたの夢を叶えてみせましょう。
今日からあなたは、種まきや水抜きの面倒臭さから開放されます。
▲このリンク先に貼ってある長ーいコマンドをコピーして下さい。
Minecraft 1.8以降のワールドで、周りに何もない場所にコマンドブロックを設置します。
それから中に、先程コピーしたコマンドを貼り付けて下さい。
そして、コマンドブロックの横にボタンをくっつけて押します。
なんという事でしょう、勝手にコマンドブロックの回路が出来上がったではありませんか!
これ、ただハリボテを置いたわけではありません。実際に動いています。
ご覧ください。種を投げると、耕した土に吸い込まれて、植えられるようになりました。
さらに、スポンジをポイっと投げるだけで水中に設置されて、水抜き出来るようになりました。
(チャットログが荒ぶって困るという方は、/gamerule commandBlockOutput false
を実行して下さい。)
これらの仕掛けは、あの回路が描画範囲内にある間はずっと効果が続きます。
どうやって、1つのコマンドからコマンドブロックの集合体を出したのでしょうか。
どうやって作った? – こんな仕組みになっています
先ほどのコマンドを実行した際、何やら怪しい物が降ってきませんでしたか?
このコマンドブロックとレッドストーンブロックのタワーが空から降ってきたと思います。
そしてすぐに消えてしまいます。一体コレには何の意味があるんでしょうか。
それでは、全ての種明かしをしましょう。
毎回毎回お世話になっているコマンド生成ツール、MCStackerです。
リンク先には、今回解説するコマンドが編集可能な状態で公開されています。
(書いてあるコマンドを一つ一つ解説するのは大変なので省略します。)
さて、あのコマンドブロックのタワーは何だったのかといいますと、
いくつも積み重なった「FallingSand」というエンティティが落ちてきたものです。
「FallingSand」にブロックの種類を設定すれば、砂や砂利のように落ちてくるようになります。
つまり、ブロックを擬似的にエンティティ扱いにして、summonコマンドで重ねて召喚しています。
タワー内のコマンドブロックには、回路を組み立てるためのsetblockコマンドなどが入っています。
また、回路を動かすのに必要となるScoreboardも自動で作成されるようにしています。
最初の長ーいコマンドには、設置する全ブロックのデータが入っているというわけです。
コマンドを整形するとこんな感じです。
最初にレッドストーンブロックのFallingSandを召喚、その下にコマンドブロックのFallingSandを重ねて….
といった具合に、レッドストーンブロックでコマンドブロックをサンドイッチするように重ねています。
※実際にコマンドが実行される順序は、下から上です。
最後に一番上の「積み上がったコマンドブロックを消す」コマンドが実行されてタワーが消えます。
普通に回路を作る場合のコマンド解説
『こんなややこしい事しなくても、普通に回路を組み立てればいいんじゃ?』
そう思ったそこのあなた、ぐう正論です。
先ほどの長ーいコマンドなんか使わなくとも、自力でコマンドブロックを設置して動かせばいいだけです。
あれは、“全てを自動化してみたい”という男のロマンです。
まずは、2種類のスコアボードを作成します。
スポンジ判定用のスコアボードを作成するコマンド
/scoreboard objectives add isSponge dummy
投げた種判定用のスコアボードを作成するコマンド
/scoreboard objectives add isSeed dummy
どちらも、チャット欄から実行してもらって構いません。
種とスポンジ、どちらかの機能がいらない場合は片方だけ作って下さい。
回路はこれだけ。左側はこれまで何回も使ってきた、赤石ブロック式のクロック回路です。
これまでのコマンド解説記事で何回も作っているので、クロック回路の作り方は省略します。
(クロック回路で、赤石ブロックと石を設置する範囲を3広げて下さい。)
「1」「2」「3」がスポンジを投げて水抜きする処理、
「A」「B」「C」が種を投げて種まきする処理を担当します。
どちらかの機能がいらない場合は、片方だけ作って頂いて構いません。
スポンジを投げて水中に設置するコマンドの解説
「1」「2」「3」のコマンドブロックの中身を解説します。
「1」のコマンドブロックに入力するコマンド
/scoreboard players set @e[type=Item] isSponge 1 {Item:{id:”minecraft:sponge”,Damage:0s}}
アイテム化したスポンジ、すなわち投げたスポンジの「isSponge」スコアを「1」にセットします。
「2」のコマンドブロックに入力するコマンド
/execute @e[type=Item,score_isSponge=1,score_isSponge_min=1] ~ ~ ~
detect ~ ~ ~ minecraft:water 0 setblock ~ ~ ~ minecraft:sponge
「isSponge」スコアが1、つまりアイテム化しているスポンジがターゲットです。
「detect」で、投げたスポンジが水に入った瞬間、その場にスポンジブロックを設置します。
「3」のコマンドブロックに入力するコマンド
/execute @e[type=Item,score_isSponge=1,score_isSponge_min=1] ~ ~ ~
detect ~ ~ ~ minecraft:sponge 0
kill @e[type=Item,score_isSponge=1,score_isSponge_min=1,c=1]
アイテム化しているスポンジがターゲットです。
「detect」によって、スポンジが設置された瞬間に、アイテム化しているスポンジが、近くのアイテム化しているスポンジを殺します。つまり自分を殺し、アイテム化しているスポンジは消滅します。
種を投げて種まきするコマンドの解説
次に、「A」「B」「C」のコマンドブロックの中身を解説します。
「1」のコマンドブロックに入力するコマンド
/scoreboard players set @e[type=Item] isSeed 1
{Item:{id:”minecraft:wheat_seeds”}}
アイテム化した種、すなわち投げた種の「isSeed」スコアを「1」にセットします。
「2」のコマンドブロックに入力するコマンド
/execute @e[type=Item,score_isSeed=1,score_isSeed_min=1] ~ ~ ~
detect ~ ~-1 ~ minecraft:farmland 0 setblock ~ ~ ~ minecraft:wheat
「isSeed」スコアが1、つまりアイテム化しているスポンジがターゲットです。
「detect」で、投げた種が耕した土の上に来た瞬間、その場に小麦を植えます。
「3」のコマンドブロックに入力するコマ
ンド
/execute @e[type=Item,score_isSeed=1,score_isSeed_min=1] ~ ~ ~
detect ~ ~ ~ minecraft:wheat 0
kill @e[type=Item,score_isSeed=1,score_isSeed_min=1,c=1]
スポンジの時と同じように、アイテムが自分自身を殺します。
この時、「detect」を「~ ~ ~」にするので、小麦を植えたら即消えるようになっています。
この仕掛けの注意点として、既に植えてある小麦に種を投げても消えてしまいます….
ディスペンサーで種まきしたり、水抜きしたり…..
なかなか楽しそうです。
いかがでしたか。便利な仕掛けは作れましたか。
今回解説したコマンドがお役に立てれば幸いです。
「これはどうするの?」などコメント待ってます。
最近書いたコマンド解説記事
5件のコメント
-
ひ~ら~2016年6月12日executeコマンドで「地面にアイテム”金の剣”が着地した時に金の剣周りのエンティティをkillするコマンドを考えております。 executeコマンドでデータタグはどこに入れれば良いのでしょうか? /execute @e[type=Item] ~ ~ ~ kill @e[type=!Player,r=10]では金の剣指定ができず困り果てています
-
匿名2016年6月12日executeコマンドでは残念ながらNBTタグの指定はできません。ですので金の剣のアイテムエンティティにタグを付与して判別する必要があります。(タグを付与するscoreboardコマンドではNBTタグが使えます) /scoreboard players tag @e[type=Item,c=1] add isGoldSword {Item:{id:"minecraft:golden_sword",tag:{display:{Name:"金の剣"}}}} ▲を常時実行すれば「金の剣」と名のついた金の剣に「isGoldSword」タグが付きます。 それから /execute @e[type=Item,tag=isGoldSword] ~ ~ ~ kill @e[type=!Player,r=10] を実行すれば"金の剣"の周囲のエンティティをキルできます。
-
この世のどこかににいる誰か2016年8月22日紙を投げると、GIVEコマンドが動いてインベントリに紙が増える。という仕組みで、 1つの紙だけで無限に紙が投げられるようにしたいのですが、どうすればいいでしょうか?
-
↑2016年8月22日もしくは、アイテムを一つのスロットに複数持っていても、数字が見えないようにする方法を・・・
-
↑の二人2016年8月22日自己解決しました