ZeinFIre

Untitled

Dec 26th, 2018
520
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 84.87 KB | None | 0 0
  1. on load:
  2. # don't change
  3. set {minigamesapi::game} to "BEDWARS"
  4. set {minigamesapi::game_version} to "a/17.10"
  5. # ----------------
  6. set {SW::Prefix} to "&c&lMINECROWD &4➥&7"
  7. set {SW::SC_Header} to "&c&lMINECROWD"
  8. set {SW::Starting_Cooldown} to 10
  9. set {SW::Upgrade-Timer} to 300
  10. {SW::Bungee_Arena} is not set:
  11. set {SW::Bungee_Arena} to "*"
  12. {SW::Bungee_Lobby} is not set:
  13. set {SW::Bungee_Lobby} to "Lobby"
  14. set {SW::Bungee_Mode} to "true"
  15. set {SW::Schematics} to "true"
  16. set {SW::Map_Regen_Type} to "Schematic"
  17. set {SW::GameMinutes} to 25
  18. #
  19. function upgradeAPI(Arena: text):
  20. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  21. set {_Tier} to checkFileSKY("Datas.Upgrade-Tier", "arenas/%{_Arena}%") parsed as number
  22. set {_Beds::*} to configuration section "Datas.Bed" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  23. wait 1 tick
  24. set {_tip.Diamond::*} to configuration section "Datas.Diamond" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  25. set {_tip.Emerald::*} to configuration section "Datas.Emerald" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  26. loop size of {_tip.Diamond::*} times:
  27. set {_x} to checkFileSKY("Datas.Diamond.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  28. set {_y} to checkFileSKY("Datas.Diamond.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  29. set {_z} to checkFileSKY("Datas.Diamond.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  30. set {_w} to checkFileSKY("Datas.Diamond.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  31. set {_Location.Diamond::%loop-number%} to location ({_x}, {_y}+4, {_z}) in world {_w}
  32. #create holo object "%{SW::Messages::Type_Diamond}%" with id "%{_Arena}%_Diamond-%loop-number%" at {_Location.Diamond::%loop-number%}
  33. create a new hologram display "%{SW::Messages::Temp_Holo_Lines_1}%" at {_Location.Diamond::%loop-number%} with id "%{_Arena}%_Diamond-%loop-number%"
  34. #(add|set|change) line %integer% (at|from) hologram with id %string% (to|with) item %string%
  35. set line 2 at hologram with id "%{_Arena}%_Diamond-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_2}%"
  36. set line 3 at hologram with id "%{_Arena}%_Diamond-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_3}%"
  37. set line 4 at hologram with id "%{_Arena}%_Diamond-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_4}%"
  38. set line 5 at hologram with id "%{_Arena}%_Diamond-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_5}%"
  39. loop size of {_tip.Emerald::*} times:
  40. set {_x} to checkFileSKY("Datas.Emerald.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  41. set {_y} to checkFileSKY("Datas.Emerald.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  42. set {_z} to checkFileSKY("Datas.Emerald.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  43. set {_w} to checkFileSKY("Datas.Emerald.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  44. set {_Location.Emerald::%loop-number%} to location ({_x}, {_y}+4, {_z}) in world {_w}
  45. #create holo object "%{SW::Messages::Type_Emerald}%" with id "%{_Arena}%_Emerald-%loop-number%" at {_Location.Emerald::%loop-number%}
  46. create a new hologram display "%{SW::Messages::Temp_Holo_Lines_1}%" at {_Location.Emerald::%loop-number%} with id "%{_Arena}%_Emerald-%loop-number%"
  47. set line 2 at hologram with id "%{_Arena}%_Emerald-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_2}%"
  48. set line 3 at hologram with id "%{_Arena}%_Emerald-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_3}%"
  49. set line 4 at hologram with id "%{_Arena}%_Emerald-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_4}%"
  50. set line 5 at hologram with id "%{_Arena}%_Emerald-%loop-number%" to "%{SW::Messages::Temp_Holo_Lines_5}%"
  51.  
  52. wait 3 ticks
  53. set {_UpgradeSeconds} to checkFileSKY("Datas.Upgrade-Timer", "arenas/%{_Arena}%") parsed as number
  54. while 1 is 1:
  55. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2":
  56. if {_UpgradeSeconds} is greater than 0:
  57. remove 1 from {_UpgradeSeconds}
  58. writeFileSKY("Datas.Upgrade-Timer", "%{_UpgradeSeconds}%", "arenas/%{_Arena}%")
  59. else:
  60. Set {_Tier} to checkFileSKY("Datas.Upgrade-Tier", "arenas/%{_Arena}%") parsed as number
  61. add 1 to {_Tier}
  62. if {_Tier} is 1 or 2 or 3:
  63. loop size of {_tip.Diamond::*} times:
  64. #holo object "%{_Arena}%_Diamond-%loop-number%" exists:
  65. # edit holo object "%{_Arena}%_Diamond-%loop-number%" line 4 to "%{SW::Messages::Tier_Text}%%{SW::Messages::Text_Roman_%{_Tier}%}%"
  66. change line 3 at hologram with id "%{_Arena}%_Diamond-%loop-number%" with "%{SW::Messages::Tier_Text}%%{SW::Messages::Text_Roman_%{_Tier}%}%"
  67. loop size of {_tip.Emerald::*} times:
  68. #holo object "%{_Arena}%_Emerald-%loop-number%" exists:
  69. # edit holo object "%{_Arena}%_Emerald-%loop-number%" line 4 to "%{SW::Messages::Tier_Text}%%{SW::Messages::Text_Roman_%{_Tier}%}%"
  70. change line 3 at hologram with id "%{_Arena}%_Emerald-%loop-number%" with "%{SW::Messages::Tier_Text}%%{SW::Messages::Text_Roman_%{_Tier}%}%"
  71. else if {_Tier} is 4:
  72. loop size of {_Beds::*} times:
  73. set {_x} to checkFileSKY("Datas.Bed.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  74. set {_y} to checkFileSKY("Datas.Bed.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  75. set {_z} to checkFileSKY("Datas.Bed.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  76. set {_w} to checkFileSKY("Datas.Bed.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  77. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.x", "%{_x}%", "arenas/%{_Arena}%")
  78. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.y", "%{_y}%", "arenas/%{_Arena}%")
  79. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.z", "%{_z}%", "arenas/%{_Arena}%")
  80. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.world", "%{_w}%", "arenas/%{_Arena}%")
  81. set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  82. set block at {_Location::%loop-number%} to air
  83. "%type of block at block north {_Location::%loop-number%}%" is "bed_block":
  84. set block at block north {_Location::%loop-number%} to air
  85. "%type of block at block south {_Location::%loop-number%}%" is "bed_block":
  86. set block at block south {_Location::%loop-number%} to air
  87. "%type of block at block west {_Location::%loop-number%}%" is "bed_block":
  88. set block at block west {_Location::%loop-number%} to air
  89. "%type of block at block east {_Location::%loop-number%}%" is "bed_block":
  90. set block at block east {_Location::%loop-number%} to air
  91. writeFileSKY("Datas.Team-Status.%loop-number%", "false", "arenas/%{_Arena}%")
  92. writeFileSKY("Datas.Upgrade-Tier", "%{_Tier}%", "arenas/%{_Arena}%")
  93. {_Tier} is greater or equal to 4:
  94. stop
  95. writeFileSKY("Datas.Upgrade-Timer", "%{SW::Upgrade-Timer}%", "arenas/%{_Arena}%")
  96. set {_UpgradeSeconds} to {SW::Upgrade-Timer}
  97. wait 1 second
  98. else:
  99. stop
  100. function dropMiddle(Arena: text, Type: text):
  101. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  102. set {_Spot::*} to configuration section "Datas.%{_Type}%" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  103. set {_UpgradeSeconds} to checkFileSKY("Datas.Drop-Timings.%{_Type}%", "arenas/%{_Arena}%") parsed as number
  104. set {_tip::*} to configuration section "Datas.Diamond" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  105. while 1 is 1:
  106. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2":
  107. set {_Tier} to checkFileSKY("Datas.Upgrade-Tier", "arenas/%{_Arena}%")
  108. if {_UpgradeSeconds} is greater than 0:
  109. remove 1 from {_UpgradeSeconds}
  110. writeFileSKY("Datas.Drop-Timings.%{_Type}%", "%{_UpgradeSeconds}%", "arenas/%{_Arena}%")
  111. #if {_UpgradeSeconds} is greater than 60:
  112. # set {_dk2} to rounded down {_UpgradeSeconds}/60
  113. # set {_mid2} to {_dk2}*60
  114. # set {_sn2} to {_UpgradeSeconds}-{_mid2}
  115. # {_sn2} is less than 10:
  116. # set {_sn2} to "0%{_sn2}%"
  117. # {_dk2} is less than 10:
  118. # set {_dk2} to "0%{_dk2}%"
  119. # set {_utime} to "%{_dk2}%:%{_sn2}%"
  120. #else:
  121. set {_utime} to "%{_UpgradeSeconds}%"
  122. loop size of {_tip::*} times:
  123. #holo object "%{_Arena}%_%{_Type}%-%loop-number%" exists:
  124. # edit holo object "%{_Arena}%_%{_Type}%-%loop-number%" line 5 to "%{SW::Messages::Spawns_In}%%{_utime}%"
  125. change line 4 at hologram with id "%{_Arena}%_%{_Type}%-%loop-number%" with "%{SW::Messages::Spawns_In}%%{_utime}%"
  126. else:
  127. loop size of {_Spot::*} times:
  128. set {_x} to checkFileSKY("Datas.%{_Type}%.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  129. set {_y} to checkFileSKY("Datas.%{_Type}%.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  130. set {_z} to checkFileSKY("Datas.%{_Type}%.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  131. set {_w} to checkFileSKY("Datas.%{_Type}%.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  132. set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  133. drop {SW::Messages::Middle_Item_%{_Type}%} at block 1 above block 1 forward {_Location::%loop-number%} without velocity
  134. writeFileSKY("Datas.Drop-Timings.%{_type}%", "%{SW::Messages::Tier_%{_Tier}%_%{_Type}%}%", "arenas/%{_Arena}%")
  135. set {_UpgradeSeconds} to {SW::Messages::Tier_%{_Tier}%_%{_Type}%}
  136. wait 1 seconds
  137. else:
  138. stop
  139. stop
  140. function dropIngots(Arena: text, Spot: number, Type: number):
  141. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  142. while 1 is 1:
  143. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2":
  144. set {_Dropper} to checkFileSKY("Datas.Dropper-Tiers.%{_Spot}%", "arenas/%{_Arena}%")
  145. set {_x} to checkFileSKY("Datas.Item.%{_Spot}%.x", "maps/%{_CurrentMap}%") parsed as number
  146. set {_y} to checkFileSKY("Datas.Item.%{_Spot}%.y", "maps/%{_CurrentMap}%") parsed as number
  147. set {_z} to checkFileSKY("Datas.Item.%{_Spot}%.z", "maps/%{_CurrentMap}%") parsed as number
  148. set {_w} to checkFileSKY("Datas.Item.%{_Spot}%.world", "maps/%{_CurrentMap}%") parsed as world
  149. set {_Location::%{_Spot}%} to location ({_x}, {_y}, {_z}) in world {_w}
  150. drop {SW::Messages::Item_%{_Type}%} at block 1 above {_Location::%{_Spot}%} without velocity
  151. wait {SW::Messages::Dropper_Item_Timings_%{_Type}%_Tier_%{_Dropper}%}
  152. else:
  153. stop
  154. stop
  155. function bedAPI(Arena: text):
  156. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  157. set {_Beds::*} to configuration section "Datas.Bed" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  158. loop size of {_Beds::*} times:
  159. set {_x} to checkFileSKY("Datas.Bed.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  160. set {_y} to checkFileSKY("Datas.Bed.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  161. set {_z} to checkFileSKY("Datas.Bed.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  162. set {_w} to checkFileSKY("Datas.Bed.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  163. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.x", "%{_x}%", "arenas/%{_Arena}%")
  164. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.y", "%{_y}%", "arenas/%{_Arena}%")
  165. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.z", "%{_z}%", "arenas/%{_Arena}%")
  166. writeFileSKY("Datas.Temp-Bed-Locations.%loop-number%.world", "%{_w}%", "arenas/%{_Arena}%")
  167. set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  168. set block at block north {_Location::%loop-number%} to air
  169. set block at block south {_Location::%loop-number%} to air
  170. set block at block west {_Location::%loop-number%} to air
  171. set block at block east {_Location::%loop-number%} to air
  172. set block at {_Location::%loop-number%} to air
  173. wait 1 ticks
  174. set block at {_Location::%loop-number%} to bed_block:8
  175. set {_ItemShop::*} to configuration section "Datas.ItemShop" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  176. loop size of {_ItemShop::*} times:
  177. set {_x} to checkFileSKY("Datas.ItemShop.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  178. set {_y} to checkFileSKY("Datas.ItemShop.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  179. set {_z} to checkFileSKY("Datas.ItemShop.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  180. set {_w} to checkFileSKY("Datas.ItemShop.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  181. set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  182. loop all entities in radius 3 around {_Location::%loop-number%}:
  183. citizen id of loop-entity is set
  184. destroy citizen citizen id of loop-entity
  185. create citizen named "%{SW::Messages::Item_Shop_NPC}%" at {_Location::%loop-number%}
  186. change citizen last created citizen skin to "MHF_Villager"
  187. set npc last created citizen the look close trait
  188. set citizen last created citizen nametag visible
  189. writeFileSKY("Datas.Shop-NPC.%loop-number%", "%last created citizen%", "arenas/%{_Arena}%")
  190. set {_Upgrades::*} to configuration section "Datas.Upgrade" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  191. loop size of {_Upgrades::*} times:
  192. set {_x} to checkFileSKY("Datas.Upgrade.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  193. set {_y} to checkFileSKY("Datas.Upgrade.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  194. set {_z} to checkFileSKY("Datas.Upgrade.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  195. set {_w} to checkFileSKY("Datas.Upgrade.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  196. set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  197. loop all entities in radius 3 around {_Location::%loop-number%}:
  198. citizen id of loop-entity is set
  199. destroy citizen citizen id of loop-entity
  200. create citizen named "%{SW::Messages::Upgrade}%" at {_Location::%loop-number%}
  201. change citizen last created citizen skin to "dkznike"
  202. set npc last created citizen the look close trait
  203. set citizen last created citizen nametag visible
  204. writeFileSKY("Datas.Upgrade-NPC.%loop-number%", "%last created citizen%", "arenas/%{_Arena}%")
  205. set {_Item::*} to configuration section "Datas.Item" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  206. loop size of {_Item::*} times:
  207. #set {_x} to checkFileSKY("Datas.Item.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  208. #set {_y} to checkFileSKY("Datas.Item.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  209. #set {_z} to checkFileSKY("Datas.Item.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  210. #set {_w} to checkFileSKY("Datas.Item.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  211. #set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  212. writeFileSKY("Datas.Dropper-Tiers.%loop-number%", "0", "arenas/%{_Arena}%")
  213. set {_tip.Diamond::*} to configuration section "Datas.Diamond" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  214. set {_tip.Emerald::*} to configuration section "Datas.Emerald" get of "plugins/%{minigamesapi::game}%/maps/%{_CurrentMap}%.yml"
  215. loop size of {_tip.Diamond::*} times:
  216. #holo object "%{_Arena}%_Diamond-%loop-number%" exists:
  217. # delete holo object "%{_Arena}%_Diamond-%loop-number%"
  218. delete hologram with id "%{_Arena}%_Diamond-%loop-number%"
  219. loop size of {_tip.Emerald::*} times:
  220. #holo object "%{_Arena}%_Emerald-%loop-number%" exists:
  221. # delete holo object "%{_Arena}%_Emerald-%loop-number%"
  222. delete hologram with id "%{_Arena}%_Emerald-%loop-number%"
  223. function inventoryAPI(Player: player, no: number):
  224. set {_UUID} to uuid of {_Player}
  225. set level of {_Player} to 0
  226. set {_Arena} to checkFileSKY("Players.%{_UUID}%.Arena-Name", "playerdata")
  227. set {_Team} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%")
  228. clear {_Player}'s inventory
  229. set {_Helmet} to checkFileSKY("Datas.Players-List.%{_UUID}%.Helmet", "arenas/%{_Arena}%")
  230. if {_Helmet} is not "*":
  231. set {_Player}'s helmet to {SW::Messages::ItemShop_Type_1_Item::%{_Helmet}%}
  232. else:
  233. set {_Player}'s helmet to leather helmet
  234. dye {_Player}'s helmet {SW::Messages::Team_%{_no}%_Color}
  235. set {_Chestplate} to checkFileSKY("Datas.Players-List.%{_UUID}%.Chestplate", "arenas/%{_Arena}%")
  236. if {_Chestplate} is not "*":
  237. set {_Player}'s chestplate to {SW::Messages::ItemShop_Type_1_Item::%{_Chestplate}%}
  238. else:
  239. set {_Player}'s chestplate to leather chestplate
  240. dye {_Player}'s chestplate {SW::Messages::Team_%{_no}%_Color}
  241. set {_Leggings} to checkFileSKY("Datas.Players-List.%{_UUID}%.Leggings", "arenas/%{_Arena}%")
  242. if {_Leggings} is not "*":
  243. if {_Leggings} is "chain":
  244. set {_Player}'s leggings to chain leggings
  245. else if {_Leggings} is "iron":
  246. set {_Player}'s leggings to iron leggings
  247. else if {_Leggings} is "diamond":
  248. set {_Player}'s leggings to diamond leggings
  249. else:
  250. set {_Player}'s leggings to leather leggings
  251. dye {_Player}'s leggings {SW::Messages::Team_%{_no}%_Color}
  252. set {_Boots} to checkFileSKY("Datas.Players-List.%{_UUID}%.Boots", "arenas/%{_Arena}%")
  253. if {_Boots} is not "*":
  254. set {_Player}'s boots to {SW::Messages::ItemShop_Type_1_Item::%{_Boots}%}
  255. else:
  256. set {_Player}'s boots to leather boots
  257. dye {_Player}'s boots {SW::Messages::Team_%{_no}%_Color}
  258. set {_Sword} to checkFileSKY("Datas.Players-List.%{_UUID}%.Sword", "arenas/%{_Arena}%")
  259. if {_Sword} is not "*":
  260. set slot 0 of {_Player}'s inventory to {SW::Messages::ItemShop_Type_1_Item::%{_Sword}%}
  261. else:
  262. set slot 0 of {_Player}'s inventory to wood sword
  263. loop 4 times:
  264. clear {_Tier}
  265. set {_Tier} to checkFileSKY("Datas.Upgrades-Tier.%{_Team}%.%loop-number%", "arenas/%{_Arena}%") parsed as number
  266. {_Tier} is greater than 0
  267. if loop-number is 1:
  268. apply potion of strength of tier 1 to {_Player} for 999 minutes
  269. else if loop-number is 2:
  270. apply potion of resistance of tier {_Tier} to {_Player} for 999 minutes
  271. else if loop-number is 3:
  272. apply potion of haste of tier {_Tier} to {_Player} for 999 minutes
  273. else if loop-number is 4:
  274. apply potion of regeneration of tier {_Tier} to {_Player} for 999 minutes
  275. checkFileSKY("Datas.Features.%{_Team}%.5", "arenas/%{_Arena}%") is "true":
  276. checkFileSKY("Datas.Used-Features.%{_Team}%.5", "arenas/%{_Arena}%") is "*"
  277. set {_lang} to language of {_Player}
  278. set slot 0 of {_Player}'s inventory to eye of ender named "%{SW::Messages::%{_lang}%::Features_FeatureItems_5_Name}%" with lore "%{SW::Messages::%{_lang}%::Features_FeatureItems_5_Lore}%"
  279. function scoreboardAPI(Player: player):
  280. set {_lang} to language of {_Player}
  281. set {_UUID} to uuid of {_Player}
  282. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  283. set {_Maximum} to checkFileSKY("Datas.Max-Players", "arenas/%{_Arena}%") parsed as number
  284. set {_Mode} to checkFileSKY("Datas.Type", "arenas/%{_Arena}%")
  285. set {_Team} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%")
  286. set {_Day} to "%day%/%month%/%year%"
  287.  
  288. add "&1" and "&2" and "&3" and "&4" and "&5" and "&6" and "&7" and "&8" and "&9" and "&a" and "&b" and "&c" and "&d" and "&e" and "&f" to {_c::*}
  289.  
  290. set {_calc.8} to 14
  291. set {_calc.7} to 13
  292. set {_calc.6} to 12
  293. set {_calc.5} to 11
  294. set {_calc.4} to 10
  295. set {_calc.3} to 9
  296. set {_calc.2} to 8
  297. set {_calc.1} to 7
  298. set {_calc} to {_calc.%{_Maximum}%}
  299.  
  300. setup skoreboard for {_Player}
  301. {_Player} has a skoreboard
  302. wait 1 ticks
  303. set title of skoreboard {_Player} to "%{SW::SC_Header}%"
  304. wait 1 ticks
  305. reset slots numbers between 1 and {_calc} of skoreboard {_Player}
  306.  
  307. while {_Player} is online:
  308. set {_control} to false
  309. checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%") is not "*":
  310. set {_control} to 1
  311. checkFileSKY("Players.%{_UUID}%.Spectator", "playerdata") is "true":
  312. set {_control} to 2
  313. if {_control} is 1 or 2:
  314. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/BEDWARS/arenas/%{_Arena}%.yml"
  315. set {_x} to checkFileSKY("Datas.Current-Time", "arenas/%{_Arena}%") parsed as integer
  316. set {_z} to checkFileSKY("Datas.Upgrade-Timer", "arenas/%{_Arena}%") parsed as integer
  317. set {_Tier} to checkFileSKY("Datas.Upgrade-Tier", "arenas/%{_Arena}%") parsed as number
  318. {_x} is not set:
  319. set {_x} to 0
  320. if {_x} is greater than 60:
  321. set {_dk} to rounded down {_x}/60
  322. set {_mid} to {_dk}*60
  323. set {_sn} to {_x}-{_mid}
  324. {_sn} is less than 10:
  325. set {_sn} to "0%{_sn}%"
  326. {_dk} is less than 10:
  327. set {_dk} to "0%{_dk}%"
  328. set {_time} to "%{_dk}%:%{_sn}%"
  329. else:
  330. set {_time} to "%{_x}%"
  331. set {_utime} to ""
  332. {_Tier} is not 4:
  333. {_z} is not set:
  334. set {_z} to 0
  335. if {_z} is greater than 60:
  336. set {_dk2} to rounded down {_z}/60
  337. set {_mid2} to {_dk2}*60
  338. set {_sn2} to {_z}-{_mid2}
  339. {_sn2} is less than 10:
  340. set {_sn2} to "0%{_sn2}%"
  341. {_dk2} is less than 10:
  342. set {_dk2} to "0%{_dk2}%"
  343. set {_utime} to " (%{_dk2}%:%{_sn2}%)"
  344. else:
  345. set {_utime} to " (%{_z}%)"
  346. set {_y} to 7
  347. loop {_Maximum} times:
  348. set {_you} to ""
  349. set {_statusText} to "&a✔"
  350. set {_TeamStatus} to checkFileSKY("Datas.Team-Status.%loop-number%", "arenas/%{_Arena}%")
  351. {_TeamStatus} is "false":
  352. set {_statusText} to "&c✘"
  353. {_Team} is "%loop-number%":
  354. set {_you} to "%{SW::Messages::%{_lang}%::Text_You}%"
  355. set {_text.%{_y}%} to "%{SW::Messages::%{_lang}%::Team_%loop-number%_KisaltName}% &f%uncolored {SW::Messages::%{_lang}%::Team_%loop-number%_Name}%: %{_statusText}%%{_you}%"
  356. add 1 to {_y}
  357. set {_text.1} to "&7%{_Mode}% &8%{_Day}%"
  358. set {_text.3} to "%{SW::Messages::%{_lang}%::SC_InGame_Time}%&e%{_time}%"
  359. set {_text.4} to "%{SW::Messages::%{_lang}%::SC_InGame_Players}%&e%size of {_PlayerList::*}%/%{_Maximum}%"
  360. set {_text.5} to "%{SW::Messages::%{_lang}%::SC_InGame_Upgrades}%&e%{SW::Messages::%{_lang}%::Bed_Event_Tier_%{_Tier}%}%%{_utime}%"
  361. loop {_calc} times:
  362. {_text.%loop-number%} is not set:
  363. set {_text.%loop-number%} to "%{_c::%loop-number%}%"
  364. set slot loop-number of skoreboard {_Player} to {_text.%loop-number%}
  365. wait 20 ticks
  366. else:
  367. delete skoreboard for {_Player}
  368. stop
  369. function debugArena(Arena: text, Type: text):
  370. set {_causes::*} to checkArena("%{_Arena}%") split at ";"
  371. set {_Status} to checkFileSKY("Datas.Status", "arenas/%{_Arena}%")
  372. {_Status} is "3" or "*":
  373. stop
  374. writeFileSKY("Datas.Status", "3", "arenas/%{_Arena}%")
  375. writeFileSKY("Datas.Current-Time", "*", "arenas/%{_Arena}%")
  376. set {_Mode} to checkFileSKY("Datas.Type", "arenas/%{_Arena}%")
  377. set {_Bungee} to "true"
  378. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  379. #{_Bungee} is "true":
  380. #writeFileSKY("Datas.Current-Map", "*", "arenas/%{_Arena}%")
  381. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  382. size of {_PlayerList::*} > 0:
  383. loop {_PlayerList::*}:
  384. set {_Player::%loop-value%} to a value "Datas.Players-List.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  385. set {_Kills::%loop-value%} to a value "Datas.Players-List.%loop-value%.Kills" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  386. wait 1 ticks
  387. set {_rcp} to ""
  388. set {_RecentPlayers::*} to configuration section "Datas.All-Joined" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  389. loop {_RecentPlayers::*}:
  390. clear {_plr}
  391. set {_plr} to a value "Datas.All-Joined.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  392. {_rcp} is not "":
  393. set {_plr} to ";%{_plr}%"
  394. set {_rcp} to "%{_rcp}%%{_plr}%"
  395. wait 1 ticks
  396. set {_SpectatorList::*} to configuration section "Datas.Spectator-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  397. size of {_SpectatorList::*} > 0:
  398. loop {_SpectatorList::*}:
  399. set {_Spectator::%loop-value%} to a value "Datas.Spectator-List.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  400. loop {_Spectator::*}:
  401. clear {_Spec}
  402. set {_Spec} to "%loop-value%" parsed as player
  403. add {_Spec} to {_BungeeList::*}
  404. specAPI({_Spec}, "%{_Arena}%", true)
  405. remove {_Spec} from {_Spectator::*}
  406. wait 3 ticks
  407. veriCikarSKY("Datas", "Players-List", "arenas/%{_Arena}%")
  408. wait 1 ticks
  409. veriCikarSKY("Datas", "All-Joined", "arenas/%{_Arena}%")
  410. veriCikarSKY("Datas", "Spectator-List", "arenas/%{_Arena}%")
  411. veriCikarSKY("Datas", "Blocks", "arenas/%{_Arena}%")
  412. veriCikarSKY("Datas", "Team-Status", "arenas/%{_Arena}%")
  413. veriCikarSKY("Datas", "Temp-Bed-Locations", "arenas/%{_Arena}%")
  414. veriCikarSKY("Datas", "Features", "arenas/%{_Arena}%")
  415. veriCikarSKY("Datas", "Used-Features", "arenas/%{_Arena}%")
  416. veriCikarSKY("Datas", "Upgrades-Tier", "arenas/%{_Arena}%")
  417. veriCikarSKY("Datas", "Shop-NPC", "arenas/%{_Arena}%")
  418. veriCikarSKY("Datas", "Upgrade-NPC", "arenas/%{_Arena}%")
  419. size of {_Player::*} > 0:
  420. set {_x} to checkFileSKY("Datas.Lobby.x", "maps/%{_CurrentMap}%") parsed as number
  421. set {_y} to checkFileSKY("Datas.Lobby.y", "maps/%{_CurrentMap}%") parsed as number
  422. set {_z} to checkFileSKY("Datas.Lobby.z", "maps/%{_CurrentMap}%") parsed as number
  423. set {_w} to checkFileSKY("Datas.Lobby.world", "maps/%{_CurrentMap}%") parsed as world
  424. set {_Lobby} to location of block at location ({_x}, {_y}, {_z}) in world {_w}
  425. loop {_Player::*}:
  426. delete {_Player}
  427. set {_Player} to "%loop-value%" parsed as player
  428. add {_Player} to {_BungeeList::*}
  429. set {_UUID} to loop-index
  430. if {_Bungee} is not "true":
  431. clear {_Player}'s inventory
  432. wait 3 ticks
  433. writeFileSKY("Players.Arena-Name", "*", "playerdata/%{_UUID}%")
  434. writeFileSKY("Players.Spectator", "*", "playerdata/%{_UUID}%")
  435. else:
  436. delete file "plugins/%{minigamesapi::game}%/playerdata/%{_UUID}%.yml"
  437. set {_Player}'s health to 20
  438. set {_Player}'s hunger to 20
  439. clear {_Player}'s inventory
  440. set level of {_Player} to 0
  441. teleport {_Player} to {_Lobby}
  442. set {_rcp.%{_Player}%} to {_rcp}
  443. replace all "-%{_Player}%" and "%{_Player}%" with "" in {_rcp.%{_Player}%}
  444. saveRecentPlayers({_Player}, {_rcp.%{_Player}%})
  445. {_Mode} is not "Solo":
  446. removePartySKY({_Player}, {_Arena})
  447. {_Type} is not "win":
  448. sendTitleArena("%{_Arena}%", "Title_GameFinished", "*", "Restart_Kick", "*")
  449. broadcastServer("Game_Debug_Broadcast", "{ARENA}^%{_Arena}%", true)
  450. {_CurrentMap} is not "*":
  451. schematicAPISKY("%{_CurrentMap}%", "1")
  452. bedAPI("%{_Arena}%")
  453. wait 1 ticks
  454. "%{_Type}%" is not "disable" or "enable" or "remove":
  455. set {_causes::*} to checkArena("%{_Arena}%") split at ";"
  456. "%{_causes::*}%" is "false"
  457. writeFileSKY("Datas.Status", "0", "arenas/%{_Arena}%")
  458. wait 35 ticks
  459. "%{_Type}%" is not "disable" or "enable" or "remove" or "load":
  460. size of {_RecentPlayers::*} > 0
  461. loop {_RecentPlayers::*}:
  462. delete {_BungeeP}
  463. set {_BungeeP} to "%loop-value%" parsed as player
  464. {_BungeeP} is online
  465. teleport {_BungeeP} to {_Lobby}
  466. joinGame({_BungeeP}, "%{_Arena}%")
  467. #bungeeConnector({_BungeeP}, "*", "1")
  468. wait 2 ticks
  469. function startGame(Arena: text, Type: text):
  470. set {_Status} to checkFileSKY("Datas.Status", "arenas/%{_Arena}%")
  471. {_Status} is "0" or "5"
  472. if {_Type} is "join":
  473. set {_Cooldown} to {SW::Starting_Cooldown}
  474. set {_Minimum} to checkFileSKY("Datas.Min-Players", "arenas/%{_Arena}%") parsed as number
  475. else:
  476. set {_Cooldown} to 10
  477. set {_Minimum} to 1
  478. writeFileSKY("Datas.Current-Time", "%{_Cooldown}%", "arenas/%{_Arena}%")
  479. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  480. loop {_PlayerList::*}:
  481. set {_Player::%loop-value%} to a value "Datas.Players-List.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  482. writeFileSKY("Datas.Status", "1", "arenas/%{_Arena}%")
  483. set {_Bungee} to "true"
  484. loop {_Cooldown} times:
  485. delete {_PlayerList::*}
  486. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  487. if size of {_PlayerList::*} is greater or equal to {_Minimum}:
  488. {_Cooldown} is 6:
  489. {_Bungee} is "true":
  490. mapSelector({_Arena}, false)
  491. {_Cooldown} is less than 6:
  492. sendTitleArena("%{_Arena}%", "Numbers_%{_Cooldown}%", "*", "*", "*")
  493. set level of players to {_Cooldown}
  494. remove 1 from {_Cooldown}
  495. writeFileSKY("Datas.Current-Time", "%{_Cooldown}%", "arenas/%{_Arena}%")
  496. wait 1 second
  497. else:
  498. set level of {_Player::*} to {_Cooldown}
  499. writeFileSKY("Datas.Status", "0", "arenas/%{_Arena}%")
  500. sendMessageArena("%{_Arena}%", "Player_Left_Starting", "*", true)
  501. stop
  502. {_Cooldown} is less than 1
  503. writeFileSKY("Datas.Status", "2", "arenas/%{_Arena}%")
  504. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  505. set level of {_Player::*} to 0
  506. writeFileSKY("Datas.Current-Time", "%{_GameTimeSc}%", "arenas/%{_Arena}%")
  507. delete {_PlayerList::*}
  508. delete {_Player::*}
  509. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  510. loop {_PlayerList::*}:
  511. set {_Player::%loop-value%} to a value "Datas.Players-List.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  512. writeFileSKY("Datas.All-Joined.%loop-value%.Username", "%{_Player::%loop-value%}%", "arenas/%{_Arena}%")
  513. set {_Mode} to checkFileSKY("Datas.Type", "arenas/%{_Arena}%")
  514. if {_Mode} is "Solo":
  515. set {_TeleportList::*} to {_Player::*}
  516.  
  517. loop size of {_TeleportList::*} times:
  518. set {_RandomPlayer::%loop-number%} to "%random element out of {_TeleportList::*}%" parsed as player
  519. set {_RandomUUID::%loop-number%} to uuid of {_RandomPlayer::%loop-number%}
  520. set {_x} to checkFileSKY("Datas.Spawns.%loop-number%.x", "maps/%{_CurrentMap}%") parsed as number
  521. set {_y} to checkFileSKY("Datas.Spawns.%loop-number%.y", "maps/%{_CurrentMap}%") parsed as number
  522. set {_z} to checkFileSKY("Datas.Spawns.%loop-number%.z", "maps/%{_CurrentMap}%") parsed as number
  523. set {_w} to checkFileSKY("Datas.Spawns.%loop-number%.world", "maps/%{_CurrentMap}%") parsed as world
  524. set {_Location::%loop-number%} to location of block at location ({_x}, {_y}, {_z}) in world {_w}
  525. teleport {_RandomPlayer::%loop-number%} to {_Location::%loop-number%}
  526. remove {_RandomPlayer::%loop-number%} from {_TeleportList::*}
  527. writeFileSKY("Datas.Players-List.%{_RandomUUID::%loop-number%}%.Team", "%loop-number%", "arenas/%{_Arena}%")
  528. else:
  529. set {_xcount} to 1
  530. loop {_PlayerList::*}:
  531. set {_Player.lv} to a value "Datas.Players-List.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  532. set {_lv} to "%{_Player.lv}%" parsed as player
  533. set {_party.lv} to checkFileSKY("Datas.Players-List.%loop-value%.HasParty", "arenas/%{_Arena}%")
  534. {_party.TP::%{_party.lv}%} is not set:
  535. set {_party.TP::%{_party.lv}%} to {_xcount}
  536. add 1 to {_xcount}
  537. set {_x} to checkFileSKY("Datas.Spawns.%{_party.TP::%{_party.lv}%}%.x", "maps/%{_CurrentMap}%") parsed as number
  538. set {_y} to checkFileSKY("Datas.Spawns.%{_party.TP::%{_party.lv}%}%.y", "maps/%{_CurrentMap}%") parsed as number
  539. set {_z} to checkFileSKY("Datas.Spawns.%{_party.TP::%{_party.lv}%}%.z", "maps/%{_CurrentMap}%") parsed as number
  540. set {_w} to checkFileSKY("Datas.Spawns.%{_party.TP::%{_party.lv}%}%.world", "maps/%{_CurrentMap}%") parsed as world
  541. set {_Location::%{_party.TP::%{_party.lv}%}%} to location of block at location ({_x}, {_y}, {_z}) in world {_w}
  542. teleport {_lv} to {_Location::%{_party.TP::%{_party.lv}%}%}
  543. writeFileSKY("Datas.Players-List.%loop-value%.Team", "%{_party.TP::%{_party.lv}%}%", "arenas/%{_Arena}%")
  544. wait 1 tick
  545. loop {_Player::*}:
  546. clear {_Player}
  547. set {_Player} to "%loop-value%" parsed as player
  548. set {_UUID} to loop-index
  549. set {_lang} to language of {_Player}
  550. set {_no} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%") parsed as number
  551. playSoundSKY({_player}, "NOTE_PLING", "NOTE_PLING", 1)
  552. send title "%{SW::Messages::%{_lang}%::Title_Game_Started}%" with subtitle "%{SW::Messages::%{_lang}%::SubTitle_Game_Started}%" for 5 seconds to {_Player}
  553. set level of {_Player} to 0
  554. clear {_Player}'s inventory
  555. scoreboardAPI({_Player})
  556. inventoryAPI({_Player}, {_no})
  557. dropIngots("%{_Arena}%", {_no}, 0)
  558. dropIngots("%{_Arena}%", {_no}, 1)
  559. {_World} is not set:
  560. set {_World} to world of {_Player}
  561. wait 1 tick
  562. execute console command "/time set 0 %{_World}%"
  563. delete all dropped items in {_World}
  564. writeFileSKY("Datas.Upgrade-Tier", "1", "arenas/%{_Arena}%")
  565. writeFileSKY("Datas.Upgrade-Timer", "%{SW::Upgrade-Timer}%", "arenas/%{_Arena}%")
  566. set {_GameTimeMinutes} to {SW::GameMinutes}
  567. set {_Seconds} to 1
  568. set {_GameTime} to {_GameTimeMinutes}*60
  569. upgradeAPI({_Arena})
  570. dropMiddle({_Arena}, "Emerald")
  571. dropMiddle({_Arena}, "Diamond")
  572. loop {_GameTime} times:
  573. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  574. {_GameTimeMinutes} is greater than 0
  575. writeFileSKY("Datas.Current-Time", "%{_GameTime}%", "arenas/%{_Arena}%")
  576. remove 1 from {_GameTime}
  577. {_Seconds} is greater or equal to 60:
  578. remove 1 from {_GameTimeMinutes}
  579. set {_Seconds} to 0
  580. add 1 to {_Seconds}
  581. wait 1 second
  582. set {_Status} to checkFileSKY("Datas.Status", "arenas/%{_Arena}%")
  583. {_Status} is "2"
  584. sendMessageArena("%{_Arena}%", "Game_Finished_Time", "*", true)
  585. debugArena("%{_Arena}%", "time")
  586. on death of player:
  587. set death message to ""
  588. clear drops
  589. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of victim%")
  590. {_Arena} is not "*"
  591. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  592. set victim's health to 20
  593. set victim's hunger to 20
  594. set {_lang} to language of victim
  595. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  596. set {_Team} to checkFileSKY("Datas.Players-List.%uuid of victim%.Team", "arenas/%{_Arena}%")
  597. set victim's gamemode to survival
  598. clear victim's inventory
  599. set level of victim to 0
  600. specAPI(victim, "%{_Arena}%", true)
  601. wait 1 ticks
  602. degerEkleSKY("Datas.Players-List.%uuid of victim%.Deaths", 1, "arenas/%{_Arena}%")
  603. set {_Maximum} to checkFileSKY("Datas.Max-Players", "arenas/%{_Arena}%") parsed as number
  604. set {_Teams::*} to configuration section "Datas.Team-Status" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  605. set {_TeamStatus} to checkFileSKY("Datas.Team-Status.%{_Team}%", "arenas/%{_Arena}%")
  606. if {_TeamStatus} is not "*":
  607. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::You_Died}%" to victim
  608. veriCikarSKY("Datas.Players-List", uuid of victim, "arenas/%{_Arena}%")
  609. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  610. else:
  611. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::You_Died_With_Bed}%" to victim
  612. set {_a} to attacker
  613.  
  614. JSONdegerEkle(victim, "minigamesapi", "%{minigamesapi::shortnamegame}%_info", "Deaths", 1)
  615.  
  616. set {_KillsV} to a value "Datas.Players-List.%uuid of victim%.Kills" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml" parsed as number
  617. if attacker is not victim:
  618. set {_attackerArena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of attacker%")
  619. if {_attackerArena} is not "*":
  620.  
  621. JSONdegerEkle(attacker, "minigamesapi", "%{minigamesapi::shortnamegame}%_info", "Kills", 1)
  622.  
  623. degerEkleSKY("Datas.Players-List.%uuid of attacker%.Kills", 1, "arenas/%{_Arena}%")
  624. if {_TeamStatus} is not "*":
  625. sendMessageArena("%{_Arena}%", "Death_Type_Killed_FinalKill", "{ATTACKER}^%attacker%~{VICTIM}^%victim%~{PLAYERS}^%size of {_PlayerList::*}%~{MAX}^%{_Maximum}%", true)
  626. else:
  627. sendMessageArena("%{_Arena}%", "Death_Type_Killed", "{ATTACKER}^%attacker%~{VICTIM}^%victim%~{PLAYERS}^%size of {_PlayerList::*}%~{MAX}^%{_Maximum}%", true)
  628. else:
  629. if {_TeamStatus} is not "*":
  630. sendMessageArena("%{_Arena}%", "Death_Type_Died_Final_Kill", "{VICTIM}^%victim%~{PLAYERS}^%size of {_PlayerList::*}%~{MAX}^%{_Maximum}%", true)
  631. else:
  632. sendMessageArena("%{_Arena}%", "Death_Type_Died", "{VICTIM}^%victim%~{PLAYERS}^%size of {_PlayerList::*}%~{MAX}^%{_Maximum}%", true)
  633. else:
  634. if {_TeamStatus} is not "*":
  635. sendMessageArena("%{_Arena}%", "Death_Type_Suicide_FinalKill", "{VICTIM}^%victim%~{PLAYERS}^%size of {_PlayerList::*}%~{MAX}^%{_Maximum}%", true)
  636. else:
  637. sendMessageArena("%{_Arena}%", "Death_Type_Suicide", "{VICTIM}^%victim%~{PLAYERS}^%size of {_PlayerList::*}%~{MAX}^%{_Maximum}%", true)
  638. {_TeamStatus} is not "*":
  639. writeFileSKY("Players.Arena-Name", "*", "playerdata/%uuid of victim%")
  640. writeFileSKY("Players.Spectator", "*", "playerdata/%uuid of victim%")
  641. #set {_xzsize} to size of {_PlayerList::*}
  642. #if {_xzsize}-1 > 0:
  643. #else:
  644. # set {_r} to random integer from 1 to {_Maximum}
  645. if {_TeamStatus} is not "*":
  646. send title "%{SW::Messages::%{_lang}%::Title_Dead}%" with subtitle "%{SW::Messages::%{_lang}%::SubTitle_Dead}%" for 5 seconds to victim
  647. #Recent Players
  648. set {_RecentPlayers::*} to configuration section "Datas.All-Joined" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  649. set {_rcp} to ""
  650. remove uuid of victim from {_RecentPlayers::*}
  651. loop {_RecentPlayers::*}:
  652. clear {_plr}
  653. set {_plr} to a value "Datas.Players-List.%loop-value%.Username" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  654. {_rcp} is not "":
  655. set {_plr} to "-%{_plr}%"
  656. set {_rcp} to "%{_rcp}%%{_plr}%"
  657. saveRecentPlayers(victim, {_rcp})
  658.  
  659. xpAPI(victim, false)
  660. #
  661. else:
  662. set {_timer} to 5
  663. checkFileSKY("Datas.Features.%{_Team}%.3", "arenas/%{_Arena}%") is "true":
  664. set {_timer} to 3
  665. loop {_timer} times:
  666. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2":
  667. set {_msg} to {SW::Messages::%{_lang}%::SubTitle_Dead_With_Bed}
  668. replace all "{TIME}" with "%{_timer} - loop-number%" in {_msg}
  669. send title "%{SW::Messages::%{_lang}%::Title_Dead}%" with subtitle "%{_msg}%" for 1 seconds to victim
  670. wait 1.2 seconds
  671. else:
  672. stop
  673. specAPI(victim, "%{_Arena}%", false)
  674. set {_x} to checkFileSKY("Datas.Spawns.%{_Team}%.x", "maps/%{_CurrentMap}%") parsed as number
  675. set {_y} to checkFileSKY("Datas.Spawns.%{_Team}%.y", "maps/%{_CurrentMap}%") parsed as number
  676. set {_z} to checkFileSKY("Datas.Spawns.%{_Team}%.z", "maps/%{_CurrentMap}%") parsed as number
  677. set {_w} to checkFileSKY("Datas.Spawns.%{_Team}%.world", "maps/%{_CurrentMap}%") parsed as world
  678. set {_Location} to location of block at location ({_x}, {_y}, {_z}) in world {_w}
  679. send title "%{SW::Messages::%{_lang}%::You_Rev}%" with subtitle "%{SW::Messages::%{_lang}%::SubTitle_Rev}%" for 1 seconds to victim
  680. set {_no} to "%{_Team}%" parsed as number
  681. inventoryAPI(victim, {_no})
  682. teleport victim to {_Location}
  683. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  684. {_TeamStatus} is not "*"
  685. size of {_PlayerList::*} is less than {minigamesapi::size::%{_Mode}%}
  686. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  687. winMatch({_Arena})
  688. wait 5 seconds
  689. writeFileSKY("Datas.Status", "0", "arenas/%{_Arena}%")
  690. wait 1 ticks
  691. debugArena("%{_Arena}%", "win")
  692. on break:
  693. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of player%")
  694. if {_Arena} is not "*":
  695. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "0" or "1":
  696. player has permission "minigameapi.admin":
  697. stop
  698. cancel event
  699. set {_lang} to language of player
  700. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::No_Action_Lobby}%" to player
  701. else if "%type of event-block%" is "bed_block":
  702. cancel event
  703. wait 2 tick
  704. set {_itemm} to "bed_block:8" parsed as material
  705. set {_lang} to language of player
  706. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  707. set {_team} to checkFileSKY("Datas.Players-List.%uuid of player%.Team", "arenas/%{_Arena}%")
  708. set {_x} to checkFileSKY("Datas.Temp-Bed-Locations.%{_team}%.x", "arenas/%{_Arena}%") parsed as number
  709. set {_y} to checkFileSKY("Datas.Temp-Bed-Locations.%{_team}%.y", "arenas/%{_Arena}%") parsed as number
  710. set {_z} to checkFileSKY("Datas.Temp-Bed-Locations.%{_team}%.z", "arenas/%{_Arena}%") parsed as number
  711. set {_w} to checkFileSKY("Datas.Temp-Bed-Locations.%{_team}%.world", "arenas/%{_Arena}%") parsed as world
  712. set {_Location} to location ({_x}, {_y}, {_z}) in world {_w}
  713. if distance between location of event-block and {_Location} is less than 5:
  714.  
  715. if checkFileSKY("Datas.Features.%{_team}%.1", "arenas/%{_Arena}%") is not "true":
  716. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::No_Break_Bed}%" to player
  717. #set block at {_Location} to air
  718. #wait 1 ticks
  719. #set block at {_Location} to {_itemm}
  720. else:
  721. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_Bed_Pickup}%" to player
  722. writeFileSKY("Datas.Team-Status.%{_team}%", "false", "arenas/%{_Arena}%")
  723. drop bed item at event-block without velocity
  724. set block at event-location to air
  725. "%type of block at block north event-location%" is "bed_block":
  726. set block at block north event-location to air
  727. "%type of block at block south event-location%" is "bed_block":
  728. set block at block south event-location to air
  729. "%type of block at block west event-location%" is "bed_block":
  730. set block at block west event-location to air
  731. "%type of block at block east event-location%" is "bed_block":
  732. set block at block east event-location to air
  733. else:
  734. set {_finder} to 200
  735. set {_name} to "?"
  736. set {_Beds::*} to configuration section "Datas.Temp-Bed-Locations" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  737. loop size of {_Beds::*} times:
  738. set {_x} to checkFileSKY("Datas.Temp-Bed-Locations.%loop-number%.x", "arenas/%{_Arena}%") parsed as number
  739. set {_y} to checkFileSKY("Datas.Temp-Bed-Locations.%loop-number%.y", "arenas/%{_Arena}%") parsed as number
  740. set {_z} to checkFileSKY("Datas.Temp-Bed-Locations.%loop-number%.z", "arenas/%{_Arena}%") parsed as number
  741. set {_w} to checkFileSKY("Datas.Temp-Bed-Locations.%loop-number%.world", "arenas/%{_Arena}%") parsed as world
  742. set {_Location::%loop-number%} to location ({_x}, {_y}, {_z}) in world {_w}
  743. distance between location of event-block and {_Location::%loop-number%} is less than {_finder}:
  744. set {_finder} to distance between location of event-block and {_Location::%loop-number%}
  745. set {_name} to "%loop-number%"
  746. {_name} is not "?"
  747. set block at {_Location::%{_name}%} to air
  748. "%type of block at block north {_Location::%{_name}%}%" is "bed_block":
  749. set block at block north {_Location::%{_name}%} to air
  750. "%type of block at block south {_Location::%{_name}%}%" is "bed_block":
  751. set block at block south {_Location::%{_name}%} to air
  752. "%type of block at block west {_Location::%{_name}%}%" is "bed_block":
  753. set block at block west {_Location::%{_name}%} to air
  754. "%type of block at block east {_Location::%{_name}%}%" is "bed_block":
  755. set block at block east {_Location::%{_name}%} to air
  756. set {_x1} to checkFileSKY("Datas.Spawns.%{_name}%.x", "maps/%{_CurrentMap}%") parsed as number
  757. set {_y1} to checkFileSKY("Datas.Spawns.%{_name}%.y", "maps/%{_CurrentMap}%") parsed as number
  758. set {_z1} to checkFileSKY("Datas.Spawns.%{_name}%.z", "maps/%{_CurrentMap}%") parsed as number
  759. set {_w1} to checkFileSKY("Datas.Spawns.%{_name}%.world", "maps/%{_CurrentMap}%") parsed as world
  760. set {_Loc2} to location of block at location ({_x1}, {_y1}, {_z1}) in world {_w1}
  761. set {_found} to false
  762. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  763. loop {_PlayerList::*}:
  764. set {_Team::%loop-value%} to checkFileSKY("Datas.Players-List.%loop-value%.Team", "arenas/%{_Arena}%")
  765. {_Team::%loop-value%} is "%{_name}%":
  766. set {_found} to true
  767. set {_Player::%loop-value%} to checkFileSKY("Datas.Players-List.%loop-value%.Username", "arenas/%{_Arena}%") parsed as player
  768. set {_uuid::%loop-value%} to uuid of {_Player::%loop-value%}
  769. set {_lang.%loop-value%} to language of {_Player::%loop-value%}
  770. set {_featureSaver} to checkFileSKY("Datas.Features.%{_name}%.2", "arenas/%{_Arena}%")
  771. if {_featureSaver} is not "true":
  772. playSoundSKY({_Player::%loop-value%}, "WITHER_DEATH", "WITHER_DEATH", 1)
  773. send title "%{SW::Messages::%{_lang.%loop-value%}%::Your_Bed_Destroy_Feature_1}%" with subtitle "%{SW::Messages::%{_lang.%loop-value%}%::Your_Bed_Destroy_2}%" for 2 seconds to {_Player::%loop-value%}
  774. set block at {_Location::%{_name}%} to air
  775. "%type of block at block north {_Location::%{_name}%}%" is "bed_block":
  776. set block at block north {_Location::%{_name}%} to air
  777. "%type of block at block south {_Location::%{_name}%}%" is "bed_block":
  778. set block at block south {_Location::%{_name}%} to air
  779. "%type of block at block west {_Location::%{_name}%}%" is "bed_block":
  780. set block at block west {_Location::%{_name}%} to air
  781. "%type of block at block east {_Location::%{_name}%}%" is "bed_block":
  782. set block at block east {_Location::%{_name}%} to air
  783. else:
  784. teleport {_Player::%loop-value%} to {_Loc2}
  785. playSoundSKY({_Player::%loop-value%}, "GHAST_SCREAM", "GHAST_SCREAM", 1)
  786. send title "%{SW::Messages::%{_lang.%loop-value%}%::Your_Bed_Destroy_Feature_1}%" with subtitle " " for 1 seconds to {_Player::%loop-value%}
  787. send "%{SW::Prefix}% %{SW::Messages::%{_lang.%loop-value%}%::Your_Bed_Destroy_Feature}%" to {_Player::%loop-value%}
  788. set {_featureSaved} to true
  789.  
  790. {_featureSaved} is true:
  791. writeFileSKY("Datas.Features.%{_name}%.2", "false", "arenas/%{_Arena}%")
  792. writeFileSKY("Datas.Used-Features.%{_name}%.2", "true", "arenas/%{_Arena}%")
  793. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::This_Bed_Feature}%" to player
  794. wait 3 seconds
  795. set block at block north {_Location::%{_name}%} to air
  796. set block at block south {_Location::%{_name}%} to air
  797. set block at block west {_Location::%{_name}%} to air
  798. set block at block east {_Location::%{_name}%} to air
  799. wait 1 ticks
  800. set block at {_Location::%{_name}%} to bed_block:8
  801. stop
  802. checkFileSKY("Datas.Features.%{_team}%.4", "arenas/%{_Arena}%") is "true":
  803. apply potion of speed of tier 2 to the player for 15 seconds
  804. writeFileSKY("Datas.Team-Status.%{_name}%", "false", "arenas/%{_Arena}%")
  805. set {_lang} to language of player
  806. broadcast ""
  807. broadcastServer("Bed_Destroy", "{BY}^%player%~{TEAM}^%{SW::Messages::%{_lang}%::Team_%{_name}%_Name}%", false)
  808. broadcast ""
  809. JSONdegerEkle(player, "minigamesapi", "%{minigamesapi::shortnamegame}%_info", "BreakedBeds", 1)
  810. degerEkleSKY("Datas.Players-List.%uuid of player%.BreakedBeds", 1, "arenas/%{_Arena}%")
  811. {_found} is false:
  812. size of {_PlayerList::*} is 1
  813. winMatch({_Arena})
  814. wait 3 seconds
  815. writeFileSKY("Datas.Status", "0", "arenas/%{_Arena}%")
  816. wait 1 ticks
  817. debugArena("%{_Arena}%", "win")
  818. else:
  819. player has permission "minigameapi.admin":
  820. stop
  821. set {_loc} to "%location of event-block%"
  822. replace all ", y: " and ", z: " with "|" in {_loc}
  823. replace all "." with "," in {_loc}
  824. replace all "x: " with "" in {_loc}
  825. checkFileSKY("Datas.Blocks.%{_loc}%", "arenas/%{_Arena}%") is "*"
  826. cancel event
  827. set {_lang} to language of player
  828. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::No_Break}%" to player
  829. else if checkFileSKY("Players.Spectator", "playerdata/%uuid of player%") is not "*":
  830. cancel event
  831. on place:
  832. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of player%")
  833. if {_Arena} is not "*":
  834. set {_lang} to language of player
  835. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "0" or "1":
  836. player has permission "minigameapi.admin":
  837. stop
  838. cancel event
  839. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::No_Action_Lobby}%" to player
  840. else:
  841. if "%type of event-block%" is not "bed_block":
  842. set {_loc} to "%location of event-block%"
  843. replace all ", y: " and ", z: " with "|" in {_loc}
  844. replace all "." with "," in {_loc}
  845. replace all "x: " with "" in {_loc}
  846. writeFileSKY("Datas.Blocks.%{_loc}%", "%player%", "arenas/%{_Arena}%")
  847. else:
  848. set {_team} to checkFileSKY("Datas.Players-List.%uuid of player%.Team", "arenas/%{_Arena}%")
  849. checkFileSKY("Datas.Features.%{_team}%.1", "arenas/%{_Arena}%") is "true"
  850. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  851. set {_defaulty} to checkFileSKY("Datas.Bed.1.y", "maps/%{_CurrentMap}%") parsed as number
  852. set {_y} to y coordinate of event-block
  853. {_y} is not between {_defaulty}-1 and {_defaulty}+1:
  854. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_Bed_Pickup_2}%" to player
  855. cancel event
  856. stop
  857. set {_x} to x coordinate of event-block
  858. set {_z} to z coordinate of event-block
  859. set {_w} to world of event-block
  860. writeFileSKY("Datas.Team-Status.%{_team}%", "*", "arenas/%{_Arena}%")
  861. writeFileSKY("Datas.Temp-Bed-Locations.%{_team}%.x", "%{_x}%", "arenas/%{_Arena}%")
  862. writeFileSKY("Datas.Temp-Bed-Locations.%{_team}%.y", "%{_y}%", "arenas/%{_Arena}%")
  863. writeFileSKY("Datas.Temp-Bed-Locations.%{_team}%.z", "%{_z}%", "arenas/%{_Arena}%")
  864. writeFileSKY("Datas.Temp-Bed-Locations.%{_team}%.world", "%{_w}%", "arenas/%{_Arena}%")
  865. writeFileSKY("Datas.Features.%{_team}%.1", "false", "arenas/%{_Arena}%")
  866. writeFileSKY("Datas.Used-Features.%{_team}%.1", "true", "arenas/%{_Arena}%")
  867. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_Bed_Pickup_3}%" to player
  868. else if checkFileSKY("Players.Spectator", "playerdata/%uuid of player%") is not "*":
  869. player has permission "minigameapi.admin":
  870. stop
  871. cancel event
  872. on rightclick with emerald:
  873. set {_lang} to language of player
  874. name of player's tool contains "%{SW::Messages::%{_lang}%::Item_Emerald}%"
  875. cancel event
  876. set {_Arena} to name of player's tool
  877. replace all "%{SW::Messages::%{_lang}%::Item_Emerald}%" with "" in {_Arena}
  878. arenaGUI(player, "%{_Arena}%")
  879. on chat:
  880. set {_message} to message
  881. {_message} contains "%%":
  882. replace all "%%" with "%" in {_message}
  883. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of player%")
  884. {_Arena} is not "*":
  885. set {_Team} to checkFileSKY("Datas.Players-List.%uuid of player%.Team", "arenas/%{_Arena}%")
  886. {_Team} is not set:
  887. set {_Team} to 0
  888. {_Team} is "*":
  889. set {_Team} to 0
  890. set message format to "%{SW::Messages::Team_%{_Team}%_ChatColor}%⬛ &7%uncolored display name of player% &8➵ &7%{_message}%"
  891. function itemShopPriceChecker(Player: player, Type: number, Slot: number) :: boolean:
  892. set {_lang} to language of {_Player}
  893. set {_costText::*} to {SW::Messages::%{_lang}%::ItemShop_Type_%{_Type}%_Cost::%{_Slot}%} split at " "
  894. set {_costFinder} to {_costText::2}
  895. if {_costFinder} is "iron" or "hierro":
  896. set {_ItemValue} to iron ingot
  897. else if {_costFinder} is "gold" or "oro":
  898. set {_ItemValue} to gold ingot
  899. else if {_costFinder} is "diamond" or "diamante":
  900. set {_ItemValue} to diamond
  901. else if {_costFinder} is "emerald" or "esmeralda":
  902. set {_ItemValue} to emerald
  903. set {_amount} to {_costText::1} parsed as number
  904. if number of {_ItemValue} in {_Player}'s inventory is greater or equal to {_amount}:
  905. return true
  906. else:
  907. return false
  908. function itemShop(Player: player, Type: number):
  909. set {_UUID} to uuid of {_Player}
  910.  
  911. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  912. {_Arena} is not "*"
  913. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  914. set {_lang} to language of {_Player}
  915. wait 2 ticks
  916. inventory name of {_Player}'in mevcut envanteri is not "%{SW::Messages::%{_lang}%::ItemShop_Header}%: %uncolored {SW::Messages::%{_lang}%::ItemShop_Type_0_Name::%{_Type}%}%":
  917. open virtual chest inventory with size 6 named "%{SW::Messages::%{_lang}%::ItemShop_Header}%: %uncolored {SW::Messages::%{_lang}%::ItemShop_Type_0_Name::%{_Type}%}%" to {_Player}
  918. wait 1 ticks
  919.  
  920. format gui slot 0 of {_Player} with {SW::Messages::ItemShop_Type_0_Item::0} named "%{SW::Messages::%{_lang}%::ItemShop_Type_0_Name::0}%" with lore "%{SW::Messages::%{_lang}%::Click_To_Quick_Buy_Menu}%" to run function itemShop({_Player}, 0)
  921.  
  922. set {_calc.0} to 9
  923. set {_z} to 2
  924. loop 7 times:
  925. set {_calc.%loop-number%} to 10+{_Type}
  926. format gui slot {_z} of {_Player} with {SW::Messages::ItemShop_Type_0_Item::%loop-number%} named "%{SW::Messages::%{_lang}%::ItemShop_Type_0_Name::%loop-number%}%" with lore "%{SW::Messages::%{_lang}%::ItemShop_List}%%{SW::Messages::%{_lang}%::ItemShop_Type_0_Lore::%loop-value%}%%{SW::Messages::%{_lang}%::ItemShop_Click_See}%" to run function itemShop({_Player}, loop-number)
  927. add 1 to {_z}
  928.  
  929.  
  930. set {_x} to 9
  931. set {_item} to {SW::Menu_Item}
  932. loop 9 times:
  933. {_x} is {_calc.%{_Type}%}:
  934. set {_item} to {SW::Messages::Team_3_GlassColor}
  935. {_x} is between 9 and 17:
  936. format gui slot {_x} of {_Player} with {_item} named "%{SW::Messages::%{_lang}%::Glass_Notifier_1_1}%" with lore "%{SW::Messages::%{_lang}%::Glass_Notifier_1_2}%"
  937. set {_item} to {SW::Menu_Item}
  938. add 1 to {_x}
  939.  
  940.  
  941. if {_Type} is 0:
  942. set {_level} to degerOku({_Player}, "leveling", "%{minigamesapi::shortnamegame}%_level", replaceMessage({_Player}, {MySQLAPI::leveling::default}), true, "1") parsed as number
  943. set {_loopTimes} to 14
  944. set {_z} to 28
  945. else:
  946. set {_z} to 28
  947. loop 14 times:
  948. {_z} is 35:
  949. add 2 to {_z}
  950. unformat gui slot {_z} of {_Player}
  951. add 1 to {_z}
  952. set {_z} to 28
  953. set {_loopTimes} to size of {SW::Messages::ItemShop_Type_%{_Type}%_Item::*}
  954. wait 2 ticks
  955. set {_slot} to 1
  956. loop {_loopTimes} times:
  957. delete {_iname}
  958. delete {_QBType}
  959. delete {_QBSlot}
  960. delete {_item}
  961. {_z} is 35:
  962. add 2 to {_z}
  963. if {_Type} is 0:
  964. set {_lore} to {SW::Messages::%{_lang}%::ItemShop_Quick_Buy_Enable_Lore}
  965. set {_name} to "&a%{SW::Messages::%{_lang}%::ItemShop_Quick_Buy_Slot}%"
  966. set {_item} to "102" parsed as material
  967. {_slot} is not 1:
  968. set {_needed} to 5 * {_slot}
  969. {_level} < {_needed}:
  970. set {_lore} to "%{SW::Messages::%{_lang}%::ItemShop_Quick_Buy_Locked_Lore}%"
  971. replace all "{LVL}" with "%{_needed}%" in {_lore}
  972. set {_name} to "&c%{SW::Messages::%{_lang}%::ItemShop_Quick_Buy_Slot}%"
  973. set {_item} to "101" parsed as material
  974. set {_QB.%{_slot}%} to checkFileSKY("Datas.Players-List.%{_UUID}%.Quick-Buy-Slot.%{_slot}%", "arenas/%{_Arena}%")
  975. if {_QB.%{_slot}%} is not "*":
  976. set {_QB.data::*} to {_QB.%{_slot}%} split at ","
  977. set {_QBType} to {_QB.data::1} parsed as number
  978. set {_QBSlot} to {_QB.data::2} parsed as number
  979. else:
  980. set {_iname} to "%coloured {_name}% ##%{_slot}%"
  981. else:
  982. set {_QBType} to {_Type}
  983. set {_QBSlot} to loop-number
  984. set {_item} to {SW::Messages::ItemShop_Type_%{_QBType}%_Item::%{_QBSlot}%}
  985. {_iname} is not set:
  986. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_No}
  987. set {_buylore} to {SW::Messages::%{_lang}%::ItemShop_Click_No}
  988. set {_r} to itemShopPriceChecker({_Player}, {_QBType}, {_QBSlot})
  989. {_r} is true:
  990. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_Yes}
  991. set {_buylore} to {SW::Messages::%{_lang}%::ItemShop_Click_Buy}
  992. set {_c} to {SW::Messages::%{_lang}%::ItemShop_Cost}
  993. set {_m} to {SW::Messages::%{_lang}%::ItemShop_Type_%{_QBType}%_Cost::%{_QBSlot}%}
  994. replace all "iron" with "%{SW::Messages::%{_lang}%::Text_Iron}%" in {_m}
  995. replace all "gold" with "%{SW::Messages::%{_lang}%::Text_Gold}%" in {_m}
  996. replace all "diamond" with "%{SW::Messages::%{_lang}%::Text_Diamond}%" in {_m}
  997. replace all "emerald" with "%{SW::Messages::%{_lang}%::Text_Emerald}%" in {_m}
  998. replace all "{COST}" with "%{_m}%" in {_c}
  999. set {_lore} to "%{_c}%%{_buylore}%"
  1000. {_QBType} is 1 or 2:
  1001. set {_lore} to "%{_lore}%||%{SW::Messages::%{_lang}%::Cant_Lose_Death}%"
  1002. {_QBType} is 1:
  1003. set {_lore} to "%{_lore}%||%{SW::Messages::%{_lang}%::Comes_With_That}%"
  1004. set {_iname} to "%{_prefix}%%uncolored {SW::Messages::%{_lang}%::ItemShop_Type_%{_QBType}%_Name::%{_QBSlot}%}%"
  1005. if {_Type} is 0:
  1006. set {_lore} to "%{_lore}%||||%{SW::Messages::%{_lang}%::ItemShop_Quick_Buy_Remove}%"
  1007. else:
  1008. set {_lore} to "%{_lore}%||||%{SW::Messages::%{_lang}%::ItemShop_Quick_Buy_Add}%"
  1009. set {_babe} to true
  1010. format gui slot {_z} of {_Player} with {_item} named "%{_iname}%" with lore {_lore} to run function itemShopBuy({_Player}, {_QBType}, {_QBSlot}, {_Type}) using RMB action
  1011. format gui slot {_z} of {_Player} with {_item} named "%{_iname}%" with lore {_lore} to run function itemShopBuy({_Player}, {_QBType}, {_QBSlot}, {_Type}) using LMB action
  1012. format gui slot {_z} of {_Player} with {_item} named "%{_iname}%" with lore {_lore} to run function quickBuyDefine({_Player}, {_slot}, {_Type}, {_QBSlot}) using right mouse button with shift action
  1013. add 1 to {_z}
  1014. add 1 to {_slot}
  1015. function itemShopBuy(Player: player, Type: number, Slot: number, Control: number):
  1016. set {_UUID} to uuid of {_Player}
  1017. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  1018. {_Arena} is not "*"
  1019. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  1020. set {_lang} to language of {_Player}
  1021. set {_costText::*} to {SW::Messages::%{_lang}%::ItemShop_Type_%{_Type}%_Cost::%{_Slot}%} split at " "
  1022. set {_costFinder} to {_costText::2}
  1023. if {_costFinder} is "iron" or "hierro":
  1024. set {_ItemValue} to iron ingot
  1025. else if {_costFinder} is "gold" or "oro":
  1026. set {_ItemValue} to gold ingot
  1027. else if {_costFinder} is "diamond" or "diamante":
  1028. set {_ItemValue} to diamond
  1029. else if {_costFinder} is "emerald" or "esmeralda":
  1030. set {_ItemValue} to emerald
  1031. set {_amount} to {_costText::1} parsed as number
  1032. itemShop({_Player}, {_Control})
  1033. if number of {_ItemValue} in {_Player}'s inventory is greater or equal to {_amount}:
  1034. set {_i} to "%{_amount}% %{_ItemValue}%" parsed as material
  1035. playSoundSKY({_Player}, "NOTE_PLING", "NOTE_PLING", 1)
  1036. remove {_i} from {_Player}'s inventory
  1037. if {_Type} is not 1 or 2:
  1038. {_Type} is 3:
  1039. {_Slot} is 1
  1040. set {_Team} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%")
  1041. give 16 of {SW::Messages::Team_%{_Team}%_WoolColor} to {_Player}
  1042. stop
  1043. give {SW::Messages::ItemShop_Type_%{_Type}%_Item::%{_Slot}%} to {_Player}
  1044. stop
  1045. else if {_Type} is 2:
  1046. slot 0 of {_Player}'s inventory is not air:
  1047. give slot 0 of {_Player}'s inventory to {_Player}
  1048. wait 1 ticks
  1049. set slot 0 of {_Player}'s inventory to {SW::Messages::ItemShop_Type_%{_Type}%_Item::%{_Slot}%}
  1050. stop
  1051. else if {_Type} is 1:
  1052. set {_Player}'s boots to {SW::Messages::ItemShop_Type_%{_Type}%_Item::%{_Slot}%}
  1053. writeFileSKY("Datas.Players-List.%{_UUID}%.Boots", "%{_Slot}%", "arenas/%{_Arena}%")
  1054. if "%{SW::Messages::ItemShop_Type_%{_Type}%_Item::%{_Slot}%}%" contains "chain":
  1055. writeFileSKY("Datas.Players-List.%{_UUID}%.Leggings", "chain", "arenas/%{_Arena}%")
  1056. set {_Player}'s leggings to chain leggings
  1057. else if "%{SW::Messages::ItemShop_Type_%{_Type}%_Item::%{_Slot}%}%" contains "iron":
  1058. writeFileSKY("Datas.Players-List.%{_UUID}%.Leggings", "iron", "arenas/%{_Arena}%")
  1059. set {_Player}'s leggings to iron leggings
  1060. else if "%{SW::Messages::ItemShop_Type_%{_Type}%_Item::%{_Slot}%}%" contains "diamond":
  1061. writeFileSKY("Datas.Players-List.%{_UUID}%.Leggings", "diamond", "arenas/%{_Arena}%")
  1062. set {_Player}'s leggings to diamond leggings
  1063. stop
  1064. else:
  1065. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::No_Resource}%" to {_Player}
  1066. playSoundSKY({_Player}, "NOTE_HARP", "NOTE_HARP", 1)
  1067. stop
  1068. function quickBuyDefine(Player: player, Pos: number, QBType: number, QBSlot: number):
  1069. set {_UUID} to uuid of {_Player}
  1070. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  1071. {_Arena} is not "*"
  1072. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  1073. set {_lang} to language of {_Player}
  1074. itemShop({_Player}, 0)
  1075. if {_QBType} is 0:
  1076. writeFileSKY("Datas.Players-List.%{_UUID}%.Quick-Buy-Slot.%{_Pos}%", "*", "arenas/%{_Arena}%")
  1077. else:
  1078. set {_level} to degerOku({_Player}, "leveling", "%{minigamesapi::shortnamegame}%_level", replaceMessage({_Player}, {MySQLAPI::leveling::default}), true, "1") parsed as number
  1079. set {_calc} to rounded down {_level}/5
  1080. set {_max} to 1
  1081. {_calc} is greater than 1:
  1082. set {_max} to {_calc}
  1083. {_max} is greater than 14:
  1084. set {_max} to 14
  1085. set {_found} to false
  1086. loop {_max} times:
  1087. checkFileSKY("Datas.Players-List.%{_UUID}%.Quick-Buy-Slot.%loop-number%", "arenas/%{_Arena}%") is "*"
  1088. writeFileSKY("Datas.Players-List.%{_UUID}%.Quick-Buy-Slot.%loop-number%", "%{_QBType}%,%{_QBSlot}%", "arenas/%{_Arena}%")
  1089. set {_found} to true
  1090. exit loop
  1091. {_found} is false
  1092. writeFileSKY("Datas.Players-List.%{_UUID}%.Quick-Buy-Slot.%{_max}%", "%{_QBType}%,%{_QBSlot}%", "arenas/%{_Arena}%")
  1093. function teleportDelayAPI(Player: player):
  1094. set {_UUID} to uuid of {_Player}
  1095. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  1096. {_Arena} is not "*"
  1097. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  1098. set {_lang} to language of {_Player}
  1099. set {_Team} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%")
  1100. checkFileSKY("Datas.Used-Features.%{_Team}%.5", "arenas/%{_Arena}%") is "*"
  1101. set {_tp} to checkFileSKY("Datas.Players-List.%{_UUID}%.TP", "arenas/%{_Arena}%")
  1102. {_tp} is "*"
  1103. writeFileSKY("Datas.Players-List.%{_UUID}%.TP", "true", "arenas/%{_Arena}%")
  1104. set {_time} to 5
  1105. set {_cl} to "&c"
  1106. set {_locControl} to {_Player}'s x-coord
  1107. while {_time} is not 0:
  1108. if {_Player} is online:
  1109. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2":
  1110. if checkFileSKY("Datas.Players-List.%{_UUID}%.TP", "arenas/%{_Arena}%") is "true":
  1111. set {_CurrentX} to {_Player}'s x-coord
  1112. {_locControl} is not between {_CurrentX}-1 and {_CurrentX}+1:
  1113. writeFileSKY("Datas.Players-List.%{_UUID}%.TP", "*", "arenas/%{_Arena}%")
  1114. {_time} < 4:
  1115. set {_cl} to "&a"
  1116. send title "% {_cl}%%{_time}%" with subtitle "" for 1 seconds to {_Player}
  1117. playSoundSKY({_Player}, "NOTE_HAT", "CHICKEN_EGG_POP", 1)
  1118. remove 1 from {_time}
  1119. wait 21 ticks
  1120. else:
  1121. send title "&4✘" with subtitle "" for 1 seconds to {_Player}
  1122. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_Teleport_Cancel}%" to {_Player}
  1123. writeFileSKY("Datas.Players-List.%{_UUID}%.TP", "*", "arenas/%{_Arena}%")
  1124. stop
  1125. else:
  1126. stop
  1127. else:
  1128. stop
  1129. remove eye of ender from {_Player}
  1130. writeFileSKY("Datas.Used-Features.%{_Team}%.5", "true", "arenas/%{_Arena}%")
  1131. writeFileSKY("Datas.Players-List.%{_UUID}%.TP", "*", "arenas/%{_Arena}%")
  1132. set {_CurrentMap} to checkFileSKY("Datas.Current-Map", "arenas/%{_Arena}%")
  1133. set {_x} to checkFileSKY("Datas.Spawns.%{_Team}%.x", "maps/%{_CurrentMap}%") parsed as number
  1134. set {_y} to checkFileSKY("Datas.Spawns.%{_Team}%.y", "maps/%{_CurrentMap}%") parsed as number
  1135. set {_z} to checkFileSKY("Datas.Spawns.%{_Team}%.z", "maps/%{_CurrentMap}%") parsed as number
  1136. set {_w} to checkFileSKY("Datas.Spawns.%{_Team}%.world", "maps/%{_CurrentMap}%") parsed as world
  1137. set {_Loc} to location of block at location ({_x}, {_y}, {_z}) in world {_w}
  1138. send title "&2✓" with subtitle "" for 1 seconds to {_Player}
  1139. teleport {_Player} to {_Loc}
  1140. playSoundSKY({_Player}, "BLOCK_PISTON_EXTEND", "PISTON_EXTEND", 1)
  1141. stop
  1142. function upgradeMenuBuy(Player: player, Type: number, Slot: number):
  1143. set {_UUID} to uuid of {_Player}
  1144. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  1145. {_Arena} is not "*"
  1146. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  1147. set {_Team} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%") parsed as number
  1148. set {_lang} to language of {_Player}
  1149. if {_Type} is 0:
  1150. set {_PlayerTier} to checkFileSKY("Datas.Upgrades-Tier.%{_Team}%.%{_Slot}%", "arenas/%{_Arena}%") parsed as number
  1151. {_PlayerTier} is not set:
  1152. set {_PlayerTier} to 0
  1153. set {_NextTier} to {_PlayerTier}+1
  1154. set {_cost} to {SW::Messages::Upgrades_Cost::%{_Slot}%::Tier::%{_NextTier}%}
  1155. else:
  1156. set {_cost} to {SW::Messages::Features_Cost::%{_Slot}%}
  1157. set {_confrm} to false
  1158. if {_Type} is 0:
  1159. set {_max} to size of {SW::Messages::Upgrades_Cost::%{_Slot}%::Tier::*}
  1160. if {_max} is greater or equal to {_NextTier}:
  1161. set {_confrm} to true
  1162. else:
  1163. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Upgrades_Tier_Error}%" to {_Player}
  1164. stop
  1165. else:
  1166. if checkFileSKY("Datas.Features.%{_Team}%.%{_Slot}%", "arenas/%{_Arena}%") is "true":
  1167. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_Error}%" to {_Player}
  1168. stop
  1169. else:
  1170. set {_confrm} to true
  1171. {_confrm} is true
  1172. if number of diamond in {_Player}'s inventory is greater or equal to {_cost}:
  1173. if {_Type} is 0:
  1174. set {_PlayerList::*} to configuration section "Datas.Players-List" get of "plugins/%{minigamesapi::game}%/arenas/%{_Arena}%.yml"
  1175. loop {_PlayerList::*}:
  1176. set {_Team::%loop-value%} to checkFileSKY("Datas.Players-List.%loop-value%.Team", "arenas/%{_Arena}%")
  1177. {_Team::%loop-value%} is "%{_Team}%"
  1178. if {_Slot} is 1:
  1179. apply potion of strength of tier 1 to {_Player} for 999 minutes
  1180. else if {_Slot} is 2:
  1181. apply potion of resistance of tier {_NextTier} to {_Player} for 999 minutes
  1182. else if {_Slot} is 3:
  1183. apply potion of haste of tier {_NextTier} to {_Player} for 999 minutes
  1184. else if {_Slot} is 4:
  1185. apply potion of regeneration of tier {_NextTier} to {_Player} for 999 minutes
  1186. {_Slot} is 5:
  1187. degerEkleSKY("Datas.Dropper-Tiers.%{_Team}%", 1, "arenas/%{_Arena}%")
  1188. set {_Dropper} to checkFileSKY("Datas.Dropper-Tiers.%{_Team}%", "arenas/%{_Arena}%") parsed as number
  1189. {_Dropper} is 3:
  1190. dropIngots("%{_Arena}%", {_Team}, 2)
  1191. degerEkleSKY("Datas.Upgrades-Tier.%{_Team}%.%{_Slot}%", 1, "arenas/%{_Arena}%")
  1192. set {_msg} to {SW::Messages::%{_lang}%::Upgrades_Upgraded_Tier}
  1193. replace all "{NAME}" with "%{SW::Messages::%{_lang}%::Upgrades_Name::%{_Slot}%}%" in {_msg}
  1194. replace all "{TIER}" with "%{_NextTier}%" in {_msg}
  1195. send "%{SW::Prefix}% %{_msg}%" to {_Player}
  1196. else if {_Type} is 1:
  1197. checkFileSKY("Datas.Used-Features.%{_Team}%.%{_Slot}%", "arenas/%{_Arena}%") is "true":
  1198. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_One_Use}%" to {_Player}
  1199. stop
  1200. {_Slot} is 5:
  1201. give eye of ender named "%{SW::Messages::%{_lang}%::Features_FeatureItems_5_Name}%" with lore "%{SW::Messages::%{_lang}%::Features_FeatureItems_5_Lore}%" to {_Player}
  1202. writeFileSKY("Datas.Features.%{_Team}%.%{_Slot}%", "true", "arenas/%{_Arena}%")
  1203. set {_msg} to {SW::Messages::%{_lang}%::Features_Buy}
  1204. replace all "{NAME}" with "%{SW::Messages::%{_lang}%::Features_Name::%{_Slot}%}%" in {_msg}
  1205. send "%{SW::Prefix}% %{_msg}%" to {_Player}
  1206. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::Features_Buy_Lore_%{_Slot}%}%" to {_Player}
  1207. set {_i} to "%{_cost}% diamond" parsed as material
  1208. play sound "NOTE_PLING" to {_Player} with volume 1 and pitch 1
  1209. remove {_i} from {_Player}'s inventory
  1210. else:
  1211. send "%{SW::Prefix}% %{SW::Messages::%{_lang}%::No_Resource}%" to {_Player}
  1212. play sound "NOTE_HARP" to {_Player} with volume 1 and pitch 1
  1213. stop
  1214. function upgradeMenu(Player: player):
  1215. set {_UUID} to uuid of {_Player}
  1216. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%{_UUID}%")
  1217. {_Arena} is not "*"
  1218. checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "2"
  1219. set {_Team} to checkFileSKY("Datas.Players-List.%{_UUID}%.Team", "arenas/%{_Arena}%")
  1220. set {_gitem} to {SW::Messages::Team_%{_Team}%_GlassColor}
  1221. {_Team} is "*":
  1222. set {_gitem} to {SW::Menu_Item}
  1223. set {_lang} to language of {_Player}
  1224. wait 2 ticks
  1225. open virtual chest inventory with size 5 named "%{SW::Messages::%{_lang}%::Upgrades_Header}%" to {_Player}
  1226. wait 1 ticks
  1227. set {_z} to 11
  1228. loop 5 times:
  1229. set {_tierLore} to "||"
  1230. set {_PlayerTier} to checkFileSKY("Datas.Upgrades-Tier.%{_Team}%.%loop-number-1%", "arenas/%{_Arena}%") parsed as number
  1231. {_PlayerTier} is not set:
  1232. set {_PlayerTier} to 0
  1233. set {_NextTier} to {_PlayerTier}+1
  1234. loop 4 times:
  1235. set {_currentTierPrefix} to "&f•"
  1236. {SW::Messages::Upgrades_Cost::%loop-number-1%::Tier::%loop-number-2%} is set
  1237. {_PlayerTier} is loop-number-2:
  1238. set {_currentTierPrefix} to "&6•"
  1239. set {_tierLore} to "%{_tierLore}%||%{_currentTierPrefix}% %{SW::Messages::%{_lang}%::Upgrades_Tier_%loop-number-2%}%"
  1240. replace all "{TIER%loop-number-2%}" with "%{SW::Messages::Upgrades_Cost::%loop-number-1%::Tier::%loop-number-2%}%" in {_tierLore}
  1241. loop-number-1 is 5:
  1242. set {_tierLore} to "%{_tierLore}% %{SW::Messages::%{_lang}%::Upgrades_Lore::5_%loop-number-2%}%"
  1243. set {_max} to loop-number-2
  1244. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_No}
  1245. set {_buylore} to {SW::Messages::%{_lang}%::Upgrades_Lore_No}
  1246. if {_max} is less than {_NextTier}:
  1247. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_Max}
  1248. set {_buylore} to {SW::Messages::%{_lang}%::Upgrades_Lore_Max}
  1249. else:
  1250. number of diamond in {_Player}'s inventory is greater or equal to {SW::Messages::Upgrades_Cost::%loop-number-1%::Tier::%{_NextTier}%}:
  1251. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_Yes}
  1252. set {_buylore} to {SW::Messages::%{_lang}%::ItemShop_Click_Buy}
  1253. format gui slot {_z} of {_Player} with {SW::Messages::Upgrades_Item::%loop-number-1%} named "%{_prefix}%%{SW::Messages::%{_lang}%::Upgrades_Name::%loop-number-1%}%" with lore "%{SW::Messages::%{_lang}%::Upgrades_Lore::%loop-number-1%}%%{_tierLore}%%{_buylore}%" to close then run function upgradeMenuBuy({_Player}, 0, loop-number)
  1254. add 1 to {_z}
  1255. loop 27 times:
  1256. {_x} is between 18 and 26:
  1257. format gui slot {_x} of {_Player} with {_gitem} named "%{SW::Messages::%{_lang}%::Glass_Notifier_2_1}%" with lore "%{SW::Messages::%{_lang}%::Glass_Notifier_2_2}%"
  1258. add 1 to {_x}
  1259. set {_z} to 29
  1260. loop 5 times:
  1261. set {_cost} to {SW::Messages::%{_lang}%::Features_Cost}
  1262. replace all "{COST}" with "%{SW::Messages::Features_Cost::%loop-number-1%}%" in {_cost}
  1263. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_No}
  1264. set {_buylore} to {SW::Messages::%{_lang}%::Upgrades_Lore_No}
  1265. if checkFileSKY("Datas.Features.%{_Team}%.%loop-number%", "arenas/%{_Arena}%") is "*" or "false":
  1266. number of diamond in {_Player}'s inventory is greater or equal to {SW::Messages::Features_Cost::%loop-number-1%}:
  1267. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_Yes}
  1268. set {_buylore} to {SW::Messages::%{_lang}%::ItemShop_Click_Buy}
  1269. else:
  1270. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_Max}
  1271. set {_buylore} to {SW::Messages::%{_lang}%::Features_Lore_Using}
  1272. checkFileSKY("Datas.Used-Features.%{_Team}%.%loop-number%", "arenas/%{_Arena}%") is "true":
  1273. set {_prefix} to {SW::Messages::%{_lang}%::ItemShop_Prefix_Used}
  1274. set {_buylore} to {SW::Messages::%{_lang}%::ItemShop_Click_Used}
  1275. format gui slot {_z} of {_Player} with {SW::Messages::Features_Item::%loop-number-1%} named "%{_prefix}%%{SW::Messages::%{_lang}%::Features_Name::%loop-number-1%}%" with lore "%{SW::Messages::%{_lang}%::Features_Lore::%loop-number-1%}%%{_cost}%%{_buylore}%" to close then run function upgradeMenuBuy({_Player}, 1, loop-number)
  1276. add 1 to {_z}
  1277. on rightclick on player:
  1278. cancel event
  1279. if name of clicked player is "%{SW::Messages::Item_Shop_NPC}%":
  1280. wait 2 tick
  1281. itemShop(player, 0)
  1282. else if name of clicked player is "%{SW::Messages::Upgrade}%":
  1283. wait 1 tick
  1284. upgradeMenu(player)
  1285. on damage of player:
  1286. attacker is a player
  1287. name of victim is "%{SW::Messages::Item_Shop_NPC}%" or "%{SW::Messages::Upgrade}%"
  1288. attacker has permission "minigameapi.admin":
  1289. stop
  1290. cancel event
  1291. on rightclick with eye of ender:
  1292. teleportDelayAPI(player)
  1293. on drop:
  1294. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of player%")
  1295. {_Arena} is not "*"
  1296. player has permission "minigameapi.admin":
  1297. stop
  1298. cancel event
  1299. on damage:
  1300. set {_Arena} to checkFileSKY("Players.Arena-Name", "playerdata/%uuid of victim%")
  1301. if {_Arena} is not "*":
  1302. damage cause is void:
  1303. wait 3 ticks
  1304. kill the victim
  1305. stop
  1306. if checkFileSKY("Datas.Status", "arenas/%{_Arena}%") is "0" or "1":
  1307. cancel event
  1308. else:
  1309. checkFileSKY("Datas.Type", "arenas/%{_Arena}%") is not "Solo":
  1310. set {_partya} to checkFileSKY("Datas.Players-List.%uuid of attacker%.HasParty", "arenas/%{_Arena}%")
  1311. set {_partyv} to checkFileSKY("Datas.Players-List.%uuid of victim%.HasParty", "arenas/%{_Arena}%")
  1312. "%{_partya}%" is "%{_partyv}%"
  1313. cancel event
  1314. attacker is a player
  1315. checkFileSKY("Players.Spectator", "playerdata/%uuid of attacker%") is not "*":
  1316. cancel event
  1317. checkFileSKY("Players.Spectator", "playerdata/%uuid of victim%") is not "*":
  1318. cancel event
  1319. on skript load:
  1320. wait 1 ticks
  1321. execute console command "/sk reload minigames_2api"
  1322. on load:
  1323. set {minigamesapi::shortnamegame} to "%{minigamesapi::game}%" to all lower case
  1324. #
  1325. set {SW::Messages::Item_Shop_NPC} to "&a☺"
  1326. set {SW::Messages::Upgrade} to "&6⇪"
  1327. #
  1328. set {SW::Messages::Upgrades_Item::1} to iron sword
  1329. set {SW::Messages::Upgrades_Item::2} to chain chestplate
  1330. set {SW::Messages::Upgrades_Item::3} to gold pickaxe
  1331. set {SW::Messages::Upgrades_Item::4} to beacon
  1332. set {SW::Messages::Upgrades_Item::5} to "61" parsed as material
  1333. #
  1334. set {SW::Messages::Features_Item::1} to "130" parsed as material
  1335. set {SW::Messages::Features_Item::2} to bed item
  1336. set {SW::Messages::Features_Item::3} to clock
  1337. set {SW::Messages::Features_Item::4} to leather boots
  1338. set {SW::Messages::Features_Item::5} to eye of ender
  1339. #
  1340. set {SW::Messages::Features_Cost::1} to 20
  1341. set {SW::Messages::Features_Cost::2} to 20
  1342. set {SW::Messages::Features_Cost::3} to 10
  1343. set {SW::Messages::Features_Cost::4} to 6
  1344. set {SW::Messages::Features_Cost::5} to 15
  1345. #
  1346. set {SW::Messages::Upgrades_Cost::1::Tier::1} to 8
  1347. set {SW::Messages::Upgrades_Cost::2::Tier::1} to 8
  1348. set {SW::Messages::Upgrades_Cost::2::Tier::2} to 16
  1349. set {SW::Messages::Upgrades_Cost::2::Tier::3} to 24
  1350. set {SW::Messages::Upgrades_Cost::3::Tier::1} to 3
  1351. set {SW::Messages::Upgrades_Cost::3::Tier::2} to 5
  1352. set {SW::Messages::Upgrades_Cost::4::Tier::1} to 5
  1353. set {SW::Messages::Upgrades_Cost::5::Tier::1} to 3
  1354. set {SW::Messages::Upgrades_Cost::5::Tier::2} to 6
  1355. set {SW::Messages::Upgrades_Cost::5::Tier::3} to 8
  1356. set {SW::Messages::Upgrades_Cost::5::Tier::4} to 10
  1357. set {SW::Messages::Team_1_Color} to red
  1358. set {SW::Messages::Team_2_Color} to blue
  1359. set {SW::Messages::Team_3_Color} to green
  1360. set {SW::Messages::Team_4_Color} to yellow
  1361. set {SW::Messages::Team_5_Color} to aqua
  1362. set {SW::Messages::Team_6_Color} to white
  1363. set {SW::Messages::Team_7_Color} to pink
  1364. set {SW::Messages::Team_8_Color} to gray
  1365. set {SW::Messages::Team_0_ChatColor} to "&0"
  1366. set {SW::Messages::Team_1_ChatColor} to "&c"
  1367. set {SW::Messages::Team_2_ChatColor} to "&9"
  1368. set {SW::Messages::Team_3_ChatColor} to "&a"
  1369. set {SW::Messages::Team_4_ChatColor} to "&e"
  1370. set {SW::Messages::Team_5_ChatColor} to "&b"
  1371. set {SW::Messages::Team_6_ChatColor} to "&f"
  1372. set {SW::Messages::Team_7_ChatColor} to "&d"
  1373. set {SW::Messages::Team_8_ChatColor} to "&8"
  1374. set {SW::Messages::Team_1_GlassColor} to "160:14" parsed as material
  1375. set {SW::Messages::Team_2_GlassColor} to "160:11" parsed as material
  1376. set {SW::Messages::Team_3_GlassColor} to "160:5" parsed as material
  1377. set {SW::Messages::Team_4_GlassColor} to "160:4" parsed as material
  1378. set {SW::Messages::Team_5_GlassColor} to "160:3" parsed as material
  1379. set {SW::Messages::Team_6_GlassColor} to "160:0" parsed as material
  1380. set {SW::Messages::Team_7_GlassColor} to "160:2" parsed as material
  1381. set {SW::Messages::Team_8_GlassColor} to "160:7" parsed as material
  1382. set {SW::Messages::Item_0} to iron ingot
  1383. set {SW::Messages::Item_1} to gold ingot
  1384. set {SW::Messages::Item_2} to emerald
  1385. set {SW::Messages::Quick_Buy_Item} to "101" parsed as material
  1386. set {SW::Messages::Dropper_Item_Timings_0_Tier_0} to 5 seconds
  1387. set {SW::Messages::Dropper_Item_Timings_0_Tier_1} to 4 seconds
  1388. set {SW::Messages::Dropper_Item_Timings_0_Tier_2} to 3 seconds
  1389. set {SW::Messages::Dropper_Item_Timings_0_Tier_3} to 2 seconds
  1390. set {SW::Messages::Dropper_Item_Timings_0_Tier_4} to 1 seconds
  1391. set {SW::Messages::Dropper_Item_Timings_1_Tier_0} to 6 seconds
  1392. set {SW::Messages::Dropper_Item_Timings_1_Tier_1} to 5 seconds
  1393. set {SW::Messages::Dropper_Item_Timings_1_Tier_2} to 4 seconds
  1394. set {SW::Messages::Dropper_Item_Timings_1_Tier_3} to 3 seconds
  1395. set {SW::Messages::Dropper_Item_Timings_1_Tier_4} to 2 seconds
  1396. set {SW::Messages::Dropper_Item_Timings_2_Tier_3} to 15 seconds
  1397. set {SW::Messages::Dropper_Item_Timings_2_Tier_4} to 10 seconds
  1398. set {SW::Messages::ItemShop_Type_0_Item::0} to nether star
  1399. set {SW::Messages::ItemShop_Type_0_Item::1} to chain boots
  1400. set {SW::Messages::ItemShop_Type_0_Item::2} to gold sword
  1401. set {SW::Messages::ItemShop_Type_0_Item::3} to sandstone
  1402. set {SW::Messages::ItemShop_Type_0_Item::4} to bow
  1403. set {SW::Messages::ItemShop_Type_0_Item::5} to stone pickaxe
  1404. set {SW::Messages::ItemShop_Type_0_Item::6} to brewing stand item
  1405. set {SW::Messages::ItemShop_Type_0_Item::7} to water bucket
  1406. set {SW::Messages::ItemShop_Type_1_Item::1} to chain boots
  1407. set {SW::Messages::ItemShop_Type_1_Item::2} to iron boots
  1408. set {SW::Messages::ItemShop_Type_1_Item::3} to diamond boots
  1409. set {SW::Messages::ItemShop_Type_2_Item::1} to stone sword
  1410. set {SW::Messages::ItemShop_Type_2_Item::2} to iron sword
  1411. set {SW::Messages::ItemShop_Type_2_Item::3} to diamond sword
  1412. set {SW::Messages::ItemShop_Type_2_Item::4} to stick of knockback 1
  1413. set {SW::Messages::ItemShop_Type_3_Item::1} to "16 35" parsed as material
  1414. set {SW::Messages::ItemShop_Type_3_Item::2} to "16 24" parsed as material
  1415. set {SW::Messages::ItemShop_Type_3_Item::3} to "12 121" parsed as material
  1416. set {SW::Messages::ItemShop_Type_3_Item::4} to 16 of ladder
  1417. set {SW::Messages::ItemShop_Type_3_Item::5} to "16 5:0" parsed as material
  1418. set {SW::Messages::ItemShop_Type_3_Item::6} to 4 of obsidian
  1419. set {SW::Messages::ItemShop_Type_4_Item::1} to 8 of arrow
  1420. set {SW::Messages::ItemShop_Type_4_Item::2} to bow
  1421. set {SW::Messages::ItemShop_Type_4_Item::3} to bow of power 1
  1422. set {SW::Messages::ItemShop_Type_4_Item::4} to bow of power 1 and punch 1
  1423. set {SW::Messages::ItemShop_Type_5_Item::1} to shears
  1424. set {SW::Messages::ItemShop_Type_5_Item::2} to wooden pickaxe
  1425. set {SW::Messages::ItemShop_Type_5_Item::3} to stone pickaxe of efficiency 1
  1426. set {SW::Messages::ItemShop_Type_5_Item::4} to iron pickaxe of efficiency 2
  1427. set {SW::Messages::ItemShop_Type_5_Item::5} to iron pickaxe of efficiency 3
  1428. set {SW::Messages::ItemShop_Type_5_Item::6} to diamond axe of efficiency 1
  1429. set {SW::Messages::ItemShop_Type_6_Item::1} to "373:8194" parsed as material
  1430. set {SW::Messages::ItemShop_Type_6_Item::2} to "373:8203" parsed as material
  1431. set {SW::Messages::ItemShop_Type_6_Item::3} to "373:8197" parsed as material
  1432. set {SW::Messages::ItemShop_Type_7_Item::1} to golden apple
  1433. set {SW::Messages::ItemShop_Type_7_Item::2} to 10 of snowball
  1434. set {SW::Messages::ItemShop_Type_7_Item::3} to ender pearl
  1435. set {SW::Messages::ItemShop_Type_7_Item::4} to water bucket
  1436. set {SW::Messages::ItemShop_Type_7_Item::5} to lava bucket
  1437. set {SW::Messages::Middle_Item_Emerald} to emerald
  1438. set {SW::Messages::Middle_Item_Diamond} to diamond
  1439. set {SW::Messages::Tier_1_Diamond} to 30
  1440. set {SW::Messages::Tier_2_Diamond} to 20
  1441. set {SW::Messages::Tier_3_Diamond} to 15
  1442. set {SW::Messages::Tier_4_Diamond} to 15
  1443. set {SW::Messages::Tier_1_Emerald} to 70
  1444. set {SW::Messages::Tier_2_Emerald} to 50
  1445. set {SW::Messages::Tier_3_Emerald} to 30
  1446. set {SW::Messages::Tier_4_Emerald} to 30
  1447. set {SW::Messages::Team_1_WoolColor} to "35:14" parsed as material
  1448. set {SW::Messages::Team_2_WoolColor} to "35:11" parsed as material
  1449. set {SW::Messages::Team_3_WoolColor} to "35:5" parsed as material
  1450. set {SW::Messages::Team_4_WoolColor} to "35:4" parsed as material
  1451. set {SW::Messages::Team_5_WoolColor} to "35:3" parsed as material
  1452. set {SW::Messages::Team_6_WoolColor} to "35:0" parsed as material
  1453. set {SW::Messages::Team_7_WoolColor} to "35:2" parsed as material
  1454. set {SW::Messages::Team_8_WoolColor} to "35:7" parsed as material
  1455. set {SW::Messages::Text_Roman_1} to "I"
  1456. set {SW::Messages::Text_Roman_2} to "II"
  1457. set {SW::Messages::Text_Roman_3} to "III"
  1458. set {SW::Messages::Tier_Text} to "&e⇪ = "
  1459. set {SW::Messages::Spawns_In} to "&6⌛ = "
  1460. set {SW::Messages::Type_Emerald} to "ItemStack:EMERALD_BLOCK;;&f&m-----------&r;%{SW::Messages::Tier_Text}% I;%{SW::Messages::Spawns_In}%;&f&m-----------&r"
  1461. set {SW::Messages::Type_Diamond} to "ItemStack:DIAMOND_BLOCK;;&f&m-----------&r;%{SW::Messages::Tier_Text}% I;%{SW::Messages::Spawns_In}%;&f&m-----------&r"
  1462. #
  1463. set {SW::Messages::Temp_Holo_Lines_1} to " "
  1464. set {SW::Messages::Temp_Holo_Lines_2} to "&f&m-----------&r"
  1465. set {SW::Messages::Temp_Holo_Lines_3} to "%{SW::Messages::Tier_Text}% I"
  1466. set {SW::Messages::Temp_Holo_Lines_4} to "%{SW::Messages::Spawns_In}%"
  1467. set {SW::Messages::Temp_Holo_Lines_5} to "&f&m-----------&r"
  1468. #
  1469. set {SW::Game_Item_0} to player head with custom nbt "{display:{Name:""Lime green (32CD32)""},SkullOwner:{Id:""1275bae2-2ad3-447b-bf98-e74437907bfc"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJkMTQ1YzkzZTVlYWM0OGE2NjFjNmYyN2ZkYWZmNTkyMmNmNDMzZGQ2MjdiZjIzZWVjMzc4Yjk5NTYxOTcifX19""}]}}}"
  1470. set {SW::Game_Item_1} to player head with custom nbt "{display:{Name:""Dark green (006400)""},SkullOwner:{Id:""c9d71cd8-69e6-47e0-8493-197df80d3a4f"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmM5ZTYwMWVkOTE5OGRiYjM0YzUxZGRmMzIzOTI5ZjAxYTVmOTU4YWIxMTEzM2UzZTA0MDdiNjk4MzkzYjNmIn19fQ==""}]}}}"
  1471. set {SW::Game_Item_2} to player head with custom nbt "{display:{Name:""Yellow (FFFF00)""},SkullOwner:{Id:""11d8b86f-8c1c-4a47-bc34-26dba4640a5c"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzY0MTY4MmY0MzYwNmM1YzlhZDI2YmM3ZWE4YTMwZWU0NzU0N2M5ZGZkM2M2Y2RhNDllMWMxYTI4MTZjZjBiYSJ9fX0=""}]}}}"
  1472. set {SW::Game_Item_3} to player head with custom nbt "{display:{Name:""Purple (800080)""},SkullOwner:{Id:""46b5e8fd-1468-4462-ab4a-3ed65789f403"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTMyYWUyY2I4ZDJhZTYxNTE0MWQyYzY1ODkyZjM2NGZjYWRkZjczZmRlYzk5YmUxYWE2ODc0ODYzZWViNWMifX19""}]}}}"
  1473. set {SW::Game_Item_4} to player head with custom nbt "{display:{Name:""Red (FF0000)""},SkullOwner:{Id:""6edc03f4-71d9-4cc8-8632-ecb08c304a72"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWZkZTNiZmNlMmQ4Y2I3MjRkZTg1NTZlNWVjMjFiN2YxNWY1ODQ2ODRhYjc4NTIxNGFkZDE2NGJlNzYyNGIifX19""}]}}}"
  1474. set {SW::Game_Item_5} to player head with custom nbt "{display:{Name:""Black (000000)""},SkullOwner:{Id:""063df521-537b-48d4-8fab-d303500e29ca"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTY3YTJmMjE4YTZlNmUzOGYyYjU0NWY2YzE3NzMzZjRlZjliYmIyODhlNzU0MDI5NDljMDUyMTg5ZWUifX19""}]}}}"
  1475. set {SW::Game_Block_0} to "95:5" parsed as material
  1476. set {SW::Game_Block_1} to "95:13" parsed as material
  1477. set {SW::Game_Block_2} to "95:4" parsed as material
  1478. set {SW::Game_Block_3} to "95:2" parsed as material
  1479. set {SW::Game_Block_4} to "95:14" parsed as material
  1480. set {SW::Game_Block_5} to "95:7" parsed as material
  1481. set {SW::Confirm_Edit} to "{display:{Name:""Right""},SkullOwner:{Id:""baaa8e9f-5fda-4429-a1db-564a6d06eab4"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGE5OTM0MmUyYzczYTlmMzgyMjYyOGU3OTY0ODgyMzRmMjU4NDQ2ZjVhMmQ0ZDU5ZGRlNGFhODdkYjk4In19fQ==""}]}}}"
  1482. set {SW::Deny_Edit} to "{display:{Name:""Wrong""},SkullOwner:{Id:""d2a11595-c371-46a0-9106-15c357a636eb"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTZjNjBkYTQxNGJmMDM3MTU5YzhiZThkMDlhOGVjYjkxOWJmODlhMWEyMTUwMWI1YjJlYTc1OTYzOTE4YjdiIn19fQ==""}]}}}"
  1483. set {SW::PageAPI_NextPage_ItemNBT} to "{display:{Name:""Black Arrow Right""},SkullOwner:{Id:""79f13daf-4884-40ab-8e35-95e472463321"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgyYWQxYjljYjRkZDIxMjU5YzBkNzVhYTMxNWZmMzg5YzNjZWY3NTJiZTM5NDkzMzgxNjRiYWM4NGE5NmUifX19""}]}}}"
  1484. set {SW::PageAPI_PreviousPage_ItemNBT} to "{display:{Name:""Black Arrow Left""},SkullOwner:{Id:""5fecc571-bcbb-4aaa-b53c-b5d8715dbe37"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0=""}]}}}"
  1485. set {SW::PageAPI_MainPage_Item} to nether star
  1486. set {SW::Menu_PreviousMenu_Item} to "160:14" parsed as material
  1487. set {SW::Menu_Item} to "160:15" parsed as material
  1488. delete {minigamesapi::inventories::*}
  1489. set {_arenas::*} to files in "plugins/%{minigamesapi::game}%/arenas"
  1490. loop {_arenas::*}:
  1491. set {_file} to "%loop-value%"
  1492. replace all ".yml" with "" in {_file}
  1493. checkFileSKY("Datas.Status", "arenas/%{_file}%") is not "0"
  1494. debugArena("%{_file}%", "time")
  1495. wait 1 seconds
  1496. #refreshValuesSQL("2")
  1497. on explode:
  1498. cancel event
Advertisement
Add Comment
Please, Sign In to add comment