Step 1: Let's get our custom bow with the superflecha
tag and a slight name effect.
give @a bow[minecraft:custom_data={superflecha:1b},minecraft:rarity=rare]
Step 2: Now, we need to place a Repeat command block set to Always Active with the following command:
execute as @e[type=arrow,nbt={inGround:0b},tag=!flecha] if items entity @p weapon.mainhand minecraft:bow[minecraft:custom_data={superflecha:1b}] run tag @s add flecha
This command detects if the arrow is still in the air and if the nearby player has the custom bow in hand.
If the player is holding this bow, the fired arrow will receive a tag.
Step 3: Now we’ll detect if the tagged arrow has hit the ground to trigger our function.
Place this command in a Repeat command block set to Always Active:
execute at @e[type=arrow,tag=flecha,nbt={inGround:1b}] run function comandos:tnt_arrow
If you don’t know how to create a function, watch this video to learn.
Below are the commands inside the function that will instantly summon TNT and remove the arrow to prevent infinite TNT explosions:
summon tnt ~ ~ ~ {fuse:0}
kill @e[tag=flecha]