更新日:
1. 羽根を持つと高く跳べる(Java版1.20.5以降)
反復コマンドブロック(常時実行)に、次のコマンドを入れます。
/execute as @a if items entity @s weapon.mainhand minecraft:feather run effect give @s minecraft:jump_boost 1 2 true
メインの手に羽根を持っている人だけに、跳躍力上昇が付きます。効果時間を1秒にしているので、持つのをやめるとすぐに効果が切れます。
2. 持つ場所を変える
| 場所 | 書き方 |
|---|---|
| メインの手 | weapon.mainhand |
| もう片方の手 | weapon.offhand |
| 頭・胴・脚・足 | armor.head・armor.chest・armor.legs・armor.feet |
| 持ち物のどこか | container.* |
ブーツをはいている間だけ速くなる例です。
/execute as @a if items entity @s armor.feet minecraft:golden_boots run effect give @s minecraft:speed 1 1 true
3. 特別なアイテムだけに反応させる
ふつうの羽根と区別したいときは、目印(custom_data)を付けたアイテムを配ります。
/give @s minecraft:blaze_rod[custom_name="炎の杖",custom_data={fire_wand:1b}]
この杖を持っているときだけ、炎のパーティクルを出します。
/execute as @a if items entity @s weapon.mainhand minecraft:blaze_rod[custom_data~{fire_wand:1b}] at @s run particle minecraft:flame ~ ~1 ~ 0.3 0.5 0.3 0 5
目印の付け方は カスタムアイテムの作り方、パーティクルは particleコマンドの使い方 にまとめています。
4. 統合版の書き方
/effect @a[hasitem={item=feather,location=slot.weapon.mainhand}] jump_boost 1 2 true
統合版では、セレクターの hasitem で持っている物を調べます。location を外すと、持ち物のどこかに入っていれば反応します。
うまくいかないときの確認ポイント
- if itemsでエラーになる:Java版1.20.5より前では使えません。バージョンを確認します。
- 持っていないのに効果が残る:効果時間を1〜2秒の短い時間にします。
- 特別なアイテムに反応しない:giveしたときの目印と、判定の目印が同じか確認します。
- 動かない:コマンドブロックが反復・常時実行になっているか確認します。
よくある質問
持っている間ずっと光らせたいです。
effect の部分を minecraft:glowing に変えると、持っている人が光ります。
1.20.4以前ではどう書きますか?
execute if items がないため、@a[nbt={SelectedItem:{id:"minecraft:feather"}}] のようにNBTで調べます。重くなりやすいので、人数が多いときは注意します。
右クリックで発動させたいです。
持っているだけでなく使ったときに反応させるには、scoreboardの使用回数(minecraft.used)で判定します。