Energyxxer

Protection Blocks - CPM Project

Oct 15th, 2016
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 57.49 KB | None | 0 0
  1. ::section options
  2. #
  3. # TIER 1 SIZE:
  4. $shortcut size1 16
  5. # TIER 2 SIZE:
  6. $shortcut size2 32
  7. # TIER 3 SIZE:
  8. $shortcut size3 48
  9. # TIER 4 SIZE:
  10. $shortcut size4 64
  11.  
  12. ::section config
  13. #
  14. # GAME VERSION (1.9 / 1.10 / 1.11)
  15. version: 1.11
  16. #
  17. # COLOR COMBINATION (purple / green / blue / yellow / red)
  18. # For each region tier, you can determine the color of the block.
  19.  
  20. tier1-color: green
  21. tier2-color: yellow
  22. tier3-color: purple
  23. tier4-color: red
  24.  
  25. # (Must be lowercase)
  26. #
  27. #
  28. ################################
  29.  
  30. # END OF OPTIONS
  31.  
  32. ################################
  33.  
  34. name: Protection Blocks
  35. shape:box
  36. import:
  37. #Relative Blocks (BETA TEST)
  38. yLuBwShx
  39.  
  40. enable-math:true
  41. use-formatting:true
  42. update-gamerules:true
  43.  
  44. fix-entities-1.11:true
  45.  
  46. max-length:3
  47. max-height:8
  48.  
  49. x-offset:3
  50. y-offset:2
  51. z-offset:-1
  52.  
  53. include-success:false
  54.  
  55. ::section before
  56. fill ~3 ~-2 ~-1 ~29 ~8 ~1 minecraft:quartz_block
  57. fill ~4 ~-2 ~-2 ~28 ~8 ~2 minecraft:quartz_block
  58. fill ~4 ~-1 ~-2 ~28 ~7 ~2 minecraft:stained_glass 10
  59. fill ~4 ~ ~-1 ~28 ~7 ~1 minecraft:air
  60. fill ~4 ~-1 ~-2 ~28 ~-1 ~2 minecraft:quartz_block
  61. fill ~4 ~ ~-1 ~28 ~ ~1 minecraft:carpet
  62. fill ~4 ~-1 ~-1 ~28 ~-1 ~1 minecraft:stained_hardened_clay
  63. fill ~4 ~-2 ~-1 ~28 ~-2 ~1 minecraft:redstone_lamp
  64. fill ~3 ~-2 ~ ~29 ~8 ~ minecraft:stained_hardened_clay 9 replace quartz_block
  65.  
  66. ::section start
  67. :R!: scoreboard players add @a r_playerId 0 $pos a set; $pos b set;
  68. scoreboard players tag @e[score_r_playerId=0,c=1] add r_assignId
  69. scoreboard players operation @e[tag=r_assignId] r_playerId > * r_playerId
  70. scoreboard players add @e[tag=r_assignId] r_playerId 1
  71. scoreboard players tag @e[tag=r_assignId] remove r_assignId
  72. scoreboard players add @e[type=ArmorStand,name=r_region] r_regionId 0
  73. scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionId=0,c=1] add r_assignId
  74. scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_assignId] r_regionId > * r_regionId
  75. scoreboard players add @e[type=ArmorStand,name=r_region,tag=r_assignId] r_regionId 1
  76. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_assignId] remove r_assignId
  77. $pos c set;gamerule sendCommandFeedback
  78. $pos e set;gamerule regionSwitchMessages
  79. :I: stats block $pos c get; set QueryResult r_sCF r_regionOp $pos f set;
  80. :I: stats block $pos e get; set QueryResult r_rSM r_regionOp
  81. :I: fill ~ ~ ~ $pos f get; air
  82.  
  83. ::section list_players
  84. :R!: testfor @a[tag=r_managePlayers]
  85. #Get region within
  86. :R?: blockdata ~ ~-1 ~ {SuccessCount:0}
  87. execute @a[tag=r_managePlayers] ~ ~ ~ execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionOp = @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionId
  88. execute @a[tag=r_managePlayers] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region] r_regionOp -= @a[r=0,c=1] r_inRegion
  89. execute @a[tag=r_managePlayers] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionOp==0] add r_controlRegion
  90. #Check if region owned by executing player
  91. execute @a[tag=r_managePlayers] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_regionOp = @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_ownerId
  92. execute @a[tag=r_managePlayers] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_regionOp -= @a[r=0,c=1] r_playerId
  93.  
  94. :CONDITION: version >= 1.11
  95. execute @a[tag=r_managePlayers] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ title @a[tag=r_managePlayers] actionbar [{"text":"You are not the owner of this region!","color":"red"}]
  96. execute @a[tag=r_managePlayers] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp==0] ~ ~ ~ title @a[tag=r_managePlayers] actionbar [""]
  97. :CONDITION: version < 1.11
  98. execute @a[tag=r_managePlayers] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp=-1] ~ ~ ~ tellraw @a[tag=r_managePlayers] [{"text":"You are not the owner of this region!","color":"red"}]
  99. execute @a[tag=r_managePlayers] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp_min=1] ~ ~ ~ tellraw @a[tag=r_managePlayers] [{"text":"You are not the owner of this region!","color":"red"}]
  100. execute @a[tag=r_managePlayers] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp_min=1] ~ ~ ~ scoreboard players tag @a[tag=r_managePlayers] remove r_managePlayers
  101. $shortcut bars {"text":"================================","bold":true,"strikethrough":true}
  102. $shortcut title "\n\n",{"text":" Member Management\n","color":"aqua","bold":true}
  103. $shortcut addPlayers {"text":"[ Add ]","color":"aqua","bold":true,"hoverEvent":{"action":"show_text","value":"Allow a player to build in this region."},"clickEvent":{"action":"suggest_command","value":"/trigger region add ID"}}
  104. $shortcut removePlayers {"text":"[ Remove ]","color":"aqua","bold":true,"hoverEvent":{"action":"show_text","value":"Remove a player from the region whitelist."},"clickEvent":{"action":"suggest_command","value":"/trigger region_remove set ID"}}
  105. $shortcut info Replace \"ID\" with the ID of the player you \nwant to add/remove. For reference, here \nare all the online players and their IDs:
  106. tellraw @a[tag=r_managePlayers] ["\n\n\n\n\n\n\n\n",$s bars;,$s title;,"\n ",$s addPlayers;," ",$s removePlayers;,{"text":"\n$s info;\n","color":"dark_aqua"}]
  107. execute @a ~ ~ ~ tellraw @a[tag=r_managePlayers] [" ",{"selector":"@p","color":"dark_aqua"}," ",{"text":"(ID: ","color":"aqua"},{"score":{"objective":"r_playerId","name":"@p"},"color":"aqua"},{"text":")","color":"aqua"}]
  108. tellraw @a[tag=r_managePlayers] ["\n",$s bars;]
  109. scoreboard players tag @a[tag=r_managePlayers] remove r_managePlayers
  110.  
  111. ::section placing
  112. $shortcut region_purple {SkullType:3,Owner:{Id:"4816d45d-96c3-4e43-9965-e9c17192dad3",Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NzM0Nzg0MzAwNDAsInByb2ZpbGVJZCI6ImRlZDdhMmFmMTVlNjRjOWVhYjIzZWFlOTkyMzUzMDY4IiwicHJvZmlsZU5hbWUiOiJFbmVyZ3l4eGVyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzdhMjk3N2RhMGQ5NjI0YWI1YWExMWI4YWE4Zjg1N2RmZGQ4ZjM4MjZlYzIzNjhkNWRmNjA1NWZlOWRjMjIifX19"}]}}}
  113. $shortcut region_green {SkullType:3,Owner:{Id:"4816d45d-96c3-4e43-9965-e9c17192dad4",Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NzM2MzI1MDQ5ODUsInByb2ZpbGVJZCI6ImRlZDdhMmFmMTVlNjRjOWVhYjIzZWFlOTkyMzUzMDY4IiwicHJvZmlsZU5hbWUiOiJFbmVyZ3l4eGVyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzUzODEyNjI1OTYzMDZiMTBkOTJjZmNhODFjMTlmOGQxMWIzZjgwY2U4ZDRlOGRmZGZiODFjZWY2NTNiMDNjZGQifX19"}]}}}
  114. $shortcut region_blue {SkullType:3,Owner:{Id:"4816d45d-96c3-4e43-9965-e9c17192dad5",Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NzM2MzI1NDk2NTMsInByb2ZpbGVJZCI6ImRlZDdhMmFmMTVlNjRjOWVhYjIzZWFlOTkyMzUzMDY4IiwicHJvZmlsZU5hbWUiOiJFbmVyZ3l4eGVyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Q3YTdmODZiNTE3NmRjN2I5Y2M1NWI3ZDJmOGFkZTI4OGM1NDZlMjVhMjZmZjcxZGFjMzJlYjk3MGVjNjExMyJ9fX0="}]}}}
  115. $shortcut region_yellow {SkullType:3,Owner:{Id:"4816d45d-96c3-4e43-9965-e9c17192dad6",Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NzM2MzI2MjQ0MTMsInByb2ZpbGVJZCI6ImRlZDdhMmFmMTVlNjRjOWVhYjIzZWFlOTkyMzUzMDY4IiwicHJvZmlsZU5hbWUiOiJFbmVyZ3l4eGVyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzQwYjQ1M2E5ZjRhYmEwOWY5YmY3ZjZmZTU4Zjg3MjdlNTQ0ODQ3MThmNTU4MmY3OTY2ZjZiMWVkOWI5ZGMxIn19fQ=="}]}}}
  116. $shortcut region_red {SkullType:3,Owner:{Id:4816d45d-96c3-4e43-9965-e9c17192dad7,Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NzM2MzI3MzcyMTYsInByb2ZpbGVJZCI6ImRlZDdhMmFmMTVlNjRjOWVhYjIzZWFlOTkyMzUzMDY4IiwicHJvZmlsZU5hbWUiOiJFbmVyZ3l4eGVyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2JhYmJhZTYyN2RjN2MwNmMzMDM5ZWZkN2IyZjVhM2RkODdmODE3NGYzNWY4NzVmNjViYzQ4NDg5ZThmIn19fQ=="}]}}}
  117. :R!: testfor @e[type=ArmorStand,name=r_region,tag=r_init]
  118. :R?: blockdata ~ ~-1 ~ {SuccessCount:0}
  119. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_init,c=1] add r_initC
  120. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ summon AreaEffectCloud ~ ~ ~ {Duration:0,CustomName:r_regionPoint,Radius:0.00001,Particle:take}
  121. :MULTI:
  122. iterations: 4
  123. !i#:2;1,4
  124. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ scoreboard players tag @e[type=AreaEffectCloud,name=r_regionPoint,r=1,c=1] add r_t%i
  125. :MULTI:
  126. iterations: 4
  127. !i#:2;1,4
  128. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~-add(divide($s size%i;,2),divide($s size1;,2)) ~-add(divide($s size%i;,2),divide($s size1;,2)) ~-add(divide($s size%i;,2),divide($s size1;,2)) scoreboard players tag @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_t1,dx=add($s size%i;,$s size1;),dy=add($s size%i;,$s size1;),dz=add($s size%i;,$s size1;)] add r_illegalPos
  129. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~-add(divide($s size%i;,2),divide($s size2;,2)) ~-add(divide($s size%i;,2),divide($s size2;,2)) ~-add(divide($s size%i;,2),divide($s size2;,2)) scoreboard players tag @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_t2,dx=add($s size%i;,$s size2;),dy=add($s size%i;,$s size2;),dz=add($s size%i;,$s size2;)] add r_illegalPos
  130. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~-add(divide($s size%i;,2),divide($s size3;,2)) ~-add(divide($s size%i;,2),divide($s size3;,2)) ~-add(divide($s size%i;,2),divide($s size3;,2)) scoreboard players tag @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_t3,dx=add($s size%i;,$s size3;),dy=add($s size%i;,$s size3;),dz=add($s size%i;,$s size3;)] add r_illegalPos
  131. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~-add(divide($s size%i;,2),divide($s size4;,2)) ~-add(divide($s size%i;,2),divide($s size4;,2)) ~-add(divide($s size%i;,2),divide($s size4;,2)) scoreboard players tag @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_t4,dx=add($s size%i;,$s size4;),dy=add($s size%i;,$s size4;),dz=add($s size%i;,$s size4;)] add r_illegalPos
  132. :MULTI:
  133. iterations: 4
  134. !i#:2;1,4
  135. execute @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_illegalPos] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_initC,r=1,c=1] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=0,c=1] ~ ~ ~ summon AreaEffectCloud ~ ~ ~ {Tags:["r_regionItemPlaced","r_regionItemT%i"]}
  136. execute @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_illegalPos] ~ ~ ~ tp @e[type=AreaEffectCloud,tag=r_regionItemPlaced] @p[r=6,score_r_use_stand_min=1]
  137. :CONDITION: version != 1.9
  138. execute @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_illegalPos] ~ ~ ~ title @p[r=6,score_r_use_stand_min=1] actionbar [{"text":"Overlapping regions are not allowed!","color":"red"}]
  139. :CONDITION: version = 1.9
  140. execute @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_illegalPos] ~ ~ ~ tellraw @p[r=6,score_r_use_stand_min=1] [{"text":"Overlapping regions are not allowed!","color":"red"}]
  141.  
  142. execute @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_illegalPos] ~ ~ ~ kill @e[type=ArmorStand,name=r_region,tag=r_initC,r=1,c=1]
  143. kill @e[type=AreaEffectCloud,name=r_regionPoint,tag=r_illegalPos]
  144. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_ownerId = @p[r=6,score_r_use_stand_min=1] r_playerId
  145. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_whitelist = @e[type=ArmorStand,name=r_region,r=1,c=1] r_ownerId
  146. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_initC] add r_member
  147. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ summon AreaEffectCloud ~ ~ ~ {CustomName:r_regionStat,Duration:4,Particle:take}
  148. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ stats entity @e[type=AreaEffectCloud,name=r_regionStat,r=1,c=1] set SuccessCount @e[type=AreaEffectCloud,name=r_regionStat,r=1,c=1] r_regionOp
  149. entitydata @e[type=ArmorStand,name=r_region,tag=r_initC] {Invisible:1b,Small:1b,NoGravity:1b}
  150. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ setblock ~ ~ ~ minecraft:dropper 0 _ {CustomName:"Protection Block",LootTable:""}
  151.  
  152. :CONDITION: tier1-color = purple
  153. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t1,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_purple;
  154. :CONDITION: tier1-color = green
  155. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t1,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_green;
  156. :CONDITION: tier1-color = blue
  157. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t1,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_blue;
  158. :CONDITION: tier1-color = yellow
  159. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t1,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_yellow;
  160. :CONDITION: tier1-color = red
  161. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t1,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_red;
  162.  
  163. :CONDITION: tier2-color = purple
  164. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t2,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_purple;
  165. :CONDITION: tier2-color = green
  166. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t2,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_green;
  167. :CONDITION: tier2-color = blue
  168. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t2,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_blue;
  169. :CONDITION: tier2-color = yellow
  170. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t2,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_yellow;
  171. :CONDITION: tier2-color = red
  172. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t2,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_red;
  173.  
  174. :CONDITION: tier3-color = purple
  175. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t3,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_purple;
  176. :CONDITION: tier3-color = green
  177. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t3,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_green;
  178. :CONDITION: tier3-color = blue
  179. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t3,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_blue;
  180. :CONDITION: tier3-color = yellow
  181. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t3,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_yellow;
  182. :CONDITION: tier3-color = red
  183. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t3,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_red;
  184.  
  185. :CONDITION: tier4-color = purple
  186. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t4,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_purple;
  187. :CONDITION: tier4-color = green
  188. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t4,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_green;
  189. :CONDITION: tier4-color = blue
  190. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t4,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_blue;
  191. :CONDITION: tier4-color = yellow
  192. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t4,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_yellow;
  193. :CONDITION: tier4-color = red
  194. execute @e[type=ArmorStand,name=r_region,tag=r_initC] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t4,r=1,c=1] ~ ~ ~ setblock ~ ~1 ~ skull 15 _ $s region_red;
  195.  
  196. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_initC] remove r_init
  197. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_initC] remove r_initC
  198. scoreboard players remove @a[score_r_use_stand_min=1] r_use_stand 1
  199. scoreboard players reset @a[score_r_use_stand=0] r_use_stand
  200.  
  201. ::section outline
  202. $shortcut particleMultiplier 0.25
  203. :R!: testfor @a[tag=r_viewRegions]
  204. :R?: blockdata ~ ~-1 ~ {SuccessCount:0}
  205. :MULTI:
  206. iterations: 4
  207. !i#:2;1,4
  208. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~ ~-add(divide($s size%i;,2),1) ~-add(divide($s size%i;,2),0.5) divide($s size%i;,4) 0 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  209. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~ ~-add(divide($s size%i;,2),1) ~add(divide($s size%i;,2),0.5) divide($s size%i;,4) 0 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  210. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~-add(divide($s size%i;,2),0.5) ~-add(divide($s size%i;,2),1) ~ 0 0 divide($s size%i;,4) 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  211. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~add(divide($s size%i;,2),0.5) ~-add(divide($s size%i;,2),1) ~ 0 0 divide($s size%i;,4) 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  212. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~ ~add(divide($s size%i;,2),1) ~-add(divide($s size%i;,2),0.5) divide($s size%i;,4) 0 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  213. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~ ~add(divide($s size%i;,2),1) ~add(divide($s size%i;,2),0.5) divide($s size%i;,4) 0 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  214. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~-add(divide($s size%i;,2),0.5) ~add(divide($s size%i;,2),1) ~ 0 0 divide($s size%i;,4) 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  215. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~add(divide($s size%i;,2),0.5) ~add(divide($s size%i;,2),1) ~ 0 0 divide($s size%i;,4) 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  216. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~-add(divide($s size%i;,2),0.5) ~ ~-add(divide($s size%i;,2),0.5) 0 divide($s size%i;,4) 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  217. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~-add(divide($s size%i;,2),0.5) ~ ~add(divide($s size%i;,2),0.5) 0 divide($s size%i;,4) 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  218. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~add(divide($s size%i;,2),0.5) ~ ~-add(divide($s size%i;,2),0.5) 0 divide($s size%i;,4) 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  219. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~ ~ ~ particle endRod ~add(divide($s size%i;,2),0.5) ~ ~add(divide($s size%i;,2),0.5) 0 divide($s size%i;,4) 0 0 multiply($s size%i;,$s particleMultiplier;) force @a[tag=r_viewRegions]
  220.  
  221. ::section regionwork
  222. :R!: scoreboard players set @a r_inRegion 0
  223. :MULTI:
  224. iterations: 4
  225. !i#:2;1,4
  226. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~-divide($s size%i;,2) ~-divide($s size%i;,2) ~-divide($s size%i;,2) scoreboard players operation @a[dx=$s size%i;,dy=$s size%i;,dz=$s size%i;] r_inRegion = @e[type=ArmorStand,name=r_region,c=-1,dx=divide($s size%i;,2),dy=divide($s size%i;,2),dz=divide($s size%i;,2)] r_regionId
  227. execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_inRegionDiff = @a[r=0,c=1] r_inRegion
  228. execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_inRegionDiff -= @a[r=0,c=1] r_inRegionOld
  229. scoreboard players tag @a[tag=!r_regionChange] add r_regionChange
  230. scoreboard players tag @a[tag=r_regionChange,score_r_inRegionDiff==0] remove r_regionChange
  231. :CONDITION: version >= 1.11
  232. title @a[tag=r_regionChange,score_r_inRegion_min=1,score_r_inRegionOld==0] actionbar ["You are now entering a protected area."]
  233. :CONDITION: version < 1.11
  234. tellraw @a[tag=r_regionChange,score_r_inRegion_min=1,score_r_inRegionOld==0] [{"text":"[You are now entering a protected area]","color":"gray"}]
  235. scoreboard players test r_rSM r_regionOp 1
  236. :CONDITION: version >= 1.11
  237. :?: title @a[tag=r_regionChange,score_r_inRegion_min=1,score_r_inRegionOld_min=1] actionbar ["You are now switching protected areas"]
  238. :CONDITION: version < 1.11
  239. :?: tellraw @a[tag=r_regionChange,score_r_inRegion_min=1,score_r_inRegionOld_min=1] [{"text":"[You are now switching protected areas]","color":"gray"}]
  240. :CONDITION: version >= 1.11
  241. title @a[tag=r_regionChange,score_r_inRegion==0] actionbar ["You are now leaving a protected area."]
  242. :CONDITION: version < 1.11
  243. tellraw @a[tag=r_regionChange,score_r_inRegion==0] [{"text":"[You are now leaving a protected area]","color":"gray"}]
  244. execute @a[tag=r_regionChange,score_r_inRegion==0,m=2] ~ ~ ~ gamerule sendCommandFeedback false
  245. gamemode 0 @a[tag=r_regionChange,score_r_inRegion==0,m=2]
  246. scoreboard players tag @a[tag=r_regionChange,score_r_inRegion_min=1,m=0] add r_enteringRegion
  247. scoreboard players tag @a[tag=r_regionChange,score_r_inRegion_min=1,m=2] add r_enteringRegion
  248. scoreboard players tag @a[tag=r_enteringRegion,score_r_inRegion=0] remove r_enteringRegion
  249. execute @a[tag=r_regionChange,score_r_inRegion==0,m=0] ~ ~ ~ scoreboard players test r_sCF r_regionOp 1
  250. :?: gamerule sendCommandFeedback true
  251. execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_inRegionOld = @a[r=0,c=1] r_inRegion
  252.  
  253. ::section gamemode_updating
  254. :R!: testfor @a[tag=r_enteringRegion]
  255. :R?: scoreboard players tag @a[tag=r_enteringRegion,c=1] add r_updateMode
  256. execute @a[tag=r_updateMode] ~ ~ ~ execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionOp = @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionId
  257. execute @a[tag=r_updateMode] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region] r_regionOp -= @a[r=0,c=1] r_inRegion
  258. execute @a[tag=r_updateMode] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionOp==0] add r_controlRegion
  259. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @e[type=ArmorStand,tag=r_member,r=1] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_member,r=1,c=1] r_regionOp = @e[type=ArmorStand,tag=r_member,r=1,c=1] r_whitelist
  260. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_member,r=1] r_regionOp -= @a[tag=r_updateMode,c=1] r_playerId
  261. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @e[type=ArmorStand,tag=r_member,score_r_regionOp==0,r=1] ~ ~ ~ scoreboard players tag @a[tag=r_updateMode] add r_hasPermission
  262. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ gamerule sendCommandFeedback false
  263. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ gamemode 0 @a[tag=r_hasPermission,m=!0]
  264. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @a[tag=r_updateMode] ~ ~ ~ gamemode 2 @a[tag=!r_hasPermission,r=0,c=1,m=!2]
  265. execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ scoreboard players test r_sCF r_regionOp 1
  266. :?: gamerule sendCommandFeedback true
  267. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_controlRegion] remove r_controlRegion
  268. scoreboard players set @e[type=ArmorStand,tag=r_member] r_regionOp -1
  269. scoreboard players tag @a[tag=r_hasPermission] remove r_hasPermission
  270. scoreboard players tag @a[tag=r_updateMode] remove r_enteringRegion
  271. scoreboard players tag @a[tag=r_updateMode] remove r_updateMode
  272.  
  273. ::section add
  274. :R!: testfor @a[score_region_min=1]
  275. :R?: scoreboard players tag @a[score_region_min=1,c=1] add r_trigger
  276. #Return if not inside region
  277. tellraw @a[tag=r_trigger,score_r_inRegion=0] [{"text":"You must stand inside a region to perform this action.","color":"red"}]
  278. scoreboard players reset @a[tag=r_trigger,score_r_inRegion=0] region
  279. scoreboard players tag @a[tag=r_trigger,score_r_inRegion=0] remove r_trigger
  280. #Get region in question
  281. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionOp = @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionId
  282. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region] r_regionOp -= @a[r=0,c=1] r_inRegion
  283. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionOp==0] add r_controlRegion
  284. #Check if region is owned by executing player
  285. scoreboard players operation @a[tag=r_trigger] r_regionOp = @a[tag=r_trigger] r_playerId
  286. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ scoreboard players operation @a[tag=r_trigger] r_regionOp -= @e[type=ArmorStand,name=r_region,r=1,c=1] r_ownerId
  287. scoreboard players tag @a[tag=r_trigger,score_r_regionOp==0] add r_valid
  288. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[r=0,c=1,tag=!r_valid] [{"text":"You are not the owner of this region!","color":"red"}]
  289. scoreboard players reset @a[tag=r_trigger] r_regionOp
  290. scoreboard players reset @a[tag=!r_valid] region
  291. scoreboard players tag @a[tag=!r_valid] remove r_trigger
  292. scoreboard players tag @a[tag=r_valid] remove r_valid
  293. #Check if player is online
  294. execute @a[tag=r_trigger] ~ ~ ~ execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_regionOp = @a[r=0,c=1] r_playerId
  295. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players operation @a r_regionOp -= @a[r=0,c=1] region
  296. execute @a[tag=r_trigger] ~ ~ ~ execute @a[score_r_regionOp==0] ~ ~ ~ scoreboard players tag @a[tag=r_trigger] add r_valid
  297. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[tag=!r_valid,r=0,c=1] [{"text":"That player is not online!","color":"red"}]
  298. scoreboard players reset @a[tag=!r_valid] region
  299. scoreboard players tag @a[tag=!r_valid] remove r_trigger
  300. scoreboard players tag @a[tag=r_valid] remove r_valid
  301. #Check if player is already whitelisted
  302. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @e[type=ArmorStand,tag=r_member,r=1] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_member,r=0,c=1] r_regionOp = @e[type=ArmorStand,tag=r_member,r=0,c=1] r_whitelist
  303. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_member,r=1] r_regionOp -= @a[tag=r_trigger] region
  304. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @e[type=ArmorStand,tag=r_member,r=1,score_r_regionOp==0] ~ ~ ~ scoreboard players tag @a[tag=r_trigger] add r_duplicate
  305. tellraw @a[tag=r_duplicate] [{"text":"That player is already whitelisted!","color":"red"}]
  306. scoreboard players reset @a[tag=r_duplicate] region
  307. scoreboard players tag @a[tag=r_duplicate] remove r_trigger
  308. scoreboard players tag @a[tag=r_duplicate] remove r_duplicate
  309. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players set @e[type=ArmorStand,tag=r_member] r_regionOp -1
  310. #All conditions checked. Proceed to whitelist the player in question
  311. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ summon ArmorStand ~ ~ ~ {Marker:1b,Invisible:1b,NoGravity:1b,Tags:["r_member","r_newMember"]}
  312. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_newMember] r_whitelist = @a[tag=r_trigger] region
  313. execute @e[type=ArmorStand,tag=r_newMember] ~ ~ ~ tellraw @a[tag=r_trigger] [{"selector":"@a[score_r_regionOp==0]","color":"aqua"},{"text":" has been added to this region's whitelist!","color":"dark_aqua"}]
  314. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players set @a[score_r_regionOp==0] r_inRegionOld 0
  315. execute @e[type=ArmorStand,tag=r_newMember] ~ ~ ~ tellraw @a[score_r_regionOp==0] [{"text":"You have been added to ","color":"dark_aqua"},{"selector":"@a[tag=r_trigger]","color":"aqua"},{"text":"'s region's whitelist!","color":"dark_aqua"}]
  316. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players reset @a r_regionOp
  317. scoreboard players tag @e[type=ArmorStand,tag=r_newMember] remove r_newMember
  318. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_controlRegion] remove r_controlRegion
  319. scoreboard players reset @a[tag=r_trigger] region
  320. scoreboard players tag @a[tag=r_trigger] remove r_trigger
  321.  
  322. ::section remove
  323. :R!: testfor @a[score_region_remove_min=1]
  324. :R?: scoreboard players tag @a[score_region_remove_min=1,c=1] add r_trigger
  325. #Return if not inside region
  326. tellraw @a[tag=r_trigger,score_r_inRegion=0] [{"text":"You must stand inside a region to perform this action.","color":"red"}]
  327. scoreboard players reset @a[tag=r_trigger,score_r_inRegion=0] region_remove
  328. scoreboard players tag @a[tag=r_trigger,score_r_inRegion=0] remove r_trigger
  329. #Get region in question
  330. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionOp = @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionId
  331. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region] r_regionOp -= @a[r=0,c=1] r_inRegion
  332. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionOp==0] add r_controlRegion
  333. #Check if region is owned by executing player
  334. scoreboard players operation @a[tag=r_trigger] r_regionOp = @a[tag=r_trigger] r_playerId
  335. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ scoreboard players operation @a[tag=r_trigger] r_regionOp -= @e[type=ArmorStand,name=r_region,r=1,c=1] r_ownerId
  336. scoreboard players tag @a[tag=r_trigger,score_r_regionOp==0] add r_valid
  337. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[r=0,c=1,tag=!r_valid] [{"text":"You are not the owner of this region!","color":"red"}]
  338. scoreboard players reset @a[tag=r_trigger] r_regionOp
  339. scoreboard players reset @a[tag=!r_valid] region_remove
  340. scoreboard players tag @a[tag=!r_valid] remove r_trigger
  341. scoreboard players tag @a[tag=r_valid] remove r_valid
  342. #Check if player is trying to remove themselves
  343. scoreboard players operation @a[tag=r_trigger] r_regionOp = @a[tag=r_trigger] r_playerId
  344. scoreboard players operation @a[tag=r_trigger] r_regionOp -= @a[tag=r_trigger] region_remove
  345. scoreboard players tag @a[tag=r_trigger,score_r_regionOp==0] add r_invalid
  346. tellraw @a[tag=r_invalid] [{"text":"You cannot remove yourself from the region!","color":"red"}]
  347. scoreboard players reset @a[tag=r_invalid] r_regionOp
  348. scoreboard players reset @a[tag=r_invalid] region_remove
  349. scoreboard players tag @a[tag=r_invalid] remove r_trigger
  350. scoreboard players tag @a[tag=r_invalid] remove r_invalid
  351. #Check if player is online
  352. execute @a[tag=r_trigger] ~ ~ ~ execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_regionOp = @a[r=0,c=1] r_playerId
  353. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players operation @a r_regionOp -= @a[r=0,c=1] region_remove
  354. execute @a[tag=r_trigger] ~ ~ ~ execute @a[score_r_regionOp==0] ~ ~ ~ scoreboard players tag @a[tag=r_trigger] add r_online
  355. #Check if player is whitelisted
  356. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @e[type=ArmorStand,tag=r_member,r=1] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_member,r=1,c=1] r_regionOp = @e[type=ArmorStand,tag=r_member,r=1,c=1] r_whitelist
  357. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,tag=r_member,r=1] r_regionOp -= @a[tag=r_trigger] region_remove
  358. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ execute @e[type=ArmorStand,tag=r_member,r=1,score_r_regionOp==0] ~ ~ ~ scoreboard players tag @a[tag=r_trigger] add r_whitelisted
  359. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[tag=!r_whitelisted,r=0,c=1] [{"text":"That player is not whitelisted!","color":"red"}]
  360. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players reset @a[tag=!r_whitelisted,r=0,c=1] region_remove
  361. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players tag @a[tag=!r_whitelisted,r=0,c=1] remove r_trigger
  362. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players tag @a[tag=r_whitelisted,r=0,c=1] remove r_whitelisted
  363. #All conditions checked. Proceed to de-whitelist the player in question
  364. execute @a[tag=r_trigger] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ kill @e[type=ArmorStand,tag=r_member,score_r_regionOp==0]
  365. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[tag=r_online] [{"selector":"@a[score_r_regionOp==0]","color":"aqua"},{"text":" has been removed from this region's whitelist.","color":"dark_aqua"}]
  366. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players set @a[score_r_regionOp==0] r_inRegionOld 0
  367. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[tag=!r_online,r=0,c=1] [{"text":"This player has been removed from this region's whitelist.","color":"dark_aqua"}]
  368. execute @a[tag=r_trigger] ~ ~ ~ tellraw @a[score_r_regionOp==0] [{"text":"You have been removed from ","color":"dark_aqua"},{"selector":"@a[tag=r_trigger]","color":"aqua"},{"text":"'s region's whitelist.","color":"dark_aqua"}]
  369. execute @a[tag=r_trigger] ~ ~ ~ scoreboard players reset @a r_regionOp
  370. scoreboard players tag @a[tag=r_online] remove r_online
  371. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_controlRegion] remove r_controlRegion
  372. scoreboard players reset @a[tag=r_trigger] region_remove
  373. scoreboard players tag @a[tag=r_trigger] remove r_trigger
  374.  
  375. ::section misc
  376. :R!: scoreboard players enable @a region
  377. scoreboard players enable @a region_remove
  378. scoreboard players enable @a r_ui
  379. execute @e[type=ArmorStand,name=r_region] ~ ~ ~ entitydata @e[type=AreaEffectCloud,name=r_regionStat,r=1,c=1] {Age:0}
  380. scoreboard players set @e[type=AreaEffectCloud,name=r_regionStat] r_regionOp 0
  381. execute @e[type=ArmorStand,name=r_region] ~ ~ ~ particle portal ~ ~1 ~ 0 0 0 0.5 5
  382. scoreboard players tag @e[type=ArmorStand,name=!r_region,tag=r_member] add r_kill
  383. execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,tag=r_member,r=1] remove r_kill
  384. :MULTI:
  385. iterations: 4
  386. !i#:2;1,4
  387. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=1,c=1] ~-divide($s size%i;,2) ~-divide($s size%i;,2) ~-divide($s size%i;,2) scoreboard players tag @e[type=PrimedTnt,dx=$s size%i;,dy=$s size%i;,dz=$s size%i;] add r_kill {Fuse:1s}
  388. kill @e[tag=r_kill]
  389.  
  390. ::section destroy
  391. :R!: execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ detect ~ ~ ~ minecraft:air -1 execute @e[type=ArmorStand,name=r_region,tag=!r_init,r=1,c=1] ~ ~ ~ detect ~ ~1 ~ minecraft:skull -1 setblock ~ ~1 ~ air 0 destroy
  392. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ detect ~ ~1 ~ minecraft:air -1 execute @e[type=ArmorStand,name=r_region,tag=!r_init,r=1,c=1] ~ ~ ~ detect ~ ~ ~ minecraft:dropper 0 setblock ~ ~ ~ air 0
  393. :MULTI:
  394. iterations: 4
  395. !i#:2;1,4
  396. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_t%i,r=0,c=1] ~ ~ ~ detect ~ ~ ~ minecraft:air -1 summon AreaEffectCloud ~ ~ ~ {Tags:["r_regionItemT%i"]}
  397. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ detect ~ ~ ~ minecraft:air -1 scoreboard players tag @e[type=Item,r=1,c=1] add r_kill {Item:{id:minecraft:dropper,Count:1b}}
  398. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ detect ~ ~ ~ minecraft:air -1 kill @e[type=Item,tag=r_kill,r=1,c=1]
  399. execute @e[type=ArmorStand,name=r_region,tag=!r_init] ~ ~ ~ detect ~ ~ ~ minecraft:air -1 kill @e[type=ArmorStand,tag=r_member,r=1,c=1]
  400.  
  401. ::section interact
  402. :R!: execute @a[score_r_open_dropper_min=1] ~ ~ ~ testfor @e[type=AreaEffectCloud,name=r_regionStat,r=10]
  403. :R?: blockdata ~ ~-1 ~ {SuccessCount:0}
  404. execute @a[score_r_open_dropper_min=1] ~ ~ ~ execute @e[type=AreaEffectCloud,name=r_regionStat,r=10] ~ ~ ~ testforblock ~ ~ ~ minecraft:dropper 0 {Items:[]}
  405. execute @e[type=AreaEffectCloud,name=r_regionStat,score_r_regionOp_min=1] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,r=1,c=1] add r_interact
  406. execute @a[score_r_open_dropper_min=1] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,r=10] ~ ~ ~ setblock ~ ~ ~ minecraft:dropper 8
  407. execute @e[type=ArmorStand,name=r_region] ~ ~ ~ setblock ~ ~ ~ dropper 0 _ {CustomName:"Protection Block",LootTable:""}
  408. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_interact,c=1] add r_currentInteract
  409. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ execute @a[score_r_open_dropper_min=1,r=6] ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_regionOp = @a[r=0,c=1] r_playerId
  410. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ scoreboard players operation @a[score_r_open_dropper_min=1,r=6] r_regionOp -= @e[type=ArmorStand,name=r_region,r=1,c=1] r_ownerId
  411. :CONDITION: version >= 1.11
  412. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ title @a[score_r_open_dropper_min=1,r=6] actionbar [{"text":"You are not the owner of this region!","color":"red"}]
  413. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ title @a[score_r_open_dropper_min=1,score_r_regionOp==0,r=6] actionbar [""]
  414. :CONDITION: version < 1.11
  415. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ tellraw @a[score_r_open_dropper_min=1,score_r_regionOp=-1,r=6] [{"text":"You are not the owner of this region!","color":"red"}]
  416. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ tellraw@a[score_r_open_dropper_min=1,score_r_regionOp_min=1,r=6] [{"text":"You are not the owner of this region!","color":"red"}]
  417.  
  418. $shortcut bars {"text":"================================","bold":true,"strikethrough":true}
  419. $shortcut title {"text":"Region Control","bold":true,"color":"gold"}
  420. $shortcut managePlayers "\n ",{"text":"\n [ Manage members ]","color":"yellow","bold":true,"hoverEvent":{"action":"show_text","value":"Set who can and can't build in this region."},"clickEvent":{"action":"run_command","value":"/trigger r_ui set 1"}}
  421. $shortcut listPlayers "\n ",{"text":" [ List members ]","color":"yellow","bold":true,"hoverEvent":{"action":"show_text","value":"List all whitelisted players."},"clickEvent":{"action":"run_command","value":"/trigger r_ui set 4"}}
  422. $shortcut toggleOutlines "\n ",{"text":" [ Toggle outlines ]","color":"yellow","bold":true,"hoverEvent":{"action":"show_text","value":"Toggle visibility of region outlines."},"clickEvent":{"action":"run_command","value":"/trigger r_ui set 3"}}
  423. execute @e[type=ArmorStand,name=r_region,tag=r_currentInteract] ~ ~ ~ tellraw @a[score_r_open_dropper_min=1,score_r_regionOp==0,r=6] ["\n\n\n\n",$s bars;,"\n\n ",$s title;,"\n",$s managePlayers;,$s listPlayers;,"\n",$s toggleOutlines;,"\n\n",$s bars;]
  424.  
  425. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_currentInteract] remove r_interact
  426. scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_currentInteract] remove r_currentInteract
  427.  
  428. $newline
  429. :R!: scoreboard players reset @a[tag=r_dropperChecked] r_open_dropper
  430. scoreboard players tag @a[tag=r_dropperChecked] remove r_dropperChecked
  431. scoreboard players tag @a[score_r_open_dropper_min=2] add r_dropperChecked
  432. scoreboard players add @a[score_r_open_dropper_min=1] r_open_dropper 1
  433.  
  434. ::section triggers
  435. #Show player control
  436. :CONDITION: version >= 1.11
  437. :R!: title @a[score_r_ui==1,score_r_inRegion==0] actionbar [{"text":"You are not inside a region!","color":"red"}]
  438. :CONDITION: version < 1.11
  439. :R!: tellraw @a[score_r_ui==1,score_r_inRegion==0] [{"text":"You are not inside a region!","color":"red"}]
  440. scoreboard players reset @a[score_r_ui==1,score_r_inRegion==0] r_ui
  441. scoreboard players add @a[score_r_ui==1,c=1] r_ui 1
  442. #Get region within
  443. execute @a[score_r_ui==2] ~ ~ ~ execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionOp = @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionId
  444. execute @a[score_r_ui==2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region] r_regionOp -= @a[r=0,c=1] r_inRegion
  445. execute @a[score_r_ui==2] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionOp==0] add r_controlRegion
  446. #Check if region owned by executing player
  447. execute @a[score_r_ui==2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_regionOp = @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_ownerId
  448. execute @a[score_r_ui==2] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_regionOp -= @a[r=0,c=1] r_playerId
  449.  
  450. :CONDITION: version >= 1.11
  451. execute @a[score_r_ui==2] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ title @a[score_r_ui==4] actionbar [{"text":"You are not the owner of this region!","color":"red"}]
  452. execute @a[score_r_ui==2] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp==0] ~ ~ ~ title @a[score_r_ui==2] actionbar [""]
  453. :CONDITION: version < 1.11
  454. execute @a[score_r_ui==2] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp=-1] ~ ~ ~ tellraw @a[score_r_ui==2] [{"text":"You are not the owner of this region!","color":"red"}]
  455. execute @a[score_r_ui==2] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp_min=1] ~ ~ ~ tellraw @a[score_r_ui==2] [{"text":"You are not the owner of this region!","color":"red"}
  456. execute @a[score_r_ui==2] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp=-1] ~ ~ ~ scoreboard players reset @a[score_r_ui==2] r_ui
  457.  
  458. scoreboard players tag @a[score_r_ui==2] add r_managePlayers
  459. scoreboard players reset @a[score_r_ui==2] r_ui
  460. #Toggle outlines
  461. scoreboard players tag @a[score_r_ui==3,tag=!r_viewRegions] add r_enableView
  462. scoreboard players tag @a[score_r_ui==3,tag=r_viewRegions] remove r_viewRegions
  463. scoreboard players tag @a[score_r_ui==3,tag=r_enableView] add r_viewRegions
  464. scoreboard players tag @a[score_r_ui==3,tag=r_enableView] remove r_enableView
  465. :CONDITION: version >= 1.11
  466. title @a[score_r_ui==3,tag=!r_viewRegions] actionbar [{"text":"Region outlines have been ","color":"gold"},{"text":"DISABLED","color":"red","bold":true}]
  467. title @a[score_r_ui==3,tag=r_viewRegions] actionbar [{"text":"Region outlines have been ","color":"gold"},{"text":"ENABLED","color":"green","bold":true}]
  468. :CONDITION: version < 1.11
  469. tellraw @a[score_r_ui==3,tag=!r_viewRegions] [{"text":"Region outlines have been ","color":"gold"},{"text":"DISABLED","color":"red","bold":true}]
  470. tellraw @a[score_r_ui==3,tag=r_viewRegions] [{"text":"Region outlines have been ","color":"gold"},{"text":"ENABLED","color":"green","bold":true}]
  471.  
  472. scoreboard players reset @a[score_r_ui==3] r_ui
  473. scoreboard players add @a[score_r_ui==4,c=1] r_ui 1
  474. #List members
  475. #Check if inside region
  476. :CONDITION: version >= 1.11
  477. title @a[score_r_ui==5,score_r_inRegion==0] actionbar [{"text":"You are not inside a region!","color":"red"}]
  478. :CONDITION: version < 1.11
  479. tellraw @a[score_r_ui==5,score_r_inRegion==0] [{"text":"You are not inside a region!","color":"red"}]
  480.  
  481. scoreboard players reset @a[score_r_ui==5,score_r_inRegion==0] r_ui
  482. #Get region within
  483. execute @a[score_r_ui==5] ~ ~ ~ execute @e[type=ArmorStand,name=r_region] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionOp = @e[type=ArmorStand,name=r_region,r=1,c=1] r_regionId
  484. execute @a[score_r_ui==5] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region] r_regionOp -= @a[r=0,c=1] r_inRegion
  485. execute @a[score_r_ui==5] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,score_r_regionOp==0] add r_controlRegion
  486. #Check if region owned by executing player
  487. execute @a[score_r_ui==5] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_regionOp = @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_ownerId
  488. execute @a[score_r_ui==5] ~ ~ ~ scoreboard players operation @e[type=ArmorStand,name=r_region,tag=r_controlRegion] r_regionOp -= @a[r=0,c=1] r_playerId
  489.  
  490. :CONDITION: version >= 1.11
  491. execute @a[score_r_ui==5] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion] ~ ~ ~ title @a[score_r_ui==5] actionbar [{"text":"You are not the owner of this region!","color":"red"}]
  492. execute @a[score_r_ui==5] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp==0] ~ ~ ~ title @a[score_r_ui==5] actionbar [""]
  493. :CONDITION: version < 1.11
  494. execute @a[score_r_ui==5] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp=-1] ~ ~ ~ tellraw @a[score_r_ui==5] [{"text":"You are not the owner of this region!","color":"red"}]
  495. execute @a[score_r_ui==5] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp_min=1] ~ ~ ~ tellraw @a[score_r_ui==5] [{"text":"You are not the owner of this region!","color":"red"}]
  496.  
  497. execute @a[score_r_ui==5] ~ ~ ~ execute @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp==0] ~ ~ ~ tellraw @a[score_r_ui==5] ["\n",{"text":" Whitelisted Players:","color":"aqua","bold":"true"}]
  498. execute @a[score_r_ui==5] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_controlRegion,score_r_regionOp==0] add r_listAllMembers
  499. execute @a[score_r_ui==5] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,name=r_region,tag=r_controlRegion] remove r_controlRegion
  500. scoreboard players reset @a[score_r_ui==5] r_ui
  501.  
  502. #::section list_buffer
  503. execute @e[type=ArmorStand,tag=r_listAllMembers,c=1] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,tag=r_member,r=1] add r_listMembers
  504. scoreboard players tag @e[type=ArmorStand,tag=r_listAllMembers,c=1] remove r_listAllMembers
  505.  
  506. ::section list_members
  507. :R!: testfor @e[type=ArmorStand,tag=r_listMembers]
  508. :R?: scoreboard players tag @e[type=ArmorStand,tag=r_listMembers,c=1] add r_list
  509. execute @e[type=ArmorStand,tag=r_list] ~ ~ ~ execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_regionOp = @a[r=0,c=1] r_playerId
  510. execute @e[type=ArmorStand,tag=r_list] ~ ~ ~ scoreboard players operation @a r_regionOp -= @e[type=ArmorStand,tag=r_list,r=1,c=1] r_whitelist
  511. execute @e[type=ArmorStand,tag=r_list] ~ ~ ~ scoreboard players tag @a[score_r_regionOp==0] add r_listedPlayer
  512. execute @e[type=ArmorStand,tag=r_list] ~ ~ ~ execute @a[tag=r_listedPlayer] ~ ~ ~ scoreboard players tag @e[type=ArmorStand,tag=r_list] add r_online
  513. execute @e[type=ArmorStand,tag=r_list] ~ ~ ~ execute @a ~ ~ ~ scoreboard players operation @a[r=0,c=1] r_regionOp = @a[r=0,c=1] r_playerId
  514. execute @e[type=ArmorStand,tag=r_list] ~ ~ ~ scoreboard players operation @a r_regionOp -= @e[type=ArmorStand,name=r_region,r=1,c=1] r_ownerId
  515. scoreboard players set @e[type=ArmorStand,tag=r_list] r_regionOp 1
  516. scoreboard players set @e[type=ArmorStand,tag=r_online] r_regionOp 2
  517. execute @e[type=ArmorStand,tag=r_list,score_r_regionOp==1] ~ ~ ~ tellraw @a[score_r_regionOp==0] [" ",{"text":"» ","color":"red","hoverEvent":{"action":"show_text","value":"Offline"}},{"text":"Player ID ","color":"yellow"},{"score":{"objective":"r_whitelist","name":"@e[type=ArmorStand,tag=r_list]"},"color":"yellow"},{"text":" ﹖ ","color":"gray","hoverEvent":{"action":"show_text","value":"This player is not online, therefore\ntheir username is not available."}}]
  518. execute @e[type=ArmorStand,tag=r_list,score_r_regionOp==2] ~ ~ ~ tellraw @a[score_r_regionOp==0] [" ",{"text":"» ","color":"green","hoverEvent":{"action":"show_text","value":"Online"}},{"selector":"@a[tag=r_listedPlayer]","color":"yellow"}]
  519. scoreboard players tag @e[tag=r_online] remove r_online
  520. scoreboard players tag @e[tag=r_list] remove r_listMembers
  521. scoreboard players tag @e[tag=r_list] remove r_list
  522. scoreboard players tag @a[tag=r_listedPlayer] remove r_listedPlayer
  523.  
  524. ::section crafting
  525. :R!: scoreboard players reset @e[type=item] r_item
  526. execute @e[type=Item] ~ ~ ~ detect ~ ~-1 ~ minecraft:crafting_table -1 scoreboard players set @e[type=Item,r=0,c=1] r_item 1 {Item:{id:"minecraft:repeater",Count:1b}}
  527. execute @e[type=Item] ~ ~ ~ detect ~ ~-1 ~ minecraft:crafting_table -1 scoreboard players set @e[type=Item,r=0,c=1] r_item 2 {Item:{id:"minecraft:wooden_pickaxe",Count:1b}}
  528. execute @e[type=Item] ~ ~ ~ detect ~ ~-1 ~ minecraft:crafting_table -1 scoreboard players set @e[type=Item,r=0,c=1] r_item 3 {Item:{id:"minecraft:stone_pickaxe",Count:1b}}
  529. execute @e[type=Item] ~ ~ ~ detect ~ ~-1 ~ minecraft:crafting_table -1 scoreboard players set @e[type=Item,r=0,c=1] r_item 4 {Item:{id:"minecraft:iron_pickaxe",Count:1b}}
  530. execute @e[type=Item] ~ ~ ~ detect ~ ~-1 ~ minecraft:crafting_table -1 scoreboard players set @e[type=Item,r=0,c=1] r_item 5 {Item:{id:"minecraft:golden_pickaxe",Count:1b}}
  531. :MULTI:
  532. iterations:4
  533. !i#:2;1,4
  534. !j#:2;2,5
  535. execute @e[type=Item,score_r_item==1] ~ ~ ~ execute @e[type=Item,score_r_item==%j,r=1,c=1] ~ ~ ~ summon AreaEffectCloud ~ ~ ~ {Tags:["r_regionItem","r_regionItemT%i"]}
  536. execute @e[type=AreaEffectCloud,tag=r_regionItem] ~ ~ ~ kill @e[type=Item,score_r_item==1,r=1,c=1]
  537. :MULTI:
  538. iterations:4
  539. !i#:2;1,4
  540. !j#:2;2,5
  541. execute @e[type=AreaEffectCloud,tag=r_regionItemT%i] ~ ~ ~ kill @e[type=Item,score_r_item==%j,r=1,c=1]
  542. execute @e[type=AreaEffectCloud,tag=r_regionItem] ~ ~ ~ particle witchMagic ~ ~ ~ 0.25 0.25 0.25 5 20
  543. execute @e[type=AreaEffectCloud,tag=r_regionItem] ~ ~ ~ playsound minecraft:entity.horse.armor master @a ~ ~ ~ 1 0.75 0
  544. :MULTI:
  545. iterations:4
  546. !i#:2;1,4
  547. execute @e[tag=r_regionItemT%i] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:"minecraft:armor_stand",Count:1b,tag:{ench:[{id:-1}],display:{Name:"§dSet Region §5[Tier %i]§r",Lore:[" §7Protects a $s size%i;x$s size%i;x$s size%i;"," §7area from other players, and"," §7stops them from placing blocks."]},EntityTag:{CustomName:r_region,Tags:["r_init","r_t%i"],NoGravity:1b}}}}
  548. tp @e[tag=r_regionItem] ~ -512 ~
  549.  
  550. ::section uninstall
  551. :I: setblock ~ ~ ~ carpet
  552. :I!: tellraw @a ["\n\n",{"text":" Protection Blocks ","color":"red","bold":true},{"text":"by Energyxxer","color":"red","italic":true},{"text":"\n have been successfully uninstalled.","color":"dark_red","italic":true},"\n\n"]
  553. scoreboard objectives remove r_playerId
  554. scoreboard objectives remove r_regionId
  555. scoreboard objectives remove r_regionOp
  556. scoreboard objectives remove r_item
  557. scoreboard objectives remove r_inRegion
  558. scoreboard objectives remove r_inRegionOld
  559. scoreboard objectives remove r_inRegionDiff
  560. scoreboard objectives remove r_ownerId
  561. scoreboard objectives remove r_whitelist
  562. scoreboard objectives remove r_use_stand
  563. scoreboard objectives remove r_open_dropper
  564. scoreboard objectives remove region
  565. scoreboard objectives remove region_remove
  566. scoreboard objectives remove r_ui
  567. execute @e[type=ArmorStand,name=r_region] ~ ~ ~ fill ~ ~ ~ ~ ~1 ~ air
  568. kill @e[type=ArmorStand,tag=r_member]
  569. kill @e[type=AreaEffectCloud,name=r_regionStat]
  570. fill $pos a add x -3;$pos a add y -2;$pos a add z -1;$pos a get; ~3 ~5 ~1 minecraft:air
  571.  
  572. ::section install
  573. :I!: $pos d set; gamerule regionSwitchMessages true
  574. tellraw @a ["\n\n",{"text":" Protection Blocks ","color":"aqua","bold":true},{"text":"by Energyxxer","color":"aqua","italic":true},{"text":"\n have been successfully installed.","color":"dark_aqua","italic":true},"\n\n"]
  575. scoreboard objectives add r_playerId dummy Regions - Player ID
  576. scoreboard objectives add r_regionId dummy Regions - Region ID
  577. scoreboard objectives add r_regionOp dummy Regions - Region Operations
  578. scoreboard objectives add r_item dummy Regions - Item
  579. scoreboard objectives add r_inRegion dummy Regions - Region Within ID
  580. scoreboard objectives add r_inRegionOld dummy Regions - Old Region Within ID
  581. scoreboard objectives add r_inRegionDiff dummy Regions - Change in Region ID
  582. scoreboard objectives add r_ownerId dummy Regions - Region Owner ID
  583. scoreboard objectives add r_whitelist dummy Regions - Region Member ID
  584. scoreboard objectives add r_use_stand stat.useItem.minecraft.armor_stand Regions - Use Armor Stand
  585. scoreboard objectives add r_open_dropper stat.dropperInspected Regions - Inspect Dropper
  586. scoreboard objectives add region trigger Region Command Trigger
  587. scoreboard objectives add region_remove trigger Region Command Trigger 2
  588. scoreboard objectives add r_ui trigger Region Command Trigger 3
  589. scoreboard players set r_sCF r_regionOp 0
  590. scoreboard players set r_rSM r_regionOp 0
  591. fill $pos b add x -1;$pos b add y -1;$pos b get; ~1 ~-3 ~ redstone_block
  592. clone ~1 ~-3 ~-2 ~1 ~4 ~ $pos d get;
  593. :I: blockdata $pos d get; {auto:1b}
  594.  
  595. ::section after
  596. setblock ~4 ~1 ~-1 minecraft:command_block 1 {TrackOutput:0b,Command:"blockdata ~ ~ ~ {auto:0b}"}
  597. setblock ~4 ~2 ~-1 minecraft:chain_command_block 1 {auto:1b,TrackOutput:0b,Command:"fill ~ ~-3 ~ ~24 ~-3 ~2 minecraft:stained_hardened_clay 14 replace minecraft:redstone_block"}
  598. setblock ~4 ~3 ~-1 minecraft:chain_command_block 1 {auto:1b,TrackOutput:0b,Command:"fill ~ ~-4 ~ ~24 ~-4 ~2 minecraft:redstone_block 0 replace minecraft:wool"}
  599. setblock ~4 ~4 ~-1 minecraft:chain_command_block 1 {auto:1b,TrackOutput:0b,Command:"fill ~ ~-5 ~ ~24 ~-5 ~2 minecraft:wool 14 replace minecraft:stained_hardened_clay"}
  600. setblock ~4 ~5 ~-1 minecraft:chain_command_block 9 {auto:1b,TrackOutput:0b,Command:"tellraw @a [{\"text\":\" Protection Blocks have been \",\"color\":\"gold\"},{\"text\":\"DISABLED\",\"color\":\"red\",\"bold\":true}]"}
  601. setblock ~4 ~6 ~-1 minecraft:chain_command_block 9 {auto:1b,TrackOutput:0b,Command:"entitydata @e[type=AreaEffectCloud,name=r_regionStat] {Duration:2147483647}"}
  602. setblock ~4 ~7 ~-1 minecraft:chain_command_block 3 {auto:1b,TrackOutput:0b,Command:"blockdata ~ ~-2 ~ {SuccessCount:1}"}
  603. setblock ~4 ~7 ~ minecraft:chain_command_block 11 {auto:1b,TrackOutput:0b,Command:"tellraw @a [{\"text\":\" Protection Blocks have been \",\"color\":\"gold\"},{\"text\":\"ENABLED\",\"color\":\"green\",\"bold\":true}]"}
  604. setblock ~4 ~7 ~1 minecraft:chain_command_block 11 {auto:1b,TrackOutput:0b,Command:"entitydata @e[type=AreaEffectCloud,name=r_regionStat] {Duration:4,Age:0}"}
  605.  
  606. setblock ~4 ~3 ~ minecraft:chain_command_block 0 {auto:1b,TrackOutput:0b,Command:"setblock ~-2 ~2 ~ minecraft:wall_sign 4 _ {Text1:\"{\\\"text\\\":\\\"Protection\\\",\\\"color\\\":\\\"dark_purple\\\",\\\"bold\\\":true}\",Text2:\"{\\\"text\\\":\\\"Blocks\\\",\\\"color\\\":\\\"dark_purple\\\",\\\"bold\\\":true}\",Text3:\"{\\\"text\\\":\\\"by Energyxxer\\\",\\\"color\\\":\\\"blue\\\",\\\"italic\\\":true}}\",Text4:\"{\\\"text\\\":\\\"\\\"}\"}"}
  607. setblock ~4 ~2 ~ minecraft:chain_command_block 1 {auto:1b,TrackOutput:0b,Command:"setblock ~-2 ~ ~ minecraft:wall_sign 4 _ {Text1:\"{\\\"text\\\":\\\"==========\\\",\\\"color\\\":\\\"dark_purple\\\",\\\"bold\\\":true,\\\"strikethrough\\\":true,\\\"clickEvent\\\":{\\\"action\\\":\\\"run_command\\\",\\\"value\\\":\\\"blockdata ~2 ~-1 ~-1 {auto:1b}\\\"}}\",Text2:\"{\\\"text\\\":\\\"Toggle\\\",\\\"color\\\":\\\"dark_purple\\\",\\\"bold\\\":true}\",Text3:\"[\\\"\\\",{\\\"text\\\":\\\"ON\\\",\\\"color\\\":\\\"green\\\"},\\\"/\\\",{\\\"text\\\":\\\"OFF\\\",\\\"color\\\":\\\"dark_red\\\"}]\",Text4:\"{\\\"text\\\":\\\"==========\\\",\\\"color\\\":\\\"dark_purple\\\",\\\"bold\\\":true,\\\"strikethrough\\\":true}\"}"}
  608. setblock ~4 ~1 ~ minecraft:repeating_command_block 1 {auto:1b,TrackOutput:0b,Command:"setblock ~-2 ~ ~ minecraft:wall_sign 4 _ {Text1:\"{\\\"text\\\":\\\"==========\\\",\\\"color\\\":\\\"dark_red\\\",\\\"bold\\\":true,\\\"strikethrough\\\":true,\\\"clickEvent\\\":{\\\"action\\\":\\\"run_command\\\",\\\"value\\\":\\\"blockdata ~24 ~ ~-1 {auto:1b}\\\"}}\",Text2:\"{\\\"text\\\":\\\" /!\\\\\\\\ \\\",\\\"color\\\":\\\"red\\\",\\\"bold\\\":true}\",Text3:\"{\\\"text\\\":\\\"Uninstall\\\",\\\"color\\\":\\\"red\\\",\\\"bold\\\":true}\",Text4:\"{\\\"text\\\":\\\"==========\\\",\\\"color\\\":\\\"dark_red\\\",\\\"bold\\\":true,\\\"strikethrough\\\":true}\"}"}
Advertisement
Add Comment
Please, Sign In to add comment