INIT:scoreboard objectives add RpLd_I dummy
INIT:scoreboard objectives add RpLd_Tick dummy
INIT:scoreboard objectives add RpLd_Dest dummy
INIT:tellraw @a [{"color":"green","bold":true,"text":"Rope Ladders "},{"color":"dark_aqua","text":"has been "},{"color":"green","bold":true,"text":"installed!"}]
INIT:tellraw @a {"color":"red","text":"Command created by MrGarretto"}
scoreboard players set @e[type=Item] RpLd_I 1 {Item:{id:"minecraft:string"}}
scoreboard players set @e[type=Item] RpLd_I 2 {Item:{id:"minecraft:ladder"}}
execute @e[score_RpLd_I_min=1,score_RpLd_I=1] ~ ~ ~ execute @e[r=1,score_RpLd_I_min=2,score_RpLd_I=2] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:"minecraft:spawn_egg",Count:1,tag:{EntityTag:{id:Squid},display:{Name:"RopeLadder"}}}}
execute @e[score_RpLd_I_min=1,score_RpLd_I=1] ~ ~ ~ execute @e[r=1,score_RpLd_I_min=2,score_RpLd_I=2] ~ ~ ~ particle smoke ~ ~ ~ 0 0 0 0.1 100
execute @e[score_RpLd_I_min=1,score_RpLd_I=1] ~ ~ ~ execute @e[r=1,score_RpLd_I_min=2,score_RpLd_I=2] ~ ~ ~ playsound block.fire.extinguish neutral @a ~ ~ ~ 1 1
execute @e[score_RpLd_I_min=1,score_RpLd_I=1] ~ ~ ~ execute @e[r=1,score_RpLd_I_min=2,score_RpLd_I=2] ~ ~ ~ kill @e[type=Item,r=3,score_RpLd_I_min=1,score_RpLd_I=2]
/execute @a[rym=46,ry=135] ~ ~ ~ execute @e[type=Squid,name=RopeLadder,c=3,r=12] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLWest"}
/execute @a[rym=136,ry=-135] ~ ~ ~ execute @e[type=Squid,name=RopeLadder,c=3,r=12] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLNorth"}
/execute @a[rym=-134,ry=-45] ~ ~ ~ execute @e[type=Squid,name=RopeLadder,c=3,r=12] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLEast"}
/execute @a[rym=-44,ry=45] ~ ~ ~ execute @e[type=Squid,name=RopeLadder,c=3,r=12] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLSouth"}
# Universal base ladder tracker armorstand
/execute @a ~ ~ ~ execute @e[type=Squid,name=RopeLadder,c=3,r=12] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLBase"}
/tp @e[type=Squid,name=RopeLadder] ~ ~-500 ~
# Make the rope ladders work
/scoreboard players add @e[type=ArmorStand,name=RLWest] RpLd_Tick 1
/scoreboard players add @e[type=ArmorStand,name=RLNorth] RpLd_Tick 1
/scoreboard players add @e[type=ArmorStand,name=RLEast] RpLd_Tick 1
/scoreboard players add @e[type=ArmorStand,name=RLSouth] RpLd_Tick 1
/execute @e[type=ArmorStand,name=RLWest,score_RpLd_Tick=10] ~ ~ ~ setblock ~ ~ ~ ladder 5 replace
/execute @e[type=ArmorStand,name=RLNorth,score_RpLd_Tick=10] ~ ~ ~ setblock ~ ~ ~ ladder 3 replace
/execute @e[type=ArmorStand,name=RLEast,score_RpLd_Tick=10] ~ ~ ~ setblock ~ ~ ~ ladder 4 replace
/execute @e[type=ArmorStand,name=RLSouth,score_RpLd_Tick=10] ~ ~ ~ setblock ~ ~ ~ ladder 2 replace
/kill @e[type=ArmorStand,name=RLWest,score_RpLd_Tick_min=11]
/kill @e[type=ArmorStand,name=RLNorth,score_RpLd_Tick_min=11]
/kill @e[type=ArmorStand,name=RLEast,score_RpLd_Tick_min=11]
/kill @e[type=ArmorStand,name=RLSouth,score_RpLd_Tick_min=11]
/execute @e[score_RpLd_Tick_min=5,score_RpLd_Tick=5] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLBlock"}
# Don't let people get free ladders
/execute @e[type=ArmorStand,name=RLBlock] ~ ~ ~ kill @e[score_RpLd_I_min=2,r=3]
# Make the ladder extensions work
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLWest] ~ ~ ~ detect ~ ~-1 ~ air 0 summon ArmorStand ~ ~-1 ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLWest"}
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLWest] ~ ~ ~ detect ~-1 ~-1 ~ air 0 setblock ~-1 ~-1 ~ barrier 0
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLNorth] ~ ~ ~ detect ~ ~-1 ~ air 0 summon ArmorStand ~ ~-1 ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLNorth"}
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLNorth] ~ ~ ~ detect ~ ~-1 ~-1 air 0 setblock ~ ~-1 ~-1 barrier 0
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLEast] ~ ~ ~ detect ~ ~-1 ~ air 0 summon ArmorStand ~ ~-1 ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLEast"}
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLEast] ~ ~ ~ detect ~1 ~-1 ~ air 0 setblock ~1 ~-1 ~ barrier 0
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLSouth] ~ ~ ~ detect ~ ~-1 ~ air 0 summon ArmorStand ~ ~-1 ~ {Marker:1,Invisible:1,NoGravity:1,CustomName:"RLSouth"}
/execute @e[type=ArmorStand,score_RpLd_Tick_min=10,name=RLSouth] ~ ~ ~ detect ~ ~-1 ~1 air 0 setblock ~ ~-1 ~1 barrier 0
# Remove all of the ladder and drop the item if the top one is destroyed, or do the same thing, without dropping the item if any other part is destroyed
/execute @e[type=ArmorStand,name=RLBlock] ~ ~ ~ detect ~ ~ ~ air 0 summon ArmorStand ~ ~ ~ {NoGravity:1,Marker:1,Invisible:1,CustomName:"RLDestroy"}
/execute @e[type=ArmorStand,name=RLBase] ~ ~ ~ detect ~ ~ ~ air 0 summon ArmorStand ~ ~ ~ {NoGravity:1,Marker:1,Invisible:1,CustomName:"RLDestroy"}
/execute @e[type=ArmorStand,name=RLBase] ~ ~ ~ detect ~ ~ ~ air 0 summon Item ~ ~ ~ {Item:{id:"minecraft:spawn_egg",Count:1,tag:{EntityTag:{id:Squid},display:{Name:"RopeLadder"}}}}
/execute @e[type=ArmorStand,name=RLBase] ~ ~ ~ detect ~ ~ ~ air 0 particle smoke ~ ~ ~ 0 0 0 0.3 100
/execute @e[type=ArmorStand,name=RLBase] ~ ~ ~ detect ~ ~ ~ air 0 playsound entity.zombie.break_door_wood neutral @a ~ ~ ~ 1 1
/execute @e[type=ArmorStand,name=RLBase] ~ ~ ~ detect ~ ~ ~ air 0 kill @e[type=ArmorStand,name=RLBase,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ kill @e[type=ArmorStand,name=RLWest,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ kill @e[type=ArmorStand,name=RLNorth,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ kill @e[type=ArmorStand,name=RLEast,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ kill @e[type=ArmorStand,name=RLSouth,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ kill @e[type=ArmorStand,name=RLBase,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ kill @e[type=ArmorStand,name=RLBlock,r=1]
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ setblock ~ ~ ~ air 0 replace
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ fill ~-1 ~ ~-1 ~1 ~ ~1 air 0 replace barrier
/execute @e[type=ArmorStand,name=RLDestroy] ~ ~ ~ detect ~ ~-1 ~ ladder -1 summon ArmorStand ~ ~-1 ~ {NoGravity:1,Marker:1,Invisible:1,CustomName:"RLDestroy"}
/scoreboard players add @e[type=ArmorStand,name=RLDestroy] RpLd_Dest 1
/kill @e[type=ArmorStand,name=RLDestroy,score_RpLd_Dest_min=20]