The way I can think of this works rather well. It involves the "arrow storm" activator being in a specific inventory slot, as if like an option.
First, you set a loop command block to this:
/replaceitem entity @a[m=2] slot.hotbar.0 minecraft:arrow 1 0 {display:{Name:"Activate Arrow Storm",Lore:[Select this slot to activate an arrow storm!]}}
Then have another loop command block activating the following:
/execute @a[tag=SelectedItemSlot:0,m=0] ~ ~ ~ summon arrow ~ ~10 ~ {Life:1000,pickup:0}
Along with another loop that does this:
/execute @a[tag=SelectedItemSlot:0,m=0] ~ ~ ~ summon creeper ~ ~9.9 ~ {ignited:1,ExplosionRadius:1,Fuse:1,Silent:1b,NoAI:1b}
I added tags to the arrows so that they could not be picked up {pickup:0} and despawned after 200 ticks {Life:1000}
The creepers are so the arrows fly everywhere, while allowing for the safety of the buildings if the command
/gamerule mobGreifing false
is executed. Notice that the creeper is slightly lower than the arrows so that they mostly fly upwards.
Have fun with your new arrow storm, or potential entity fountain! ;)
May require a powerful computer depending on how many people are going to use this.
May require several /replaceitem
commands to get rid of any arrows created by moving the arrows in the inventory.
Ah, this requires some help from our friend, the NOT gate. NOT gates will turn on when the lever is off... and turn off when the lever is on. Basically, you should build something like this:
And from the back:
The command block on the far left should contain the command
/setblock * * * minecraft:redstone_block
And the one on the far right:
/setblock * * * minecraft:air
Replace the * * * in both commands with the coordinates of where the redstone block should be placed.
Hope this helps!
Best Answer
Look at your command:
Notice that you have a
~
before every coordinate, meaning that you will replace a block relative to your position, and being 74 blocks above you, it might be outside the world.If you want to destroy a block at
(-147,74,-150)
you should remove the~
like so:As user3878893 pointed out, you also need to include a data value for the block to be placed. For regular blocks just use a
0
(as above).