MrGarretto's One-Command Creations

Giving the modded minecraft feeling to vanilla

Present Courrier command (1.10.2)
About this command
Help Santa deliver the rest of the presents to all of the houses! Ride in a sleigh and drop as many presents as you can in 3 minutes.
Show source commands

# Christmas present delivery game (Present Couriers - PrCo)

# Global stuff

# Set sendCommandFeedback to false
INIT:gamerule sendCommandFeedback false

# Global scoreboard (multiple uses)
INIT:scoreboard objectives add PCg dummy

# Global armorstand
#INIT:kill @e[type=ArmorStand,name=PRCOGlobal]
#INIT:summon ArmorStand ~ ~ ~ {CustomName:PRCOGlobal,Invisible:1,Marker:1,NoGravity:1}

# Stripes on the box
INIT:summon ArmorStand ~ ~-5 ~-6 {CustomName:PCsi,Invisible:1,NoGravity:1}
execute @e[type=ArmorStand,name=PCsi] ~ ~ ~ fill ~ ~ ~ ~30 ~12 ~ stained_hardened_clay 0 replace stained_hardened_clay 14
tp @e[type=ArmorStand,name=PCsi] ~ ~ ~2
scoreboard players add @e[type=ArmorStand,name=PCsi] PCg 1
kill @e[type=ArmorStand,name=PCsi,score_PCg_min=10]

# Floor crafting

INIT:scoreboard objectives add PCi dummy
scoreboard players set @e[type=Item] PCi 1 {Item:{id:"minecraft:end_rod"},OnGround:1b}
scoreboard players set @e[type=Item] PCi 2 {Item:{id:"minecraft:redstone_torch"},OnGround:1b}
execute @e[score_PCi_min=1,score_PCi=1] ~ ~ ~ execute @e[r=1,score_PCi_min=2,score_PCi=2] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:armor_stand,Count:1,tag:{EntityTag:{CustomName:PCsw},ench:[{id:unbreaking,lvl:1}],display:{Name:"The North Pole"}}}}
execute @e[score_PCi_min=1,score_PCi=1] ~ ~ ~ execute @e[r=1,score_PCi_min=2,score_PCi=2] ~ ~ ~ particle blockcrack 312 56 -1207 0.5 0 0.5 1 100 force @a 80
execute @e[score_PCi_min=1,score_PCi=1] ~ ~ ~ execute @e[r=1,score_PCi_min=2,score_PCi=2] ~ ~ ~ kill @e[type=Item,r=3,score_PCi_min=1,score_PCi=2]

# Summoning the "North Pole"

scoreboard players tag @e[type=ArmorStand,name=PCsw] add PCpe
execute @e[tag=PCpe] ~ ~ ~ particle snowballpoof ~ ~ ~ 0.2 1 0.2 1 1000
execute @e[tag=PCpe] ~ ~ ~ summon ArmorStand ~ ~-.66 ~ {CustomName:PCpa,Invisible:1,NoGravity:1,Small:1,ArmorItems:[{},{},{},{id:stained_hardened_clay,Damage:14}],DisabledSlots:1}
execute @e[tag=PCpe] ~ ~ ~ summon ArmorStand ~ ~-.2225 ~ {CustomName:PCpa,Invisible:1,NoGravity:1,Small:1,ArmorItems:[{},{},{},{id:quartz_block}]}
execute @e[tag=PCpe] ~ ~ ~ summon ArmorStand ~ ~.215 ~ {CustomName:PCpa,Invisible:1,NoGravity:1,Small:1,ArmorItems:[{},{},{},{id:stained_hardened_clay,Damage:14}],DisabledSlots:1}
execute @e[tag=PCpe] ~ ~ ~ summon ArmorStand ~ ~.6525 ~ {CustomName:PCpa,Invisible:1,NoGravity:1,Small:1,ArmorItems:[{},{},{},{id:quartz_block}],DisabledSlots:1}
execute @e[tag=PCpe] ~ ~ ~ summon ArmorStand ~ ~.4 ~ {CustomName:PCppl,Invisible:1,NoGravity:1,ArmorItems:[{},{},{},{id:gold_block}],DisabledSlots:1}
execute @e[tag=PCpe] ~ ~ ~ scoreboard players set @e[type=ArmorStand,name=PCppl] PCg 300
scoreboard players tag @e[type=ArmorStand,name=PCppl] add PCma
kill @e[tag=PCpe]

# Rotate the top of the pole
tp @e[type=ArmorStand,name=PCppl] ~ ~ ~ ~3 ~

# Snow generator
execute @e[tag=PCma,score_PCg_min=1] ~ ~ ~
scoreboard players remove @e[tag=PCma,score_PCg_min=-60] PCg 1
execute @e[tag=PCma,score_PCg=0] ~ ~ ~ tp @e[type=ArmorStand,name=PCpa,r=6,c=5] ~ ~-0.05 ~
tp @e[tag=PCma,score_PCg=0] ~ ~-0.05 ~

# Randomize snow layers via /spreadplayers
execute @e[tag=PCma,score_PCg_min=1] ~ ~ ~ spreadplayers ~ ~ 1 12 false @e[type=ArmorStand,name=PCsn]
execute @e[type=ArmorStand,name=PCsn] ~ ~ ~ setblock ~ ~ ~ snow_layer
execute @e[type=ArmorStand,name=PCsn] ~ ~ ~ fill ~-1 ~-1 ~ ~1 ~-1 ~ snow
execute @e[type=ArmorStand,name=PCsn] ~ ~ ~ fill ~ ~-1 ~-1 ~ ~-1 ~1 snow
execute @e[type=ArmorStand,name=PCsn] ~ ~ ~ detect ~ ~-1 ~ snow_layer -1 fill ~ ~ ~ ~ ~ ~ air 0 replace snow_layer
execute @e[type=ArmorStand,name=PCsn] ~ ~ ~ detect ~ ~-1 ~ snow_layer -1 setblock ~ ~-1 ~ snow_layer 1
kill @e[type=ArmorStand,name=PCsn]
execute @e[tag=PCma,score_PCg_min=1] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:PCsn,Invisible:1,NoGravity:1}

# Keep the pole on top of the snow
execute @e[type=ArmorStand,name=PCppl,score_PCg_min=1] ~ ~ ~ detect ~ ~ ~ snow -1 tp @e[type=ArmorStand,r=5] ~ ~.5 ~

# Santa sleigh
# Initial creation of the sleigh
# Sleigh part id tracker scoreboard objective
INIT:scoreboard objectives add PrCoCurID dummy
scoreboard players set @e[tag=PCma,score_PCg_min=1,score_PCg=1] PrCoCurID 0

# One of these groups of commands must be added for each block type (also, I should test all of this tomorrow, because I haven't actually tested it yet, with the scoreboard players operation stuff)
scoreboard players add @e[tag=PCma,score_PCg_min=-30,score_PCg=1] PrCoCurID 1
execute @e[tag=PCma,score_PCg_min=-19,score_PCg=0] ~ ~ ~ summon ArmorStand ~-60 ~30 ~ {CustomName:PCpt,Passengers:[{id:FallingSand,CustomName:PRCOfs,Time:1,Block:stained_hardened_clay,Data:14}],NoGravity:1,Invisible:1,DisabledSlots:1}
execute @e[tag=PCma,score_PCg_min=-19,score_PCg=0] ~ ~ ~ scoreboard players add @e[type=ArmorStand,name=PCpt] PCg 0
execute @e[tag=PCma,score_PCg_min=-19,score_PCg=0] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=PCpt,score_PCg=0] PCg = @e[tag=PCma] PrCoCurID

scoreboard players add @e[tag=PCma,score_PCg_min=-30,score_PCg=1] PrCoCurID 1
execute @e[tag=PCma,score_PCg_min=-7,score_PCg=0] ~ ~ ~ summon ArmorStand ~-60 ~30 ~ {CustomName:PCpt,ArmorItems:[{},{},{},{id:iron_bars}],NoGravity:1,Pose:{Head:[0f,0f,90f]},Invisible:1,DisabledSlots:1}
execute @e[tag=PCma,score_PCg_min=-19,score_PCg=0] ~ ~ ~ scoreboard players add @e[type=ArmorStand,name=PCpt] PCg 0
execute @e[tag=PCma,score_PCg_min=-19,score_PCg=0] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=PCpt,score_PCg=0] PCg = @e[tag=PCma] PrCoCurID

execute @e[tag=PCma,score_PCg_min=10,score_PCg=10] ~ ~ ~ summon ArmorStand ~-60 ~30 ~ {CustomName:PCsg,NoGravity:1,Invisible:1,DisabledSlots:1,Marker:1}
execute @e[tag=PCma,score_PCg_min=-9,score_PCg=-9] ~ ~ ~ summon EntityHorse ~-60 ~30 ~ {CustomName:Reindeer,NoAI:1,Variant:3}
execute @e[tag=PCma,score_PCg_min=-9,score_PCg=-9] ~ ~ ~ summon MinecartRideable ~-60 ~30 ~ {CustomName:PCst,NoAI:1,ActiveEffects:[{Id:14,Amplifier:0,Duration:1000000,ShowParticles:0b}]}
# Randomizer armorstands
execute @e[tag=PCma,score_PCg_min=-9,score_PCg=-9] ~ ~ ~ summon ArmorStand ~-60 ~30 ~ {CustomName:PCr1,NoGravity:1,Invisible:1,Marker:1}
execute @e[tag=PCma,score_PCg_min=-9,score_PCg=-9] ~ ~ ~ summon ArmorStand ~-60 ~30 ~ {CustomName:PCr2,NoGravity:1,Invisible:1,Marker:1}
scoreboard players tag @e[type=ArmorStand,name=PCr1] add PrCoR
scoreboard players tag @e[type=ArmorStand,name=PCr2] add PrCoR
scoreboard players tag @e[tag=PrCoR] add PCpt
execute @e[tag=PCma,score_PCg_min=-9,score_PCg=-9] ~ ~ ~ scoreboard players set @a PrCoP 0

# Keep the time always at 1 on the falling sand so it doesn't pop off
entitydata @e[type=FallingSand,name=PRCOfs] {Time:1}

# Constantly add 1 to the sleigh's global score (-30 is less than it needs to be, just to be safe)
scoreboard players add @e[tag=PCs] PCg 0
scoreboard players add @e[tag=PCs,score_PCg=210] PCg 1

# Always keep the sleigh parts in their correct locations around the name=PCsg armor stand (tag=PCs)
scoreboard players tag @e[type=ArmorStand,name=PCsg] add PCs
execute @e[tag=PCs,score_PCg_min=40] ~ ~ ~ tp @e[tag=PCpt,type=!MinecartRideable] @e[tag=PCs,c=1,r=1]
scoreboard players tag @e[type=ArmorStand,name=PCpt] add PCpt
scoreboard players tag @e[type=EntityHorse,name=Reindeer] add PCpt
scoreboard players tag @e[type=MinecartRideable,name=PCst] add PCpt
# Second from bottom layer of blocks on the sleigh (all red stained clay blocks)
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=3,score_PCg=3,c=1] ~-2 ~ ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=5,score_PCg=5,c=1] ~-2 ~ ~
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=7,score_PCg=7,c=1] ~-2 ~ ~1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=9,score_PCg=9,c=1] ~-1 ~-.1 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=11,score_PCg=11,c=1] ~-1 ~-.1 ~
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=13,score_PCg=13,c=1] ~-1 ~-.1 ~1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=15,score_PCg=15,c=1] ~ ~-.2 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=17,score_PCg=17,c=1] ~ ~-.2 ~
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=19,score_PCg=19,c=1] ~ ~-.2 ~1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=21,score_PCg=21,c=1] ~1 ~-.3 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=23,score_PCg=23,c=1] ~1 ~-.3 ~
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=25,score_PCg=25,c=1] ~1 ~-.3 ~1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=27,score_PCg=27,c=1] ~1.5 ~.3 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=29,score_PCg=29,c=1] ~1.5 ~.3 ~
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=31,score_PCg=31,c=1] ~1.5 ~.3 ~1
# Third from bottom layer
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=33,score_PCg=33,c=1] ~-2 ~1 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=35,score_PCg=35,c=1] ~-2 ~1 ~
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=37,score_PCg=37,c=1] ~-2 ~1 ~1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=39,score_PCg=39,c=1] ~-1 ~.9 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=41,score_PCg=41,c=1] ~-1 ~.9 ~1
# Iron Bars
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=4,score_PCg=4,c=1] ~-2 ~-.4 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=6,score_PCg=6,c=1] ~-2 ~-.4 ~1.6
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=8,score_PCg=8,c=1] ~-1 ~-.4 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=10,score_PCg=10,c=1] ~-1 ~-.4 ~1.6
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=12,score_PCg=12,c=1] ~ ~-.4 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=14,score_PCg=14,c=1] ~ ~-.4 ~1.6
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=16,score_PCg=16,c=1] ~1 ~-.2 ~-1
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[tag=PCpt,score_PCg_min=18,score_PCg=18,c=1] ~1 ~-.2 ~1.6
# Reindeer
execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ tp @e[type=EntityHorse,name=Reindeer] ~3.8 ~1.2 ~ -90 ~
# Seat (first person view and side-view)
execute @a[score_PCv=0] ~ ~ ~ execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ teleport @e[type=MinecartRideable,name=PCst] ~ ~2 ~ -90 ~
execute @a[score_PCv_min=1] ~ ~ ~ execute @e[tag=PCs,score_PCg_min=26] ~ ~ ~ teleport @e[type=MinecartRideable,name=PCst] ~ ~-1 ~-9 0 20

# Make reindeer and seat invincible
effect @e[tag=PCpt,type=MinecartRideable] resistance 99999 5 true


# Sleigh movement & stages for spawning in

# Keep the area around the sleigh free of blocks
execute @e[tag=PCs] ~ ~ ~ fill ~-3 ~1 ~-2 ~5 ~6 ~2 air 0 destroy

# Sleigh stages
tp @e[tag=PCs,score_PCg_min=50,score_PCg=100] ~.4 ~-.4 ~
tp @e[tag=PCs,score_PCg_min=101,score_PCg=140] ~.4 ~-.2 ~
tp @e[tag=PCs,score_PCg_min=141,score_PCg=210] ~.3 ~-.048 ~

# Control panel in chat
tellraw @a[score_PCg_min=1] [{"text":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Switch View ] ","color":"green","clickEvent":{"action":"run_command","value":"/scoreboard players set @p[score_PCg_min=1,r=1] PCg 2"}},{"text":" [ Drop Present ] ","color":"red","clickEvent":{"action":"run_command","value":"/scoreboard players set @p[score_PCg_min=1,r=1] PCg 3"}},{"text":" Presents Delivered: ","color":"dark_red"},{"score":{"name":"@a[score_PCg_min=1]","objective":"PrCoP"},"color":"yellow"},{"text":"\n"}]

scoreboard players set @a[score_PCg=0] PCv 0

# Players with PCg=2 are switching view
# Players with PCg=3 are dropping a present

# View switching while riding the sleigh
INIT:scoreboard objectives add PCv dummy
scoreboard players add @a PCv 0
scoreboard players add @a[score_PCg_min=2,score_PCg=2] PCv 1
scoreboard players set @a[score_PCv_min=2] PCv 0

# Dropping a present
execute @a[score_PCg_min=3,score_PCe=0] ~ ~ ~ playsound block.piston.extend @p ~ ~ ~ 0.5 1
execute @a[score_PCg_min=3,score_PCe=0] ~ ~ ~ execute @e[tag=PCs,c=1,r=16] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:PCp,Invisible:1,ArmorItems:[{},{},{},{id:skull,Damage:3,tag:{SkullOwner:Hannah4848}}]}
scoreboard players set @a[score_PCg_min=3,score_PCe=0] PCe 15

scoreboard players add @a PCe 0
scoreboard players remove @a[score_PCe_min=1] PCe 1

# Destroy presents that missed
scoreboard players add @e[type=ArmorStand,name=PCp] PCe 1 {OnGround:1b}
execute @e[type=ArmorStand,name=PCp,score_PCe_min=4] ~ ~ ~ particle smoke ~ ~ ~ 0 0 0 0.1 400
execute @e[type=ArmorStand,name=PCp,score_PCe_min=4] ~ ~ ~ execute @a ~ ~ ~ playsound block.fire.extinguish @p ~ ~ ~ 0.5 1.5
kill @e[type=ArmorStand,name=PCp,score_PCe_min=4]

# Detect riding sleigh
scoreboard players set @a PCg 0
scoreboard players set @a PCg 1 {RootVehicle:{Entity:{id:MinecartRideable,CustomName:PCst}}}


# The sleigh movement for the game

# Make the counter continue if the player is riding
execute @a[score_PCg_min=1] ~ ~ ~ scoreboard players set @e[tag=PCs,score_PCg_min=211,score_PCg=211] PCg 212
scoreboard players add @e[tag=PCs,score_PCg_min=212,score_PCe=0] PCg 1

tp @e[tag=PCs,score_PCg_min=232,score_PCg=285,score_PCe=0] ~.2 ~.2 ~
tp @e[tag=PCs,score_PCg_min=286,score_PCg=330,score_PCe=0] ~.25 ~.36 ~
execute @a[score_PCtm_min=1] ~ ~ ~ tp @e[tag=PCs,score_PCg_min=331,score_PCe=0] ~.3 ~ ~


# House spawning
execute @a[score_PCtm_min=100] ~ ~ ~ scoreboard players add @e[tag=PCs,score_PCg_min=332] PCv 1
# Placing the armorstand
execute @e[tag=PCs,score_PCv_min=160] ~ ~ ~ summon ArmorStand ~70 ~-10 ~ {CustomName:PCh,Invisible:1,Marker:1}
scoreboard players set @e[tag=PCs,score_PCv_min=160] PCv 0
# Detect when the armorstand hits the ground
scoreboard players add @e[type=ArmorStand,name=PCh] PCv 1
execute @e[type=ArmorStand,name=PCh] ~ ~ ~ detect ~ ~-1 ~ air 0 scoreboard players set @e[name=PCh,c=1,r=1] PCv 0
# Place a house when it hits the ground
scoreboard players set @e[tag=PrCoR] PCg 0
execute @e[type=ArmorStand,name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ scoreboard players set @r[type=ArmorStand,tag=PrCoR] PCg 1
execute @e[name=PCr1,score_PCg_min=1] ~ ~ ~ execute @e[name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ fill ~-6 ~ ~-3 ~6 ~5 ~3 stained_hardened_clay 5 hollow
execute @e[name=PCr2,score_PCg_min=1] ~ ~ ~ execute @e[name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ fill ~-6 ~ ~-3 ~6 ~5 ~3 stained_hardened_clay 14 hollow
execute @e[type=ArmorStand,name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ fill ~-7 ~6 ~-4 ~7 ~6 ~4 stonebrick
execute @e[name=PCr1,score_PCg_min=1] ~ ~ ~ execute @e[name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ fill ~2 ~6 ~-1 ~5 ~8 ~1 brick_block 0 hollow
execute @e[name=PCr2,score_PCg_min=1] ~ ~ ~ execute @e[name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ fill ~3 ~6 ~-1 ~5 ~8 ~1 brick_block 0 hollow
execute @e[name=PCr1,score_PCg_min=1] ~ ~ ~ execute @e[name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ fill ~3 ~8 ~ ~4 ~8 ~ air
execute @e[name=PCr2,score_PCg_min=1] ~ ~ ~ execute @e[name=PCh,score_PCv_min=1,score_PCv=1] ~ ~ ~ setblock ~4 ~8 ~ air
execute @e[name=PCh,score_PCv_min=450] ~ ~ ~ fill ~-7 ~ ~-4 ~7 ~8 ~4 air
kill @e[name=PCh,score_PCv_min=450]

# Check for presents in chimneys
execute @e[type=ArmorStand,name=PCh] ~3 ~7 ~ execute @e[type=ArmorStand,name=PCp,r=1] ~ ~ ~ particle heart ~ ~ ~ .8 1.3 .8 1 1000
execute @e[type=ArmorStand,name=PCh] ~3 ~7 ~ execute @e[type=ArmorStand,name=PCp,r=1] ~ ~ ~ execute @a ~ ~ ~ playsound entity.experience_orb.touch @p
execute @e[type=ArmorStand,name=PCh] ~3 ~7 ~ execute @e[type=ArmorStand,name=PCp,r=1] ~ ~ ~ execute @a ~ ~ ~ playsound entity.villager.yes @a
execute @e[type=ArmorStand,name=PCh] ~3 ~7 ~ execute @e[type=ArmorStand,name=PCp,r=1] ~ ~ ~ scoreboard players add @p PrCoP 1
execute @e[type=ArmorStand,name=PCh] ~3 ~7 ~ kill @e[type=ArmorStand,name=PCp,r=1]

# Points
INIT:scoreboard objectives add PrCoP dummy

# Force the player back into the sleigh if they jump out mid-game
# scoreboard to track ejected state (scoreboard objective is also used to track present dropping cooldown)
INIT:scoreboard objectives add PCe dummy
scoreboard players set @e[tag=PCs] PCe 0
execute @a[score_PCg=0] ~ ~ ~ scoreboard players set @e[tag=PCs,score_PCg_min=332,r=30] PCe 1
execute @e[tag=PCs,score_PCe_min=1] ~ ~ ~ tp @p[r=12] @e[tag=PCpt,name=PCst,c=1,r=12]
execute @e[tag=PCs,score_PCe_min=1] ~ ~ ~ tp @e[name=PCst] ~ ~5.5 ~
execute @e[tag=PCs,score_PCe_min=1] ~ ~ ~ tp @p[r=12] ~ ~5 ~
execute @e[tag=PCs,score_PCe_min=1] ~ ~ ~ tellraw @p[r=12] {"text":"\n\n\n\n\n\n\n\n\n Right click to get back into the sleigh!\n","color":"yellow"}

# Timer
INIT:scoreboard objectives add PCtm dummy
execute @e[tag=PCs,score_PCg_min=232,score_PCg=232] ~ ~ ~ scoreboard players set @p PCtm 3600
execute @e[tag=PCs,score_PCg_min=233,score_PCe=0] ~ ~ ~ scoreboard players remove @p PCtm 1

# Ending
execute @a[score_PCtm=0] ~ ~ ~ detect ~ ~-2 ~ air 0 tp @e[tag=PCs] ~0.2 ~-0.2 ~
tellraw @a[score_PCtm=1] [{"text":"\n\n\n\n\n\n\n\n\n\n\n\nYou delivered ","color":"green"},{"score":{"name":"@a[score_PCg_min=1]","objective":"PrCoP"},"color":"red"},{"text":" presents in 3 minutes!\n"}]
tp @a[score_PCtm=-120] ~ ~ ~
execute @a[score_PCtm=-120] ~ ~ ~ tp @e[tag=PCpt,r=16] ~ ~-1000 ~
execute @a[score_PCtm=-120] ~ ~ ~ tp @e[tag=PCs,r=16] ~ ~-1000 ~
execute @a[score_PCtm=-120] ~ ~ ~ execute @e[name=PCpa] ~ ~ ~ kill @e[type=ArmorStand,r=6]
scoreboard players set @a[score_PCtm=-120] PCg 0
scoreboard players reset @a[score_PCtm=-120] PCtm

For Minecraft version 1.10.2
Click here for other versions of this command!
How to use
Give yourself a command block with /give @p command_block. Place it then paste the command from below into it. One command creations are similar to Minecraft mods, but are much easier to add to your world!
Click here for other versions of this command!