Minecraft【武器・防具・道具】連射の弓。ダメージ検知

Java版1.21.6-、統合版v1.21.90-で動作確認。
矢の雨を降らせる。
連射の弓。v1.30
アイテム名とダメージ検知で、弓でモブを攻撃した時に、矢の雨を降らせる「連射の弓」を作ります。Java版と統合版ではコマンドが大きく異なりますが、同じように動く装置になりました。v1.30のJava版は、装備の仕様変更に対応。統合版は「ポーション式」に変更。ひとつの装置でマルチプレイに対応しました。Java版は初心者、統合版は上級者向けの装置になります。
◻︎装置の特徴
・ひとつの装置でマルチプレイ対応。
・ターゲットを絞った矢の召喚。
【Java版】
・メインハンド検知。(セレクトアイテム)
・HurtTimeを使ったダメージ検知。
【統合版】
・アイテム名で装置を起動。
・耐久度(データ値)を使ったループ装置。
・ポーション式で、装置を簡略化。
・射った矢にタグを付ける。
更新履歴
2025-5-25/Java版の仕様変更に対応。統合版は装置を改良。
2024-5-11/古い情報を更新しました。Java版(1.20.5〜)のデータコンポーネントに対応。
2023-5-26/統合版の矢の検知方法、ターゲットの絞り込みを、専用コマンド「family」に変更しました。
2023-4-1/統合版のv1.19.70以降のコマンドに対応! 複雑な装備検知をやめ、アイテム名から動作するように変更しました。 Java版のコマンドも変更。
プレイ動画。v1.1(旧式)
連射の弓(れんしゃのゆみ)を統合版の新コマンドに対応! 複雑な装備検知から、簡単装置に変更(完成データ付き)。Java版のコマンドも変更しました。多彩な検知方法、ターゲット絞った矢の召喚など。#マイクラhttps://t.co/09cm1mTSGa pic.twitter.com/QXBb43ORhU
— tokoton0ch (@tokoton0ch) April 1, 2023
旧式/ v1.0はこちら。
目次
1.作成準備
・使用方法。
2.連射の弓【Java版】
・弓を入手(名前を変更)。
・コマンドの結合。
・ダメージを検知。
3.連射の弓【統合版】
・装置のしくみ。
・弓を入手(名前を変更)。
・ポーションを入手。
・捨てる式。
・ループ装置。
・効果の再生。
4.ワールドデータ
・完成データをダウンロード。
※「as」や「minecraft:」など、一部のコマンドは簡略化。必要な場合は記入してあります。
作成準備
使用方法。
コマンドブロックの使い方、「アイテム検知」や「hasitem」の詳細は、関連記事をご確認ください。
- 詳しくこちら→ 【テクニック】コマンドブロックの使い方。1-2
- 詳しくこちら→ 【テクニック】アイテム検知を使って、コマンド実行。2-2
連射の弓【Java版】
「連射の弓」を持って敵を攻撃すると、ダメージを受けたモブに矢の雨を降らせます。装備はダメージを受け壊れると壊れます。※連射の弓」を手にしていない時は、コマンドは実行されません。近くのプレイヤーにもコマンドが反映されます。
弓の入手(名前を変更)。
名前を変更したアイテムをコマンドから入手。説明文やエンチャントも追加出来ます。※コマンドは長くなるので、メモ帳やテキストエディタを使うと便利です。

◻︎コマンド 例
| /give @s bow 1 |
①弓を1個入手するコマンド。
◻︎コマンド 例
| [custom_name="連射の弓",lore=["説明文"]] |
②アイテム名や説明文を追加します(NBT形式)。※item_nameにすると、金床で名前を変更出来ない装備になります。
コマンドの結合。
改行無しの1行で、チャットに入力して「連射の弓」を入手します。
◻︎コマンド 例
| /give @s bow[custom_name="連射の弓",lore=["説明文"]] 1 |
①のアイテムIDに②のコマンド(NBT形式)を繋げます。
◻︎コマンド 例
| .....["説明文"],enchantments={"minecraft:power":1}] 1 |
「射撃ダメージ増加LV1」のエンチャントを付けた場合。
ダメージを検知。
「連射の弓」を持っているプレイヤーの周辺で、ダメージを受けたモブを検知。コマンドを実行します。

「A」はチェスト。
【Java版】
| ①execute at @e[type=!player,nbt={HurtTime:1s}] as @a[distance=..20,nbt={SelectedItem:{components:{"minecraft:custom_name":"連射の弓"}}}] run summon arrow ~ ~3 ~ ②execute at @e[type=!player,nbt={HurtTime:1s}] as @a[distance=..20,nbt={SelectedItem:{components:{"minecraft:custom_name":"連射の弓"}}}] run particle happy_villager ~ ~ ~ 1 1 1 0 6 force |
【装置の起動】①②
「連射の弓」をメインハンドに持っているプレイヤーの20ブロック以内でモブがダメージを受けた時、 頭上に矢を召喚し、パーティクルを再生。※アイテムIDや、説明文は省略可。
連射の弓【統合版】
今回はタグよりも管理の簡単なポーション式を採用。コマンドでしか装備出来ないアイテムを、オフハンドに設置することで、プレイヤーを絞ることが出来ます。ひとつの装置を、複数人で同時に使うことが出来ます。
装置のしくみ。
ダメージ検知が出来ないので、装備の耐久度を使ったループ装置を作ります。「負傷のポーション」を捨てるとオフハンドに装着。さらに「連射の弓」を捨てると弓を装着(データ値800)。矢を射った時タグを付け、再び1回で壊れる弓をを装備。弓(データ値800)を持っている時、タグ付き矢の近くのモブ1体に矢を降らせます。
モブがタグ付き矢から離れた時、弓(データ値800)を持ち替えた時、タグや矢が削除されます。ポーションを外すと装置を停止。落とした「連射の弓」も、インベントリに戻ります。※ホットバー「0」のアイテムは、弓に置き換えられます。連射中の矢は無限ですが、射った矢は減ります。ポーションは検知範囲が狭いので、下を向きながら捨てます。

弓の入手(名前を変更)。
金床を使ってオウムガイを「連射の弓」に変更。※名前が同じなら、他のアイテムでも動作します。誤射する場合があるので、弓や矢は非推奨。

ポーションを入手。
装置はポーションと「連射の弓」の組み合わせで動く、ダブルトリガーを採用。スコアボードで回数を決めたり、購入アイテムにしたり、ポーションをうまく管理することで、使う場所を限定することが出来ます。今回の装置では「負傷のポーション」を、1人1個しか持てないようにしています。
◻︎コマンド 例
| /give @s potion 1 23 |
負傷のポーションを1個入手するコマンド。
捨てる式。
ポーションを捨てた時、オフハンドにポーションを設置します。オフハンドに盾など、アイテムを持っている時は使えません。一度外してから使用してください。※長いコマンドは、メモ帳やテキストエディタを使うと見やすくなります。

「A」はチェスト。⑥は条件付き。
【統合版】
| ①execute at @a[hasitem={item=bow,data=800,quantity=2..}] run clear @a[r=1,c=1] bow 800 ②execute at @a[hasitem={item=potion,data=23,quantity=2..}] run clear @a[r=1,c=1] potion 23 1 ------ ③execute at @a[hasitem={item=potion,data=23,location=slot.inventory}] run clear @a[r=1,c=1] bow 800 ④execute at @a[hasitem={item=potion,data=23,location=slot.hotbar}] run clear @a[r=1,c=1] bow 800 ------ ⑤execute at @e[name=負傷のポーション] run replaceitem entity @p[r=1] slot.weapon.offhand 0 keep potion 1 23 ⑥kill @e[name=負傷のポーション] ------ ⑦execute at @e[name=連射の弓] run replaceitem entity @a[r=1,hasitem= {item=potion,data=23,location=slot.weapon.offhand}] slot.hotbar 0 bow 1 800 ⑧execute at @a[hasitem={item=potion,data=23,location=slot.weapon.offhand}] run tp @e[name=連射の弓,r=3] ~~~ ------ ⑨execute at @a[hasitem={item=potion,data=23,location=slot.weapon.offhand}] run tag @e[r=3,type=arrow] add rap |
◻︎弓(データ値800)
【数の制限】①②
弓、負傷のポーションが2個以上になった時、1個を削除。
------
【装置の停止】③④
負傷のポーションを外した時、弓を削除。
------
【装置の起動】⑤⑥
負傷のポーションが落ちている時、近くのプレイヤーに、負傷のポーションを設置。
------
【ターゲットの検知】⑦⑧
「連射の弓」をプレイヤーに戻す。
------
【タグ付け】⑨
射った矢に、タグ「rap」を付ける。
ループ装置。
マルチプレイ対応。弓の破壊と装備の、最小ループ装置になります。コマンドブロックを減らすため、一部を共有しています。

②は動力が必要。赤色のテラコッタにレッドストーントーチ。⑤はティックの遅延:10。(最初のティックで実行:オフ)
【統合版】
| ①execute unless entity @a[hasitem={item=bow,data=800,location=slot.weapon.mainhand,quantity=1}] ②kill @e[name=弓] ------ ③execute unless entity @a[hasitem={item=bow,data=800,quantity=1}] ④⑥replaceitem entity @a[hasitem={item=potion,data=23,location=slot.weapon.offhand}] slot.hotbar 0 bow 1 800 ------ ⑤execute unless entity @a[hasitem={item=bow,data=800,quantity=0}] |
◻︎弓(データ値800)
【装置の起動】①②
メインハンドに弓がない時、ホットバー「0」に弓を設置。
------
【弓の装備a】③④
弓を持っていない時、ホットバー「0」に弓を設置。
------
【弓の装備b】⑤⑥
弓を持っている時、信号を出す。ホットバー「0」に弓を設置。
効果の再生。
タグ付き矢を基準にモブを絞り、連続で矢を召喚したり、パーティクルを再生。不要な矢も削除します。※敵対モブ対象。

③は動力が必要。レッドストーントーチ。①はティックの遅延:30。②はティックの遅延:40。④はティックの遅延:10。①②④は最初のティックで実行:オフ。
【統合版】
| ①execute if entity @a[hasitem={item=bow,data=800,location=slot.weapon.mainhand}] as @e[tag=rap] at @e[c=1,family=monster] run particle minecraft:critical_hit_emitter ~~2~ ------ ②execute at @e[tag=rap] unless entity @e[family=monster,r=6] ③kill @e[tag=rap] ------ ④execute if entity @a[hasitem={item=bow,data=800,location=slot.weapon.mainhand}] as @e[tag=rap] at @e[c=1,family=monster] run summon arrow ~~3~ ------ ⑤kill @e[type=arrow] |
◻︎弓(データ値800)
【効果の再生a】①
タグ「rap」近くのモブに、パーティクルを再生。(1.5秒間隔)
-----
【効果の停止】②③⑤
タグ「rap」からモブが離れた時、タグ「rap」、矢を削除。(2秒後)
-----
【効果の再生b】④
タグ「rap」近くのモブの頭上に、矢を召喚。(0.5秒間隔)
矢はモブに当てずに近くを狙います。①④弓(データ値800)をメインハンドに持っていないと、矢の連射やパーティクルは再生されません。速さは、ティックの遅延で変更出来ます。
ワールドデータ
ワールドデータは、コマンド入力不要。アイテムの入った「トラップチェスト」を開くと装置が起動します。
完成データをダウンロード。
ダウンロード先/連射の弓v1.30
◻︎統合版【武器・防具・道具】連射の弓v1.30.mcworld
iOS、Android/Minecraftで開く。Windows/ダブルクリックでインポート。
◻︎Java版【武器・防具・道具】連射の弓v1.30v.zip
解凍後、ワールド内の「saves」フォルダに入れる。
※二次配布は禁止です。