Craft a ping pong table and play against friends or a villager! You can also watch 2 villagers play against eachother!
VIDEO
How to install
How to import this command into your world
First, you must give yourself a command block (If you are on a server, you must be 'OP'ed, and have access to /gamemode 1)
To get a command block, type
/give @p command_block in the chat.
Once you have a command block, right click it to open it's GUI.
Now, you must copy and paste the command from your browser into the game. Select the entire command from below, then right click and press 'copy'.
Next, go back to your minecraft world, and paste the command you just copied into the command block. There are a few different keys that may be used to do this, depending on your keyboard. The most common ones are 'CTRL + V', 'COMMAND + V', or 'STRG + V'
Finally, you can press done to exit the GUI, and execute the command block by powering it with a redstone block, a lever, or any thing you can get your grubby hands on. Just make sure you don't place it on top of the command block, or the machine will not be installed!
Show source commands
# Install messages
INIT:tellraw @a[r=200] {color:dark_aqua,text:"Table Tennis (A.K.A. Ping Pong) has been installed!"}
INIT:tellraw @a[r=200] {color:red,text:"Created by MrGarretto"}
INIT:tellraw @a[r=200] {text:"Click for MrGarretto on Youtube (Other creations like this!)",color:dark_red,clickEvent:{action:"open_url",value:"https://www.youtube.com/c/JustMrGarretto"}}
# Custom Crafting
INIT:scoreboard objectives add TNi dummy
scoreboard players set @e[type=Item] TNi 1 {Item:{id:minecraft:wooden_pressure_plate},OnGround:1b}
scoreboard players set @e[type=Item] TNi 2 {Item:{id:minecraft:stick},OnGround:1b}
execute @e[score_TNi_min=1,score_TNi=1] ~ ~ ~ execute @e[r=1,score_TNi_min=2,score_TNi=2] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:wooden_axe,Count:1,tag:{display:{Name:"Table Tennis Paddle"}}}}
execute @e[score_TNi_min=1,score_TNi=1] ~ ~ ~ execute @e[r=1,score_TNi_min=2,score_TNi=2] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=1,score_TNi=2]
scoreboard players set @e[type=Item] TNi 3 {Item:{id:minecraft:repeater},OnGround:1b}
scoreboard players set @e[type=Item] TNi 4 {Item:{id:minecraft:heavy_weighted_pressure_plate},OnGround:1b}
execute @e[score_TNi_min=3,score_TNi=3] ~ ~ ~ execute @e[r=1,score_TNi_min=4,score_TNi=4] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:sticky_piston,Count:1,tag:{display:{Name:"Table Tennis Table"}}}}
execute @e[score_TNi_min=3,score_TNi=3] ~ ~ ~ execute @e[r=1,score_TNi_min=4,score_TNi=4] ~ ~ ~ particle smoke ~ ~ ~ 0 0 0 0.1 100
execute @e[score_TNi_min=3,score_TNi=3] ~ ~ ~ execute @e[r=1,score_TNi_min=4,score_TNi=4] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=3,score_TNi=4]
scoreboard players set @e[type=Item] TNi 5 {Item:{id:minecraft:wooden_axe,tag:{display:{Name:"Table Tennis Paddle"}}},OnGround:1b}
scoreboard players set @e[type=Item] TNi 6 {Item:{id:minecraft:sticky_piston,tag:{display:{Name:"Table Tennis Table"}}},OnGround:1b}
execute @e[score_TNi_min=5,score_TNi=5] ~ ~ ~ execute @e[r=1,score_TNi_min=6,score_TNi=6] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:spawn_egg,Damage:50,Count:1,tag:{display:{Name:"Table_Tennis"},ench:[{id:1,lvl:1}]}}}
execute @e[score_TNi_min=5,score_TNi=5] ~ ~ ~ execute @e[r=1,score_TNi_min=6,score_TNi=6] ~ ~ ~ particle crit ~ ~ ~ 0 0 0 0.1 100
execute @e[score_TNi_min=5,score_TNi=5] ~ ~ ~ execute @e[r=1,score_TNi_min=6,score_TNi=6] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=5,score_TNi=6]
scoreboard players set @e[type=Item] TNi 7 {Item:{id:minecraft:wooden_button},OnGround:1b}
scoreboard players set @e[type=Item] TNi 8 {Item:{id:minecraft:dye},OnGround:1b}
execute @e[score_TNi_min=7,score_TNi=7] ~ ~ ~ execute @e[r=1,score_TNi_min=8,score_TNi=8] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:snowball,Count:1,tag:{display:{Name:"Ping Pong Ball"}}}}
execute @e[score_TNi_min=7,score_TNi=7] ~ ~ ~ execute @e[r=1,score_TNi_min=8,score_TNi=8] ~ ~ ~ particle cloud ~ ~ ~ 0 0 0 0.1 100
execute @e[score_TNi_min=7,score_TNi=7] ~ ~ ~ execute @e[r=1,score_TNi_min=8,score_TNi=8] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=7,score_TNi=8]
# Placing the table tennis
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNCenter,Marker:1,Invisible:1,NoGravity:1}
# TRACK execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNTrack,Marker:1,Invisible:1,NoGravity:1}
# Banner armor stands
# Side 1
execute @e[type=Creeper,name=Table_Tennis] ~ ~-0.2 ~1 summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,Equipment:[{},{},{},{},{id:banner,Count:1,tag:{BlockEntityTag:{Base:15,Patterns:[{Pattern:ss,Color:4},{Pattern:ls,Color:4},{Pattern:rs,Color:4}]}}}],Pose:{Head:[-90f,0f,0f]},NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~-0.75 ~-0.2 ~1 summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,0f,0f]}}
execute @e[type=Creeper,name=Table_Tennis] ~0.75 ~-0.2 ~1 summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,0f,0f]}}
# Side 2
execute @e[type=Creeper,name=Table_Tennis] ~ ~-0.2 ~ summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,Equipment:[{},{},{},{},{id:banner,Count:1,tag:{BlockEntityTag:{Base:15,Patterns:[{Pattern:ss,Color:4},{Pattern:ls,Color:4},{Pattern:rs,Color:4}]}}}],Pose:{Head:[-90f,180f,0f]},NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~-0.75 ~-0.2 ~ summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,180f,0f]}}
execute @e[type=Creeper,name=Table_Tennis] ~0.75 ~-0.2 ~ summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,180f,0f]}}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~-5 execute @e[name=TBTNFlat,c=3] ~ ~ ~ summon ArmorStand ~ ~-0.3 ~0.5 {Invisible:1,CustomName:TBTNNet,NoGravity:1,Equipment:[{},{},{},{},{id:glass_pane,Count:1,tag:{display:{Name:"TBTNNet"}}}]}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~-1.5 {CustomName:TBTNp1,Invisible:1,Marker:1,NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~2.5 {CustomName:TBTNp2,Invisible:1,Marker:1,NoGravity:1,Rotation:[180f,0f]}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNr1,Invisible:1,Marker:1,NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNr2,Invisible:1,Marker:1,NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNr3,Invisible:1,Marker:1,NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ fill ~-1 ~ ~-1 ~1 ~ ~-1 iron_bars
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ fill ~-1 ~ ~2 ~1 ~ ~2 iron_bars
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ fill ~-1 ~ ~ ~1 ~ ~1 barrier
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ execute @e[name=TBTNp1] ~ ~ ~ summon ArmorStand ~0.3 ~-0.8 ~ {CustomName:TBTNPaddle,NoGravity:1}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ execute @e[name=TBTNp2] ~ ~ ~ summon ArmorStand ~-0.3 ~-0.8 ~ {CustomName:TBTNPaddle,NoGravity:1,Rotation:[180f,0f]}
execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ entitydata @e[name=TBTNPaddle] {Invisible:1,DisabledSlots:1,Equipment:[{id:wooden_axe},{},{},{},{}]}
# Remove the creeper after it has been used everywhere it was needed
tp @e[type=Creeper,name=Table_Tennis] ~ ~-500 ~
# Pick up the table
INIT:scoreboard objectives add TNpu dummy
scoreboard players reset @a TNpu
scoreboard players set @a TNpu 1 {Inventory:[{id:minecraft:glass_pane,tag:{display:{Name:"TBTNNet"}}}]}
execute @a[score_TNpu_min=1] ~ ~ ~ kill @e[type=ArmorStand,r=7]
execute @a[score_TNpu_min=1] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:"minecraft:spawn_egg",Damage:50,Count:1,tag:{display:{Name:"Table_Tennis"},ench:[{id:1,lvl:1}]}}}
execute @a[score_TNpu_min=1] ~ ~ ~ fill ~-5 ~-5 ~-5 ~5 ~5 ~5 air 0 replace barrier
execute @a[score_TNpu_min=1] ~ ~ ~ fill ~-5 ~-5 ~-5 ~5 ~5 ~5 air 0 replace iron_bars
clear @a[score_TNpu_min=1] glass_pane 0 1 {display:{Name:"TBTNNet"}}
# Keep track of players who are playing
scoreboard players reset @e TNpl
execute @e[name=TBTNp1] ~ ~ ~-0.5 scoreboard players set @e[type=!ArmorStand,c=1,r=1] TNpl 1
execute @e[name=TBTNp2] ~ ~ ~ scoreboard players set @e[type=!ArmorStand,c=1,r=1] TNpl 2
# Moving the paddles
# Player 1's paddle
execute @a[rym=-80,ry=-31] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 1
execute @a[rym=-30,ry=-21] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 2
execute @a[rym=-20,ry=-11] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 3
execute @a[rym=-10,ry=-1] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 4
execute @a[rym=0,ry=9] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 5
execute @a[rym=10,ry=19] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 6
execute @a[rym=20,ry=29] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 7
execute @a[rym=30,ry=39] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 8
execute @a[rym=40,ry=99] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 9
# Player 2's paddle
execute @a[rym=100,ry=149] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 9
execute @a[rym=150,ry=159] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 8
execute @a[rym=160,ry=169] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 7
execute @a[rym=170,ry=179] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 6
execute @a[rym=-180,ry=-171] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 5
execute @a[rym=-170,ry=-161] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 4
execute @a[rym=-160,ry=-151] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 3
execute @a[rym=-150,ry=-141] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 2
execute @a[rym=-140,ry=-100] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 1
# Villager AI (Make villagers able to play ping pong!)
INIT:scoreboard objectives add TNai dummy
INIT:scoreboard objectives add TNam dummy
/execute @e[score_TNpl_min=1] ~ ~ ~ scoreboard players add @e[type=Villager,r=1] TNai 1
/scoreboard players set @e[score_TNai_min=19] TNai 1
/scoreboard players set @e[type=ArmorStand,name=TBTNp1] TNai -1
/scoreboard players set @e[type=ArmorStand,name=TBTNp2] TNai -1
/execute @e[score_TNai_min=1] ~ ~ ~ tp @e[score_TNai_min=1,c=1,r=1] @e[score_TNai=-1,c=1,r=2]
# Update the villager's paddle to the ball location every time TNai for the villager reaches the number specified above (originally was 15, and may still be)
/execute @e[type=Villager,score_TNai=1] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=TBTNPaddle,c=1,r=2] TNpl = @e[score_TNbl_min=1,c=1,r=8] TNbl
/execute @e[type=Villager,score_TNai=1] ~ ~ ~ scoreboard players operation @e[score_TNai_min=1,c=1,r=1] TNam = @e[score_TNbl_min=1,c=1,r=8] TNbl
# Still force the paddle to be controlled when before the villager is allowed to update it's position, but don't let the paddle move
/execute @e[type=Villager,score_TNai_min=2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=TBTNPaddle,c=1,r=2] TNpl = @e[type=Villager,score_TNai_min=2,c=1,r=1] TNam
# Pushing the villager away from the ping pong table
INIT:scoreboard objectives add TNsn stat.crouchOneCm
/execute @a[score_TNsn_min=1] ~ ~ ~ tp @e[type=Villager,score_TNai_min=1,r=2] ~3 ~ ~
/execute @a[score_TNsn_min=1] ~ ~ ~ scoreboard players reset @e[type=Villager,score_TNai_min=1,r=3] TNai
/scoreboard players reset @a TNsn
# Make the villagers move a bit back from the table so that their paddles aren't hidden inside them
/tp @e[score_TNai_min=1,score_TNpl=1] ~ ~ ~-0.5
/tp @e[score_TNai_min=1,score_TNpl_min=2] ~ ~ ~0.5
# Serving the ball
scoreboard players set @e[type=Item] TNi 9 {Item:{id:minecraft:snowball,tag:{display:{Name:"Ping Pong Ball"}}}}
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=2,c=1] ~ ~ ~ summon ArmorStand ~ ~2 ~ {CustomName:TBTNBall,Small:1,Invisible:1,NoGravity:1,DisabledSlots:1,Equipment:[{id:quartz_block},{},{},{},{}],Pose:{RightArm:[0f,0f,-35f]}}
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[type=ArmorStand,name=TBTNPaddle,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNbl 5
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=1,score_TNpi=1,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNdr -7
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=2,score_TNpi=2,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNdr 7
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=1,score_TNpi=1,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNto 1
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=2,score_TNpi=2,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNto -1
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[type=ArmorStand,name=TBTNPaddle,r=2] ~ ~ ~ scoreboard players set @e[type=Villager,r=8] TNai 2
# Cooldown timer for the ball to be tp'ed
INIT:scoreboard objectives add TNcd dummy
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=8] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNcd 3
scoreboard players remove @e[score_TNcd_min=1] TNcd 1
# Move the track armorstand back to the center
# TRACK execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=2] ~ ~ ~ tp @e[name=TBTNTrack,c=1,r=5] @e[name=TBTNCenter,c=1,r=5]
execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=2] ~ ~ ~ kill @e[score_TNi_min=9,score_TNi=9,r=3]
# Ball controller
INIT:scoreboard objectives add TNbl dummy
INIT:scoreboard objectives add TNdr dummy
# Note that TNbl can be anywhere from 1 to 9, and it represents the location of the ball on the table (lane) with 5 being the center, like so: 1234 5 6789
# This part is for keeping TBTNTrack in the correct place on the all times:
# TRACK execute @e[name=TBTNTrack] ~ ~ ~ tp @e[name=TBTNTrack,c=1,r=1] @e[name=TBTNCenter,c=1,r=6]
execute @e[name=TBTNBall] ~ ~ ~ tp @e[name=TBTNBall,c=1,r=1,score_TNcd=0] @e[name=TBTNCenter,c=1,r=6]
# Change the TNdr so the ball moves
INIT:scoreboard objectives add TNto dummy
INIT:scoreboard objectives add TNae dummy
INIT:scoreboard objectives add TNrev dummy
# TNto keeps track of which direction the ball is moving (TNdr doesn't keep track of the direction anymore, but rather the ball's location on the table)
# Set TNae for the ball to 1 if it is at the edge of the table (simply if TNdr is either -7 or 7)
scoreboard players set @e[name=TBTNBall] TNae 0
scoreboard players set @e[score_TNdr=-7] TNae 1
scoreboard players set @e[score_TNdr_min=7] TNae 2
# Ball movement
scoreboard players remove @e[name=TBTNBall,score_TNto=-1,score_TNdr_min=-6] TNdr 1
scoreboard players add @e[name=TBTNBall,score_TNto_min=1,score_TNdr=6] TNdr 1
# Keeping the ball in the correct lane (without TBTNTrack)
tp @e[score_TNbl_min=1,score_TNbl=1,score_TNcd=0] ~1 ~ ~
tp @e[score_TNbl_min=2,score_TNbl=2,score_TNcd=0] ~0.8 ~ ~
tp @e[score_TNbl_min=3,score_TNbl=3,score_TNcd=0] ~0.5 ~ ~
tp @e[score_TNbl_min=4,score_TNbl=4,score_TNcd=0] ~0.25 ~ ~
tp @e[score_TNbl_min=6,score_TNbl=6,score_TNcd=0] ~-0.25 ~ ~
tp @e[score_TNbl_min=7,score_TNbl=7,score_TNcd=0] ~-0.5 ~ ~
tp @e[score_TNbl_min=8,score_TNbl=8,score_TNcd=0] ~-0.8 ~ ~
tp @e[score_TNbl_min=9,score_TNbl=9,score_TNcd=0] ~-1 ~ ~
# TNbl is used to track whether each player hits the ball or not
# TNdr tracks the direction of the ball (towards player 1 is negative, and towards player 2 is positive (updown to 10 for each))
# TNdr also tracks where the ball is on the Z axis
tp @e[score_TNdr_min=-7,score_TNdr=-7,score_TNcd=0] ~ ~0.7 ~-1.4
tp @e[score_TNdr_min=-6,score_TNdr=-6,score_TNcd=0] ~ ~0.85 ~-0.9
tp @e[score_TNdr_min=-5,score_TNdr=-5,score_TNcd=0] ~ ~0.95 ~-0.6
tp @e[score_TNdr_min=-4,score_TNdr=-4,score_TNcd=0] ~ ~1.1 ~-0.4
tp @e[score_TNdr_min=-3,score_TNdr=-3,score_TNcd=0] ~ ~1.15 ~-0.2
tp @e[score_TNdr_min=-2,score_TNdr=-2,score_TNcd=0] ~ ~1.2 ~
tp @e[score_TNdr_min=-1,score_TNdr=-1,score_TNcd=0] ~ ~1.25 ~0.2
tp @e[score_TNdr_min=0,score_TNdr=0,score_TNcd=0] ~ ~1.25 ~0.4
tp @e[score_TNdr_min=1,score_TNdr=1,score_TNcd=0] ~ ~1.25 ~0.6
tp @e[score_TNdr_min=2,score_TNdr=2,score_TNcd=0] ~ ~1.2 ~0.9
tp @e[score_TNdr_min=3,score_TNdr=3,score_TNcd=0] ~ ~1.15 ~1.15
tp @e[score_TNdr_min=4,score_TNdr=4,score_TNcd=0] ~ ~1.1 ~1.4
tp @e[score_TNdr_min=5,score_TNdr=5,score_TNcd=0] ~ ~0.95 ~1.6
tp @e[score_TNdr_min=6,score_TNdr=6,score_TNcd=0] ~ ~0.85 ~1.9
tp @e[score_TNdr_min=7,score_TNdr=7,score_TNcd=0] ~ ~0.7 ~2.4
# Hitting the ball
scoreboard players reset @e[type=ArmorStand,name=TBTNBall] TNrev
execute @e[score_TNpl_min=1,score_TNpl=1] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=1,score_TNbl=1] TNrev 1
execute @e[score_TNpl_min=1,score_TNpl=3] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=2,score_TNbl=2] TNrev 1
execute @e[score_TNpl_min=2,score_TNpl=4] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=3,score_TNbl=3] TNrev 1
execute @e[score_TNpl_min=3,score_TNpl=5] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=4,score_TNbl=4] TNrev 1
execute @e[score_TNpl_min=4,score_TNpl=6] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=5,score_TNbl=5] TNrev 1
execute @e[score_TNpl_min=5,score_TNpl=7] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=6,score_TNbl=6] TNrev 1
execute @e[score_TNpl_min=6,score_TNpl=8] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=7,score_TNbl=7] TNrev 1
execute @e[score_TNpl_min=7,score_TNpl=9] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=8,score_TNbl=8] TNrev 1
execute @e[score_TNpl_min=9,score_TNpl=9] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=9,score_TNbl=9] TNrev 1
# Always make sure that paddle2's TNpl score is reversed since it is 180 degrees rotated
INIT:summon ArmorStand ~ ~ ~ {CustomName:"TBTNNum10",Marker:1,NoGravity:1,Invisible:1}
INIT:scoreboard objectives add TNct dummy
scoreboard players set @e[type=ArmorStand,name=TBTNNum10] TNct 10
execute @e[type=!ArmorStand] ~ ~ ~ execute @e[score_TNpi_min=2,c=1,r=2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=TBTNNum10] TNct -= @e[score_TNpi_min=2] TNpl
execute @e[type=!ArmorStand] ~ ~ ~ execute @e[score_TNpi_min=2,c=1,r=2] ~ ~ ~ scoreboard players operation @e[score_TNpi_min=2,c=1,r=8] TNpl = @e[type=ArmorStand,name=TBTNNum10] TNct
# Paddle accuracy for hitting
INIT:scoreboard objectives add TNpl dummy
entitydata @e[score_TNpl_min=1,score_TNpl=1] {Pose:{RightArm:[0f,90f,186.66f]}}
entitydata @e[score_TNpl_min=2,score_TNpl=2] {Pose:{RightArm:[0f,90f,173.33f]}}
entitydata @e[score_TNpl_min=3,score_TNpl=3] {Pose:{RightArm:[0f,90f,159.99f]}}
entitydata @e[score_TNpl_min=4,score_TNpl=4] {Pose:{RightArm:[0f,90f,146.66f]}}
entitydata @e[score_TNpl_min=5,score_TNpl=5] {Pose:{RightArm:[0f,90f,133.33f]}}
entitydata @e[score_TNpl_min=6,score_TNpl=6] {Pose:{RightArm:[0f,90f,119.99f]}}
entitydata @e[score_TNpl_min=7,score_TNpl=7] {Pose:{RightArm:[0f,90f,106.66f]}}
entitydata @e[score_TNpl_min=8,score_TNpl=8] {Pose:{RightArm:[0f,90f,93.33f]}}
entitydata @e[score_TNpl_min=9,score_TNpl=9] {Pose:{RightArm:[0f,90f,80f]}}
# Make the ball either move left or right, or stay in the same lane each time it is hit
INIT:scoreboard objectives add TNr dummy
scoreboard players set @e[name=TBTNr1] TNr 1
scoreboard players set @e[name=TBTNr2] TNr 1
scoreboard players set @e[name=TBTNr3] TNr 1
# Randomize then move
execute @e[name=TBTNBall,score_TNrev_min=1] ~ ~ ~ scoreboard players set @r[type=ArmorStand,score_TNr_min=1,r=8] TNr 2
execute @e[name=TBTNr1,score_TNr_min=2] ~ ~ ~ scoreboard players remove @e[type=ArmorStand,name=TBTNBall,score_TNbl_min=2] TNbl 1
execute @e[name=TBTNr3,score_TNr_min=2] ~ ~ ~ scoreboard players add @e[type=ArmorStand,name=TBTNBall,score_TNbl=8] TNbl 1
# Reversing the direction of the ball (Input from chunk above)
scoreboard players set @e[score_TNrev_min=1,score_TNto=-1,score_TNae=1] TNto 1
scoreboard players set @e[score_TNrev_min=1,score_TNto_min=1,score_TNae_min=2] TNto -1
# Give an id (1 and 2) to each paddle armorstand
INIT:scoreboard objectives add TNpi dummy
execute @a[score_TNpl_min=1,score_TNpl=1] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpi 1
execute @a[score_TNpl_min=2,score_TNpl=2] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpi 2
# Missing the ball
INIT:scoreboard objectives add TNms dummy
# Add to the miss score when the player has not hit the ball back yet
scoreboard players add @e[score_TNae_min=1] TNms 1
scoreboard players set @e[score_TNae=0] TNms 0
# Only make the player actually miss if the miss score counts up to a certain number (for example, 5 would be 0.25 seconds before it counts it as a miss)
execute @e[score_TNms_min=5] ~ ~ ~ tellraw @a[r=12] [{"selector":"@e[type=!ArmorStand,c=1,r=5]","color":"blue"},{"text":" missed the ball!","color":"dark_aqua"}]
execute @e[score_TNms_min=5] ~ ~ ~ particle fireworksSpark ~ ~1 ~ 0 0 0 0.03 100
execute @e[score_TNms_min=5] ~ ~ ~ playsound mob.ghast.fireball @a[r=10] ~ ~ ~ 1 2
execute @e[score_TNms_min=5] ~ ~ ~ execute @e[name=TBTNCenter,c=1,r=8] ~ ~1.5 ~0.5 summon Item ~ ~ ~ {Item:{id:"minecraft:snowball",Count:1,tag:{display:{Name:"Ping Pong Ball"}}}}
kill @e[type=ArmorStand,name=TBTNBall,score_TNms_min=5]
# Hit sounds
execute @e[name=TBTNBall,score_TNrev_min=1] ~ ~ ~ playsound random.pop @a[r=10] ~ ~ ~ 1 2
/summon MinecartCommandBlock ~ ~1 ~ {Command:kill @e[type=MinecartCommandBlock,r=1],Riding:{id:MinecartCommandBlock,Command:setblock ~ ~-1 ~1 redstone_block,Riding:{id:MinecartCommandBlock,Command:setblock ~ ~ ~1 command_block 0 replace {Command:fill ~ ~-3 ~-1 ~ ~ ~ air},Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNms dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNpi dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNr dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNpl dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNct dummy",Riding:{id:MinecartCommandBlock,Command:"summon ArmorStand ~ ~ ~ {CustomName:\"TBTNNum10\",Marker:1,NoGravity:1,Invisible:1}",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNrev dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNae dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNto dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNdr dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNbl dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNcd dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNsn stat.crouchOneCm",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNam dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNai dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNpu dummy",Riding:{id:MinecartCommandBlock,Command:"scoreboard objectives add TNi dummy",Riding:{id:MinecartCommandBlock,Command:"tellraw @a[r=200] {text:\"Click for MrGarretto on Youtube (Other creations like this!)\",color:dark_red,clickEvent:{action:\"open_url\",value:\"https://www.youtube.com/c/JustMrGarretto\"}}",Riding:{id:MinecartCommandBlock,Command:"tellraw @a[r=200] {color:red,text:\"Created by MrGarretto\"}",Riding:{id:MinecartCommandBlock,Command:"tellraw @a[r=200] {color:dark_aqua,text:\"Table Tennis (A.K.A. Ping Pong) has been installed!\"}",Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~-2 ~-1 {Command:fill ~ ~ ~1 ~9 ~8 ~1 stone},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~-2 ~1 {Command:fill ~ ~ ~-1 ~9 ~8 ~-1 redstone_block},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~-2 ~-1 {Command:"scoreboard players set @e[type=Item] TNi 1 {Item:{id:minecraft:wooden_pressure_plate},OnGround:1b}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~-2 ~1 {Command:scoreboard players set @e[type=Item] TNi 2 {Item:{id:minecraft:stick},OnGround:1b}},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~-2 ~-1 {Command:"execute @e[score_TNi_min=1,score_TNi=1] ~ ~ ~ execute @e[r=1,score_TNi_min=2,score_TNi=2] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:wooden_shovel,Count:1,tag:{display:{Name:\\\"Table Tennis Paddle\\\"}}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~-2 ~1 {Command:"execute @e[score_TNi_min=1,score_TNi=1] ~ ~ ~ execute @e[r=1,score_TNi_min=2,score_TNi=2] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=1,score_TNi=2]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~-2 ~-1 {Command:scoreboard players set @e[type=Item] TNi 3 {Item:{id:minecraft:repeater},OnGround:1b}},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~-2 ~1 {Command:"scoreboard players set @e[type=Item] TNi 4 {Item:{id:minecraft:heavy_weighted_pressure_plate},OnGround:1b}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~-2 ~-1 {Command:"execute @e[score_TNi_min=3,score_TNi=3] ~ ~ ~ execute @e[r=1,score_TNi_min=4,score_TNi=4] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:sticky_piston,Count:1,tag:{display:{Name:\\\"Table Tennis Table\\\"}}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~-2 ~1 {Command:execute @e[score_TNi_min=3,score_TNi=3] ~ ~ ~ execute @e[r=1,score_TNi_min=4,score_TNi=4] ~ ~ ~ particle smoke ~ ~ ~ 0 0 0 0.1 100},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~-2 ~-1 {Command:execute @e[score_TNi_min=3,score_TNi=3] ~ ~ ~ execute @e[r=1,score_TNi_min=4,score_TNi=4] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=3,score_TNi=4]},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~-2 ~1 {Command:"scoreboard players set @e[type=Item] TNi 5 {Item:{id:minecraft:wooden_shovel,tag:{display:{Name:\\\"Table Tennis Paddle\\\"}}},OnGround:1b}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~-2 ~-1 {Command:"scoreboard players set @e[type=Item] TNi 6 {Item:{id:minecraft:sticky_piston,tag:{display:{Name:\\\"Table Tennis Table\\\"}}},OnGround:1b}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~-2 ~1 {Command:"execute @e[score_TNi_min=5,score_TNi=5] ~ ~ ~ execute @e[r=1,score_TNi_min=6,score_TNi=6] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:spawn_egg,Damage:50,Count:1,tag:{display:{Name:\\\"Table_Tennis\\\"},ench:[{id:1,lvl:1}]}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~-2 ~-1 {Command:"execute @e[score_TNi_min=5,score_TNi=5] ~ ~ ~ execute @e[r=1,score_TNi_min=6,score_TNi=6] ~ ~ ~ particle crit ~ ~ ~ 0 0 0 0.1 100"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~-2 ~1 {Command:"execute @e[score_TNi_min=5,score_TNi=5] ~ ~ ~ execute @e[r=1,score_TNi_min=6,score_TNi=6] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=5,score_TNi=6]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~-2 ~-1 {Command:"scoreboard players set @e[type=Item] TNi 7 {Item:{id:minecraft:wooden_button},OnGround:1b}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~-2 ~1 {Command:"scoreboard players set @e[type=Item] TNi 8 {Item:{id:minecraft:dye},OnGround:1b}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~-2 ~-1 {Command:"execute @e[score_TNi_min=7,score_TNi=7] ~ ~ ~ execute @e[r=1,score_TNi_min=8,score_TNi=8] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:minecraft:snowball,Count:1,tag:{display:{Name:\\\"Ping Pong Ball\\\"}}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~-2 ~1 {Command:"execute @e[score_TNi_min=7,score_TNi=7] ~ ~ ~ execute @e[r=1,score_TNi_min=8,score_TNi=8] ~ ~ ~ particle cloud ~ ~ ~ 0 0 0 0.1 100"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~-1 ~-1 {Command:"execute @e[score_TNi_min=7,score_TNi=7] ~ ~ ~ execute @e[r=1,score_TNi_min=8,score_TNi=8] ~ ~ ~ kill @e[type=Item,r=3,score_TNi_min=7,score_TNi=8]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNCenter,Marker:1,Invisible:1,NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~-0.2 ~1 summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,Equipment:[{},{},{},{},{id:banner,Count:1,tag:{BlockEntityTag:{Base:15,Patterns:[{Pattern:ss,Color:4},{Pattern:ls,Color:4},{Pattern:rs,Color:4}]}}}],Pose:{Head:[-90f,0f,0f]},NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~-0.75 ~-0.2 ~1 summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,0f,0f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~0.75 ~-0.2 ~1 summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,0f,0f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~-0.2 ~ summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,Equipment:[{},{},{},{},{id:banner,Count:1,tag:{BlockEntityTag:{Base:15,Patterns:[{Pattern:ss,Color:4},{Pattern:ls,Color:4},{Pattern:rs,Color:4}]}}}],Pose:{Head:[-90f,180f,0f]},NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~-0.75 ~-0.2 ~ summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,180f,0f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~0.75 ~-0.2 ~ summon ArmorStand ~ ~ ~ {DisabledSlots:1,Invisible:1,CustomName:TBTNFlat,NoGravity:1,Equipment:[{},{},{},{},{id:banner,tag:{BlockEntityTag:{Base:4,Patterns:[]}}}],Pose:{Head:[-90f,180f,0f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~-5 execute @e[name=TBTNFlat,c=3] ~ ~ ~ summon ArmorStand ~ ~-0.3 ~0.5 {Invisible:1,CustomName:TBTNNet,NoGravity:1,Equipment:[{},{},{},{},{id:glass_pane,Count:1,tag:{display:{Name:\\\"TBTNNet\\\"}}}]}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~-1.5 {CustomName:TBTNp1,Invisible:1,Marker:1,NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~2.5 {CustomName:TBTNp2,Invisible:1,Marker:1,NoGravity:1,Rotation:[180f,0f]}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNr1,Invisible:1,Marker:1,NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNr2,Invisible:1,Marker:1,NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:TBTNr3,Invisible:1,Marker:1,NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ fill ~-1 ~ ~-1 ~1 ~ ~-1 iron_bars"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ fill ~-1 ~ ~2 ~1 ~ ~2 iron_bars"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ fill ~-1 ~ ~ ~1 ~ ~1 barrier"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ execute @e[name=TBTNp1] ~ ~ ~ summon ArmorStand ~0.3 ~-0.8 ~ {CustomName:TBTNPaddle,NoGravity:1}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~-1 ~-1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ execute @e[name=TBTNp2] ~ ~ ~ summon ArmorStand ~-0.3 ~-0.8 ~ {CustomName:TBTNPaddle,NoGravity:1,Rotation:[180f,0f]}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~-1 ~1 {Command:"execute @e[type=Creeper,name=Table_Tennis] ~ ~ ~ entitydata @e[name=TBTNPaddle] {Invisible:1,DisabledSlots:1,Equipment:[{id:wooden_shovel},{},{},{},{}]}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~ ~-1 {Command:"tp @e[type=Creeper,name=Table_Tennis] ~ ~-500 ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~ ~1 {Command:"scoreboard players reset @a TNpu"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~ ~-1 {Command:"scoreboard players set @a TNpu 1 {Inventory:[{id:minecraft:glass_pane,tag:{display:{Name:\\\"TBTNNet\\\"}}}]}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~ ~1 {Command:"execute @a[score_TNpu_min=1] ~ ~ ~ kill @e[type=ArmorStand,r=7]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~ ~-1 {Command:"execute @a[score_TNpu_min=1] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:\\\"minecraft:spawn_egg\\\",Damage:50,Count:1,tag:{display:{Name:\\\"Table_Tennis\\\"},ench:[{id:1,lvl:1}]}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~ ~1 {Command:"execute @a[score_TNpu_min=1] ~ ~ ~ fill ~-5 ~-5 ~-5 ~5 ~5 ~5 air 0 replace barrier"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~ ~-1 {Command:"execute @a[score_TNpu_min=1] ~ ~ ~ fill ~-5 ~-5 ~-5 ~5 ~5 ~5 air 0 replace iron_bars"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~ ~1 {Command:"clear @a[score_TNpu_min=1] glass_pane 0 1 {display:{Name:\\\"TBTNNet\\\"}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~ ~-1 {Command:"scoreboard players reset @e TNpl"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~ ~1 {Command:"execute @e[name=TBTNp1] ~ ~ ~-0.5 scoreboard players set @e[type=!ArmorStand,c=1,r=1] TNpl 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~ ~-1 {Command:"execute @e[name=TBTNp2] ~ ~ ~ scoreboard players set @e[type=!ArmorStand,c=1,r=1] TNpl 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~ ~1 {Command:"execute @a[rym=-80,ry=-31] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~ ~-1 {Command:"execute @a[rym=-30,ry=-21] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~ ~1 {Command:"execute @a[rym=-20,ry=-11] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 3"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~ ~-1 {Command:"execute @a[rym=-10,ry=-1] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~ ~1 {Command:"execute @a[rym=0,ry=9] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 5"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~ ~-1 {Command:"execute @a[rym=10,ry=19] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 6"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~ ~1 {Command:"execute @a[rym=20,ry=29] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 7"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~ ~-1 {Command:"execute @a[rym=30,ry=39] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 8"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~ ~1 {Command:"execute @a[rym=40,ry=99] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 9"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~1 ~-1 {Command:"execute @a[rym=100,ry=149] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 9"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~1 ~1 {Command:"execute @a[rym=150,ry=159] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 8"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~1 ~-1 {Command:"execute @a[rym=160,ry=169] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 7"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~1 ~1 {Command:execute @a[rym=170,ry=179] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 6},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~1 ~-1 {Command:execute @a[rym=-180,ry=-171] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 5},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~1 ~1 {Command:"execute @a[rym=-170,ry=-161] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~1 ~-1 {Command:"execute @a[rym=-160,ry=-151] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 3"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~1 ~1 {Command:"execute @a[rym=-150,ry=-141] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~1 ~-1 {Command:"execute @a[rym=-140,ry=-100] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpl 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~1 ~1 {Command:"/execute @e[score_TNpl_min=1] ~ ~ ~ scoreboard players add @e[type=Villager,r=1] TNai 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~1 ~-1 {Command:"/scoreboard players set @e[score_TNai_min=19] TNai 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~1 ~1 {Command:"/scoreboard players set @e[type=ArmorStand,name=TBTNp1] TNai -1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~1 ~-1 {Command:"/scoreboard players set @e[type=ArmorStand,name=TBTNp2] TNai -1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~1 ~1 {Command:"/execute @e[score_TNai_min=1] ~ ~ ~ tp @e[score_TNai_min=1,c=1,r=1] @e[score_TNai=-1,c=1,r=2]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~1 ~-1 {Command:"/execute @e[type=Villager,score_TNai=1] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=TBTNPaddle,c=1,r=2] TNpl = @e[score_TNbl_min=1,c=1,r=8] TNbl"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~1 ~1 {Command:"/execute @e[type=Villager,score_TNai=1] ~ ~ ~ scoreboard players operation @e[score_TNai_min=1,c=1,r=1] TNam = @e[score_TNbl_min=1,c=1,r=8] TNbl"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~1 ~-1 {Command:"/execute @e[type=Villager,score_TNai_min=2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=TBTNPaddle,c=1,r=2] TNpl = @e[type=Villager,score_TNai_min=2,c=1,r=1] TNam"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~1 ~1 {Command:"/execute @a[score_TNsn_min=1] ~ ~ ~ tp @e[type=Villager,score_TNai_min=1,r=2] ~3 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~1 ~-1 {Command:"/execute @a[score_TNsn_min=1] ~ ~ ~ scoreboard players reset @e[type=Villager,score_TNai_min=1,r=3] TNai"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~1 ~1 {Command:"/scoreboard players reset @a TNsn"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~2 ~-1 {Command:"/tp @e[score_TNai_min=1,score_TNpl=1] ~ ~ ~-0.5"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~2 ~1 {Command:"/tp @e[score_TNai_min=1,score_TNpl_min=2] ~ ~ ~0.5"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~2 ~-1 {Command:"scoreboard players set @e[type=Item] TNi 9 {Item:{id:minecraft:snowball,tag:{display:{Name:\\\"Ping Pong Ball\\\"}}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~2 ~1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=2,c=1] ~ ~ ~ summon ArmorStand ~ ~2 ~ {CustomName:TBTNBall,Small:1,Invisible:1,NoGravity:1,DisabledSlots:1,Equipment:[{id:quartz_block},{},{},{},{}],Pose:{RightArm:[0f,0f,-35f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~2 ~-1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[type=ArmorStand,name=TBTNPaddle,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNbl 5"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~2 ~1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=1,score_TNpi=1,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNdr -7"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~2 ~-1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=2,score_TNpi=2,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNdr 7"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~2 ~1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=1,score_TNpi=1,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNto 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~2 ~-1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[score_TNpi_min=2,score_TNpi=2,r=2] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNto -1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~2 ~1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[type=ArmorStand,name=TBTNPaddle,r=2] ~ ~ ~ scoreboard players set @e[type=Villager,r=8] TNai 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~2 ~-1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=8] ~ ~ ~ scoreboard players set @e[name=TBTNBall,c=1,r=8] TNcd 3"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~2 ~1 {Command:"scoreboard players remove @e[score_TNcd_min=1] TNcd 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~2 ~-1 {Command:"execute @e[score_TNi_min=9,score_TNi=9] ~ ~ ~ execute @e[name=TBTNPaddle,r=2] ~ ~ ~ kill @e[score_TNi_min=9,score_TNi=9,r=3]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~2 ~1 {Command:"execute @e[name=TBTNBall] ~ ~ ~ tp @e[name=TBTNBall,c=1,r=1,score_TNcd=0] @e[name=TBTNCenter,c=1,r=6]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~2 ~-1 {Command:"scoreboard players set @e[name=TBTNBall] TNae 0"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~2 ~1 {Command:"scoreboard players set @e[score_TNdr=-7] TNae 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~2 ~-1 {Command:"scoreboard players set @e[score_TNdr_min=7] TNae 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~2 ~1 {Command:"scoreboard players remove @e[name=TBTNBall,score_TNto=-1,score_TNdr_min=-6] TNdr 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~2 ~-1 {Command:"scoreboard players add @e[name=TBTNBall,score_TNto_min=1,score_TNdr=6] TNdr 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~2 ~1 {Command:"tp @e[score_TNbl_min=1,score_TNbl=1,score_TNcd=0] ~1 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~3 ~-1 {Command:"tp @e[score_TNbl_min=2,score_TNbl=2,score_TNcd=0] ~0.8 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~3 ~1 {Command:"tp @e[score_TNbl_min=3,score_TNbl=3,score_TNcd=0] ~0.5 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~3 ~-1 {Command:"tp @e[score_TNbl_min=4,score_TNbl=4,score_TNcd=0] ~0.25 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~3 ~1 {Command:"tp @e[score_TNbl_min=6,score_TNbl=6,score_TNcd=0] ~-0.25 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~3 ~-1 {Command:"tp @e[score_TNbl_min=7,score_TNbl=7,score_TNcd=0] ~-0.5 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~3 ~1 {Command:"tp @e[score_TNbl_min=8,score_TNbl=8,score_TNcd=0] ~-0.8 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~3 ~-1 {Command:"tp @e[score_TNbl_min=9,score_TNbl=9,score_TNcd=0] ~-1 ~ ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~3 ~1 {Command:"tp @e[score_TNdr_min=-7,score_TNdr=-7,score_TNcd=0] ~ ~0.7 ~-1.4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~3 ~-1 {Command:"tp @e[score_TNdr_min=-6,score_TNdr=-6,score_TNcd=0] ~ ~0.85 ~-0.9"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~3 ~1 {Command:"tp @e[score_TNdr_min=-5,score_TNdr=-5,score_TNcd=0] ~ ~0.95 ~-0.6"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~3 ~-1 {Command:"tp @e[score_TNdr_min=-4,score_TNdr=-4,score_TNcd=0] ~ ~1.1 ~-0.4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~3 ~1 {Command:"tp @e[score_TNdr_min=-3,score_TNdr=-3,score_TNcd=0] ~ ~1.15 ~-0.2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~3 ~-1 {Command:"tp @e[score_TNdr_min=-2,score_TNdr=-2,score_TNcd=0] ~ ~1.2 ~"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~3 ~1 {Command:"tp @e[score_TNdr_min=-1,score_TNdr=-1,score_TNcd=0] ~ ~1.25 ~0.2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~3 ~-1 {Command:"tp @e[score_TNdr_min=0,score_TNdr=0,score_TNcd=0] ~ ~1.25 ~0.4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~3 ~1 {Command:"tp @e[score_TNdr_min=1,score_TNdr=1,score_TNcd=0] ~ ~1.25 ~0.6"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~3 ~-1 {Command:"tp @e[score_TNdr_min=2,score_TNdr=2,score_TNcd=0] ~ ~1.2 ~0.9"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~3 ~1 {Command:"tp @e[score_TNdr_min=3,score_TNdr=3,score_TNcd=0] ~ ~1.15 ~1.15"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~3 ~-1 {Command:"tp @e[score_TNdr_min=4,score_TNdr=4,score_TNcd=0] ~ ~1.1 ~1.4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~3 ~1 {Command:"tp @e[score_TNdr_min=5,score_TNdr=5,score_TNcd=0] ~ ~0.95 ~1.6"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~4 ~-1 {Command:"tp @e[score_TNdr_min=6,score_TNdr=6,score_TNcd=0] ~ ~0.85 ~1.9"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~4 ~1 {Command:"tp @e[score_TNdr_min=7,score_TNdr=7,score_TNcd=0] ~ ~0.7 ~2.4"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~4 ~-1 {Command:"scoreboard players reset @e[type=ArmorStand,name=TBTNBall] TNrev"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~4 ~1 {Command:"execute @e[score_TNpl_min=1,score_TNpl=1] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=1,score_TNbl=1] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~4 ~-1 {Command:"execute @e[score_TNpl_min=1,score_TNpl=3] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=2,score_TNbl=2] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~4 ~1 {Command:"execute @e[score_TNpl_min=2,score_TNpl=4] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=3,score_TNbl=3] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~4 ~-1 {Command:"execute @e[score_TNpl_min=3,score_TNpl=5] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=4,score_TNbl=4] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~4 ~1 {Command:"execute @e[score_TNpl_min=4,score_TNpl=6] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=5,score_TNbl=5] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~4 ~-1 {Command:"execute @e[score_TNpl_min=5,score_TNpl=7] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=6,score_TNbl=6] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~4 ~1 {Command:"execute @e[score_TNpl_min=6,score_TNpl=8] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=7,score_TNbl=7] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~4 ~-1 {Command:"execute @e[score_TNpl_min=7,score_TNpl=9] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=8,score_TNbl=8] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~4 ~1 {Command:"execute @e[score_TNpl_min=9,score_TNpl=9] ~ ~ ~ scoreboard players set @e[c=1,r=2,score_TNae_min=1,score_TNbl_min=9,score_TNbl=9] TNrev 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~4 ~-1 {Command:"scoreboard players set @e[type=ArmorStand,name=TBTNNum10] TNct 10"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~4 ~1 {Command:"execute @e[type=!ArmorStand] ~ ~ ~ execute @e[score_TNpi_min=2,c=1,r=2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=TBTNNum10] TNct -= @e[score_TNpi_min=2] TNpl"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~4 ~-1 {Command:"execute @e[type=!ArmorStand] ~ ~ ~ execute @e[score_TNpi_min=2,c=1,r=2] ~ ~ ~ scoreboard players operation @e[score_TNpi_min=2,c=1,r=8] TNpl = @e[type=ArmorStand,name=TBTNNum10] TNct"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~4 ~1 {Command:"entitydata @e[score_TNpl_min=1,score_TNpl=1] {Pose:{RightArm:[0f,90f,186.66f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~4 ~-1 {Command:"entitydata @e[score_TNpl_min=2,score_TNpl=2] {Pose:{RightArm:[0f,90f,173.33f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~4 ~1 {Command:"entitydata @e[score_TNpl_min=3,score_TNpl=3] {Pose:{RightArm:[0f,90f,159.99f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~4 ~-1 {Command:"entitydata @e[score_TNpl_min=4,score_TNpl=4] {Pose:{RightArm:[0f,90f,146.66f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~4 ~1 {Command:"entitydata @e[score_TNpl_min=5,score_TNpl=5] {Pose:{RightArm:[0f,90f,133.33f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~5 ~-1 {Command:"entitydata @e[score_TNpl_min=6,score_TNpl=6] {Pose:{RightArm:[0f,90f,119.99f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~5 ~1 {Command:"entitydata @e[score_TNpl_min=7,score_TNpl=7] {Pose:{RightArm:[0f,90f,106.66f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~5 ~-1 {Command:"entitydata @e[score_TNpl_min=8,score_TNpl=8] {Pose:{RightArm:[0f,90f,93.33f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~4 ~5 ~1 {Command:"entitydata @e[score_TNpl_min=9,score_TNpl=9] {Pose:{RightArm:[0f,90f,80f]}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~5 ~-1 {Command:"scoreboard players set @e[name=TBTNr1] TNr 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~5 ~5 ~1 {Command:"scoreboard players set @e[name=TBTNr2] TNr 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~5 ~-1 {Command:"scoreboard players set @e[name=TBTNr3] TNr 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~6 ~5 ~1 {Command:"execute @e[name=TBTNBall,score_TNrev_min=1] ~ ~ ~ scoreboard players set @r[type=ArmorStand,score_TNr_min=1,r=8] TNr 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~5 ~-1 {Command:"execute @e[name=TBTNr1,score_TNr_min=2] ~ ~ ~ scoreboard players remove @e[type=ArmorStand,name=TBTNBall,score_TNbl_min=2] TNbl 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~7 ~5 ~1 {Command:"execute @e[name=TBTNr3,score_TNr_min=2] ~ ~ ~ scoreboard players add @e[type=ArmorStand,name=TBTNBall,score_TNbl=8] TNbl 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~5 ~-1 {Command:"scoreboard players set @e[score_TNrev_min=1,score_TNto=-1,score_TNae=1] TNto 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~8 ~5 ~1 {Command:"scoreboard players set @e[score_TNrev_min=1,score_TNto_min=1,score_TNae_min=2] TNto -1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~5 ~-1 {Command:"execute @a[score_TNpl_min=1,score_TNpl=1] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpi 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~9 ~5 ~1 {Command:"execute @a[score_TNpl_min=2,score_TNpl=2] ~ ~ ~ scoreboard players set @e[name=TBTNPaddle,c=1,r=2] TNpi 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~5 ~-1 {Command:"scoreboard players add @e[score_TNae_min=1] TNms 1"},Riding:{id:MinecartCommandBlock,Command:blockdata ~10 ~5 ~1 {Command:"scoreboard players set @e[score_TNae=0] TNms 0"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~5 ~-1 {Command:"execute @e[score_TNms_min=5] ~ ~ ~ tellraw @a[r=12] [{\\\"selector\\\":\\\"@e[type=!ArmorStand,c=1,r=5]\\\",\\\"color\\\":\\\"blue\\\"},{\\\"text\\\":\\\" missed the ball!\\\",\\\"color\\\":\\\"dark_aqua\\\"}]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~11 ~5 ~1 {Command:"execute @e[score_TNms_min=5] ~ ~ ~ particle fireworksSpark ~ ~1 ~ 0 0 0 0.03 100"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~5 ~-1 {Command:"execute @e[score_TNms_min=5] ~ ~ ~ playsound mob.ghast.fireball @a[r=10] ~ ~ ~ 1 2"},Riding:{id:MinecartCommandBlock,Command:blockdata ~12 ~5 ~1 {Command:"execute @e[score_TNms_min=5] ~ ~ ~ execute @e[name=TBTNCenter,c=1,r=8] ~ ~1.5 ~0.5 summon Item ~ ~ ~ {Item:{id:\\\"minecraft:snowball\\\",Count:1,tag:{display:{Name:\\\"Ping Pong Ball\\\"}}}}"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~6 ~-1 {Command:"kill @e[type=ArmorStand,name=TBTNBall,score_TNms_min=5]"},Riding:{id:MinecartCommandBlock,Command:blockdata ~3 ~6 ~1 {Command:"execute @e[name=TBTNBall,score_TNrev_min=1] ~ ~ ~ playsound random.pop @a[r=10] ~ ~ ~ 1 2"},Riding:{id:MinecartCommandBlock,Command:setblock ~3 ~-2 ~ redstone_block,Riding:{id:MinecartCommandBlock,Command:fill ~3 ~-2 ~-1 ~3 ~6 ~-1 command_block,Riding:{id:MinecartCommandBlock,Command:fill ~3 ~-2 ~-1 ~12 ~5 ~-1 command_block,Riding:{id:MinecartCommandBlock,Command:fill ~3 ~-2 ~1 ~3 ~6 ~1 command_block,Riding:{id:MinecartCommandBlock,Command:fill ~3 ~-2 ~1 ~12 ~5 ~1 command_block,Riding:{id:MinecartCommandBlock,Command:setblock ~1 ~2 ~ wall_sign 4 replace {Text1:"{text:\\\"Table Tennis\\\",color:dark_blue,clickEvent:{action:\\\"run_command\\\",value:\\\"tellraw @a[r=100] {color:dark_aqua,text:\\\\\\\"Table Tennis has been uninstalled!\\\\\\\"}\\\"},bold:true}",Text2:"{text:\\\"By MrGarretto\\\",color:black,clickEvent:{action:\\\"run_command\\\",value:\\\"kill @e[name=TBTNNum10]\\\"}}",Text4:"{text:\\\"[ Destroy ]\\\",color:dark_red,clickEvent:{action:\\\"run_command\\\",value:\\\"fill ~ ~-5 ~-2 ~13 ~6 ~2 air\\\"},bold:true}"},Riding:{id:MinecartCommandBlock,Command:fill ~2 ~-2 ~-2 ~13 ~6 ~2 stained_glass 9 replace stained_hardened_clay 11,Riding:{id:MinecartCommandBlock,Command:fill ~2 ~-3 ~-2 ~13 ~7 ~2 stained_hardened_clay 11 hollow,Riding:{id:MinecartCommandBlock,Command:gamerule commandBlockOutput false,Riding:{id:MinecartCommandBlock,Riding:{id:FallingSand,Block:activator_rail,Time:1,Riding:{id:FallingSand,Block:redstone_block,Time:1,Riding:{id:FallingSand,Block:stone,Time:1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}