更新日:
1. はじめて来た人に1回だけ配る
# 反復・常時実行
give @a[tag=!got_kit] minecraft:stone_sword
# チェーン・常時実行
give @a[tag=!got_kit] minecraft:bread 16
# チェーン・常時実行
tag @a[tag=!got_kit] add got_kit
tag=!got_kit は「got_kitというタグが付いていない人」という意味です。アイテムを配ったあとに最後のコマンドでタグを付けるので、次からは配られません。配りたいアイテムが増えたら、タグを付けるコマンドより前にチェーンを足します。タグのしくみは tagコマンドの使い方 にまとめています。
2. 防具を直接着せる
item replace entity @a[tag=!got_kit] armor.head with minecraft:leather_helmet
item replace entity @a[tag=!got_kit] armor.chest with minecraft:leather_chestplate
give の代わりに item replace を使うと、防具を持ち物に入れずにそのまま着せられます。足は armor.legs、靴は armor.feet です。統合版では /replaceitem を使います(item replaceコマンドの使い方)。
3. 死んだあとに配り直す(Java版)
# 最初に1回だけ
scoreboard objectives add deaths deathCount
# 反復・常時実行
give @e[type=player,scores={deaths=1..}] minecraft:stone_sword
# チェーン・常時実行
scoreboard players reset @e[type=player,scores={deaths=1..}] deaths
deathCount は死んだ回数を数えるスコアです。ここで @a ではなく @e[type=player] を使うのがポイントです。@e は生きているものだけを選ぶので、リスポーンしてからアイテムが渡されます。死んでも持ち物を残したいだけなら 持ち物を落とさない設定 の方が簡単です。
4. もう一度配りたいとき
tag @a remove got_kit
全員からタグを外すと、次にコマンドブロックが動いたときに全員へもう一度配られます。1人だけにしたいときは @a をプレイヤー名に変えます。
5. まとめて渡したいとき
アイテムが多いときは、中身入りのシュルカーボックスを1つ渡すと持ち物があふれません。作り方は 中身入りのシュルカーボックスを出すコマンド を見てください。
うまくいかないときの確認ポイント
- 何度も配られる:タグを付けるコマンドが動いているか、タグの名前が全部同じか確認します。
- まったく配られない:コマンドブロックが「反復」「常時実行」になっているか、チェーンの矢印の向きが合っているか確認します。
- 持ち物がいっぱいで落ちる:持ち物に空きがないと、アイテムは足元に落ちます。
よくある質問
もう配ったかどうかを確認するには?
/tag プレイヤー名 list で、そのプレイヤーに付いているタグを見られます。got_kitがあれば配り済みです。
ロビーに来たときだけ配れますか?
配るコマンドに場所の条件を付けると、決めた場所にいる人だけに配れます。範囲の決め方は「決まった範囲に入ったら発動するコマンド」で説明しています。
統合版でも使えますか?
タグとgiveの部分は統合版でも同じように使えます。防具を着せるときは /replaceitem を使います。