更新日:
1. 座席を置く
execute align xyz positioned ~0.5 ~ ~0.5 run summon minecraft:armor_stand ~ ~0.5 ~ {Invisible:1b,Marker:1b,NoGravity:1b,Tags:["seat"]}
椅子にしたい階段(下付き)の上に立って、チャットで実行します。align xyz と positioned ~0.5 ~ ~0.5 でブロックの真ん中に合わせ、階段の座面の高さに見えない防具立てを置きます。Marker:1b にすると当たり判定がなくなり、じゃまになりません。防具立ての設定は 防具立てのコマンド にまとめています。
2. 右クリックを受け取る箱を置く
execute align xyz positioned ~0.5 ~ ~0.5 run summon minecraft:interaction ~ ~ ~ {width:1f,height:1f,Tags:["chair"]}
interaction は見えない箱のエンティティで、右クリックされると、だれが押したかを覚えます。1と同じ場所で実行すると、階段のブロックぴったりの大きさになります。
3. 右クリックした人を座らせる
# 反復・常時実行
execute as @e[type=minecraft:interaction,tag=chair] at @s if data entity @s interaction on target run ride @s mount @e[type=minecraft:armor_stand,tag=seat,limit=1,sort=nearest]
# チェーン・常時実行
execute as @e[type=minecraft:interaction,tag=chair] run data remove entity @s interaction
1行目で、右クリックされた箱を探し、on target で右クリックした人に切りかえて、いちばん近い座席に乗せます。2行目で右クリックの記録を消すので、次に押されるまで動きません。rideのくわしい使い方は rideコマンドの使い方 を見てください。
4. 立ち上がる・椅子を増やす
座っている人は、しゃがむ(Shift)と立ち上がれます。椅子を増やすときは、それぞれの階段の上で1と2をもう一度実行します。3のコマンドブロックは1組で全部の椅子に効きます。
5. 椅子を片付ける
/kill @e[tag=seat,distance=..2]
/kill @e[tag=chair,distance=..2]
近くの座席と箱を消します。階段だけ壊しても見えないエンティティが残るので、先にこのコマンドで消します。
うまくいかないときの確認ポイント
- 座る位置が高すぎる・低すぎる:1の
~0.5を~0.3などに変えて、見た目に合わせます。 - 右クリックしても座れない:2の箱が階段の場所にあるか、3の反復ブロックが動いているか確認します。
- 統合版で使いたい:統合版には interaction がないので、この方法は使えません。
よくある質問
上付きの階段やハーフブロックでも使えますか?
座面の高さが違うので、1の ~0.5 を座面に合わせて変えます。ハーフブロック(下付き)なら同じ ~0.5 で合います。
座っている間に何かを起こせますか?
座っている人は座席に乗っているので、execute on vehicle などで判定して、回復やメッセージを出せます。
ほかのプレイヤーを座らせられますか?
/ride プレイヤー名 mount @e[tag=seat,limit=1,sort=nearest] で、OPが座らせることもできます。