Spear Dispenser

A dispenser that can pop out spears!

Supported Versions:

26.1.2+

Commands by Row:

Row 1

1. [repeat] /execute as @e[type=minecraft:armor_stand,tag=spearDispenser] at @s if block ~ ~-1 ~ minecraft:dispenser{Items:[{id:"minecraft:diamond_spear"}]} run summon minecraft:armor_stand ~-.2 ~-.6 ~-.05 {ShowArms:1,Pose:{RightArm:[0f,270f,270f]},equipment:{mainhand:{id:"minecraft:diamond_spear",count:1}},NoGravity:1,Tags:["spearDispenserSpear"],Invisible:1,Marker:1}
2. [chain] /execute as @e[type=minecraft:armor_stand,tag=spearDispenser] at @s if block ~ ~-1 ~ minecraft:dispenser{Items:[{id:"minecraft:diamond_spear"}]} run summon minecraft:armor_stand ~.05 ~-.6 ~-.17 {ShowArms:1,Pose:{RightArm:[0f,270f,270f]},Rotation:[90f,0f],equipment:{mainhand:{id:"minecraft:diamond_spear",count:1}},NoGravity:1,Tags:["spearDispenserSpear"],Invisible:1,Marker:1}
3. [chain] /execute as @e[type=minecraft:armor_stand,tag=spearDispenser] at @s if block ~ ~-1 ~ minecraft:dispenser{Items:[{id:"minecraft:diamond_spear"}]} run data merge entity @s {Invisible:1,Marker:1}
4. [chain] /execute as @e[type=minecraft:armor_stand,tag=spearDispenser] at @s if block ~ ~-1 ~ minecraft:dispenser{Items:[{id:"minecraft:diamond_spear"}]} run data modify block ~ ~-1 ~ Items set value []

Row 2

5. [repeat] /execute positioned as @e[tag=spearDispenser] if block ~ ~-1 ~ minecraft:dispenser[triggered=false] as @e[tag=spearDispenserSpear,distance=..1] at @s if block ~ ~ ~ minecraft:dispenser run tp @s ~ ~-2 ~
6. [chain] /execute as @e[tag=spearDispenser] at @s if block ~ ~-1 ~ minecraft:dispenser[triggered=true] if entity @e[tag=spearDispenserSpear,distance=..3] run damage @p[distance=..1] 1
7. [chain] /execute positioned as @e[tag=spearDispenser] if block ~ ~-1 ~ minecraft:dispenser[triggered=true] positioned ~ ~-2 ~ as @e[tag=spearDispenserSpear,distance=..1] at @s run tp @s ~ ~2 ~

Row 3

8. [repeat] /execute positioned as @e[tag=spearDispenser] unless block ~ ~-1 ~ minecraft:dispenser as @e[tag=spearDispenserSpear,distance=..1] at @s run kill @s
9. [chain] /execute positioned as @e[tag=spearDispenser] unless block ~ ~-1 ~ minecraft:dispenser positioned ~ ~-2 ~ as @e[tag=spearDispenserSpear,distance=..1] at @s run kill @s
10. [chain] /execute as @e[tag=spearDispenser] at @s unless block ~ ~-1 ~ minecraft:dispenser run kill @s

Preview

repeat
chain
chain
chain
repeat
chain
chain
repeat
chain
chain

Video

Too lazy to copy and paste each command?