bedwars.txt 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069
  1. rankingtable = "bwranks";
  2. game_short = "bw";
  3. game_tab = "§bBW";
  4. minigame.setSpecificLobbyHandling(true);
  5. minigame.setPlayerResetInCore(false);
  6. minigame.setIndivStartCheck(true);
  7. colorcodes = map.new();
  8. map.add(colorcodes, 0, "§9");
  9. map.add(colorcodes, 1, "§c");
  10. map.add(colorcodes, 2, "§e");
  11. map.add(colorcodes, 3, "§2");
  12. map.add(colorcodes, 4, "§6");
  13. map.add(colorcodes, 5, "§5");
  14. map.add(colorcodes, 6, "§d");
  15. map.add(colorcodes, 7, "§0");
  16. teamcolortext = map.new();
  17. map.add(teamcolortext, 0, "§9blue");
  18. map.add(teamcolortext, 1, "§cred");
  19. map.add(teamcolortext, 2, "§eyellow");
  20. map.add(teamcolortext, 3, "§2green");
  21. map.add(teamcolortext, 4, "§6orange");
  22. map.add(teamcolortext, 5, "§5magenta");
  23. map.add(teamcolortext, 6, "§dpink");
  24. map.add(teamcolortext, 7, "§0black");
  25. concrete_types = map.new(); //Liste der Bau-Blöcke
  26. map.add(concrete_types, 0, "minecraft:blue_concrete");
  27. map.add(concrete_types, 1, "minecraft:red_concrete");
  28. map.add(concrete_types, 2, "minecraft:yellow_concrete");
  29. map.add(concrete_types, 3, "minecraft:green_concrete");
  30. map.add(concrete_types, 4, "minecraft:orange_concrete");
  31. map.add(concrete_types, 5, "minecraft:magenta_concrete");
  32. map.add(concrete_types, 6, "minecraft:pink_concrete");
  33. map.add(concrete_types, 7, "minecraft:black_concrete");
  34. playersinteam = map.new(); //Anzahl der Spieler im Team
  35. teamidtolist = map.new(); //Map mit Spielerlisten für jedes Team
  36. placedblocks = list.new(); //Liste aller platzierten Blöcke
  37. allteams = list.new(); //Alle Teams, die noch im Spiel sind
  38. waiters = list.new(); //Spieler in der Lobby ohne Teamzugehörigkeit
  39. players = map.new(); //Alle Spieler (key) des Spiels und deren Teamzugehörigkeit (value)
  40. gamename = "§bBedWars";
  41. bedtruesymbol = "§2✔";
  42. bedfalsesymbol = "§4✘";
  43. custom_copper = item.custom.get("COPPER_COIN");
  44. custom_silver = item.custom.get("SILVER_COIN");
  45. custom_gold = item.custom.get("GOLD_COIN");
  46. coin_copper = item.custom.create("COPPER_COIN", 1, null, null);
  47. coin_silver = item.custom.create("SILVER_COIN", 1, null, null);
  48. coin_gold = item.custom.create("GOLD_COIN", 1, null, null);
  49. iron_block_mat = material.get("IRON_BLOCK");
  50. cobweb_mat = material.get("COBWEB");
  51. glowstone_dust_mat = material.get("GLOWSTONE_DUST");
  52. glowstone_dust = item.new(glowstone_dust_mat);
  53. warp_powder_mat = material.get("GUNPOWDER");
  54. warp_powder = item.create("GUNPOWDER", 1, "Warp Powder", "Teleports you back to your base.");
  55. blaze_rod_mat = material.get("BLAZE_ROD");
  56. blaze_rod = item.create("BLAZE_ROD", 1, "§rRescue Platform", null);
  57. bed_tag = block.getTag("minecraft:beds");
  58. bed_tag2 = item.getTag("minecraft:beds");
  59. air = material.getAir();
  60. tripwire_mat = material.get("TRIPWIRE");
  61. red_bed_mat = material.get("red_bed");
  62. leather_boots_mat = material.get("leather_boots");
  63. leather_leggings_mat = material.get("leather_leggings");
  64. leather_helmet_mat = material.get("leather_helmet");
  65. smooth_sandstone_mat = material.get("smooth_sandstone");
  66. black_stained_glass_pane_mat = material.get("black_stained_glass_pane");
  67. black_stained_glass_pane = item.new(black_stained_glass_pane_mat);
  68. for(team = 0; team < numberofteams; team++) {
  69. map.add(playersinteam, team, 0);
  70. map.add(teamidtolist, team, list.new());
  71. }
  72. minigame.initStart();
  73. goto("simplelobby");
  74. @specificLobbyHandling
  75. player_name = player.getName(player);
  76. if(event == "minigame_join") {
  77. list.add(waiters, player.getName(player));
  78. resetplayer(player);
  79. return;
  80. }
  81. if(event == "player_quit" || event == "player_giveup") {
  82. list.remove(waiters, player_name);
  83. if(map.get(players, player_name) != null) {
  84. teamlist = map.get(teamidtolist, map.get(players, player_name));
  85. list.remove(teamlist, player_name);
  86. }
  87. map.remove(players, player_name);
  88. return;
  89. }
  90. if(event == "block_click") {
  91. if(slot.isOffHand(hand)) {
  92. return;
  93. }
  94. if(action != "RIGHT_CLICK_BLOCK") {
  95. return;
  96. }
  97. block_loc = block.getLocation(block);
  98. if(map.contains(join_blocks, block_loc)) {
  99. newteam = map.get(join_blocks, block_loc);
  100. newteamlist = map.get(teamidtolist, newteam);
  101. if(list.contains(newteamlist, player_name)) {
  102. msg.prefix(player, gamename, "§eYou are already in this team.");
  103. return;
  104. }
  105. if(list.getSize(newteamlist) >= teamsize) {
  106. msg.prefix(player, gamename, "§eNo space for you in this team.");
  107. return;
  108. }
  109. list.remove(waiters, player_name);
  110. yetteam = map.get(players, player_name);
  111. if(yetteam != null) {
  112. yetteamlist = map.get(teamidtolist, yetteam);
  113. list.remove(yetteamlist, player_name);
  114. }
  115. list.add(newteamlist, player_name);
  116. map.add(players, player_name, newteam);
  117. msg.prefix(player, gamename, string.concat("§eYou joined the ", map.get(teamcolortext, newteam), " §eteam."));;
  118. entity.setName(player, text.new(string.concat(map.get(colorcodes, newteam), player.getName(player))));
  119. if(!minigame.isStarting()) {
  120. goto("startcountdown");
  121. }
  122. }
  123. }
  124. return;
  125. @finalstart
  126. player_list = minigame.getPlayers(script_id);
  127. if(voidedge1 != null) {
  128. voidid = event.addMoveData(voidedge1, voidedge2, 3, -1);
  129. }
  130. trap_sound = sound.get("BLOCK_NOTE_BLOCK_PLING");
  131. newbed_sound = sound.get("BLOCK_ANVIL_USE");
  132. bed_sound = sound.get("ENTITY_WITHER_DEATH");
  133. allkills = map.new();
  134. bedkills = map.new();
  135. deaths = map.new();
  136. brokenbeds = map.new();
  137. warpinghome_loc = map.new();
  138. warpinghome_tick = map.new();
  139. warpinghome_list = list.new();
  140. lastdamagers = map.new();
  141. bedsymbol = map.new();
  142. newbedused = map.new();
  143. teambedbroken = map.new();
  144. traps = map.new();
  145. shopmenus = map.new();
  146. bed_types = map.new(); //Liste der Betten
  147. map.add(bed_types, 0, "minecraft:blue_bed");
  148. map.add(bed_types, 1, "minecraft:red_bed");
  149. map.add(bed_types, 2, "minecraft:yellow_bed");
  150. map.add(bed_types, 3, "minecraft:green_bed");
  151. map.add(bed_types, 4, "minecraft:orange_bed");
  152. map.add(bed_types, 5, "minecraft:mangenta_bed");
  153. map.add(bed_types, 6, "minecraft:pink_bed");
  154. map.add(bed_types, 7, "minecraft:black_bed");
  155. glass_types = map.new(); //Liste für Rettungsplattformen
  156. map.add(glass_types, 0, "minecraft:blue_stained_glass");
  157. map.add(glass_types, 1, "minecraft:red_stained_glass");
  158. map.add(glass_types, 2, "minecraft:yellow_stained_glass");
  159. map.add(glass_types, 3, "minecraft:green_stained_glass");
  160. map.add(glass_types, 4, "minecraft:orange_stained_glass");
  161. map.add(glass_types, 5, "minecraft:mangenta_stained_glass");
  162. map.add(glass_types, 6, "minecraft:pink_stained_glass");
  163. map.add(glass_types, 7, "minecraft:black_stained_glass");
  164. clothescode = map.new(); //Liste der Datenwerte für gefärbte Kleidung
  165. map.add(clothescode, 0, 5592575);
  166. map.add(clothescode, 1, 16733525);
  167. map.add(clothescode, 2, 16777045);
  168. map.add(clothescode, 3, 5635925);
  169. map.add(clothescode, 4, 16755200);
  170. map.add(clothescode, 5, 43690);
  171. map.add(clothescode, 6, 5592405);
  172. map.add(clothescode, 7, 0);
  173. teamcolortext2 = map.new();
  174. map.add(teamcolortext2, 0, "§9Blue");
  175. map.add(teamcolortext2, 1, "§cRed");
  176. map.add(teamcolortext2, 2, "§eYellow");
  177. map.add(teamcolortext2, 3, "§2Green");
  178. map.add(teamcolortext2, 4, "§6Orange");
  179. map.add(teamcolortext2, 5, "§5Magenta");
  180. map.add(teamcolortext2, 6, "§dPink");
  181. map.add(teamcolortext2, 7, "§0Black");
  182. colornames = map.new();
  183. map.add(colornames, 0, "blue");
  184. map.add(colornames, 1, "red");
  185. map.add(colornames, 2, "yellow");
  186. map.add(colornames, 3, "green");
  187. map.add(colornames, 4, "orange");
  188. map.add(colornames, 5, "magenta");
  189. map.add(colornames, 6, "pink");
  190. map.add(colornames, 7, "black");
  191. while(list.getSize(waiters) != 0) {
  192. team = getTeamWithLowestPeople(teamidtolist, numberofteams);
  193. teamlist = map.get(teamidtolist, team);
  194. p_name = list.getIndex(waiters, 0);
  195. list.add(teamlist, p_name);
  196. list.remove(waiters, p_name);
  197. map.add(players, p_name, team);
  198. entity.setName(read.player(p_name), text.new(string.concat(map.get(colorcodes, team), p_name)));
  199. }
  200. event.load("player_post_respawn");
  201. event.load("living_death");
  202. event.load("living_pickup");
  203. event.load("player_drop");
  204. event.load("entity_click");
  205. event.load("snuvi_click");
  206. event.load("player_move");
  207. starttime = time.getMillis();
  208. for(i = 0; i < numberofteams; i++) {
  209. map.add(newbedused, i, false);
  210. map.add(teambedbroken, i, false);
  211. teamlist = map.get(teamidtolist, i);
  212. size = list.getSize(teamlist);
  213. map.add(playersinteam, i, size);
  214. if(size != 0) {
  215. list.add(allteams, i);
  216. map.add(bedsymbol, i, bedtruesymbol);
  217. for(h = 0; h < size; h++) {
  218. pname = list.getIndex(teamlist, h);
  219. p = read.player(pname);
  220. msg.prefix(p, gamename, "The game has started.");
  221. entity.teleport(p, map.get(spawn_locs, i));
  222. player.setGamemode(p, "SURVIVAL");
  223. player.setFly(p, false);
  224. map.add(allkills, pname, 0);
  225. map.add(bedkills, pname, 0);
  226. map.add(deaths, pname, 0);
  227. map.add(brokenbeds, pname, 0);
  228. shopmenu = inv.new("222222222222222222222222222222222222", text.new("§8Shop"));
  229. inv.setItem(shopmenu, 0, item.create("minecraft:nether_star", 1, "§rFavoriten", null));
  230. inv.setItem(shopmenu, 1, item.create("minecraft:smooth_sandstone", 1, "§rBlöcke", null));
  231. inv.setItem(shopmenu, 2, item.create("minecraft:chainmail_chestplate", 1, "§rRüstung", null));
  232. inv.setItem(shopmenu, 3, item.create("minecraft:stone_pickaxe", 1, "§rSpitzhacken", null));
  233. inv.setItem(shopmenu, 4, item.create("minecraft:golden_sword", 1, "§rWaffen", null));
  234. inv.setItem(shopmenu, 5, item.create("minecraft:bow", 1, "§rBögen", null));
  235. inv.setItem(shopmenu, 6, item.create("minecraft:apple", 1, "§rNahrung", null));
  236. inv.setItem(shopmenu, 7, item.create("minecraft:potion", 1, "§rTränke", null));
  237. inv.setItem(shopmenu, 8, item.create("minecraft:tnt", 1, "§rSpezial", null));
  238. map.add(shopmenus, player.getId(p), shopmenu);
  239. }
  240. }
  241. setBed(i);
  242. }
  243. minigame.displayAll(99, "§bBedWars");
  244. gosub("setdisplay");
  245. drop_counter = 0;
  246. @item_dropper
  247. for(i = 0; i < list.getSize(copper_locs); i++) {
  248. loc = list.getIndex(copper_locs, i);
  249. item.drop(coin_copper, loc);
  250. }
  251. if(drop_counter == 15) {
  252. for(i = 0; i < list.getSize(silver_locs); i++) {
  253. loc = list.getIndex(silver_locs, i);
  254. item.drop(coin_silver, loc);
  255. }
  256. }
  257. if(drop_counter == 30) {
  258. for(i = 0; i < list.getSize(silver_locs); i++) {
  259. loc = list.getIndex(silver_locs, i);
  260. item.drop(coin_silver, loc);
  261. }
  262. for(i = 0; i < list.getSize(gold_locs); i++) {
  263. loc = list.getIndex(gold_locs, i);
  264. item.drop(coin_gold, loc);
  265. }
  266. drop_counter = 0;
  267. }
  268. minigame.displayAll(98, string.concat("§6Gold §r", string.number(30 - drop_counter)));
  269. if(drop_counter < 15) {
  270. iron_drop_counter = drop_counter + 15;
  271. } else {
  272. iron_drop_counter = drop_counter;
  273. }
  274. minigame.displayAll(97, string.concat("§7Silber §r", string.number(30 - iron_drop_counter)));
  275. drop_counter++;
  276. sgoto(20, "item_dropper");
  277. for(i = 0; i < list.getSize(player_list); i++) {
  278. p = player.get(list.getIndex(player_list, i));
  279. p_name = player.getName(p);
  280. tempteam = map.get(players, p_name);
  281. color = bedwars.getTeamColor(p);
  282. player.action(p, text.new(string.concat(color, "Team ", map.get(teamcolortext2, tempteam))));
  283. minigame.setTabName(p, game_tab, color);
  284. }
  285. @checkgame
  286. wait();
  287. if(event == "entity_damage") {
  288. if(!isPlayer(entity)) {
  289. goto("checkgame");
  290. }
  291. player = entity;
  292. }
  293. if(event == "living_death" || event == "living_pickup") {
  294. if(!isPlayer(living_entity)) {
  295. goto("checkgame");
  296. }
  297. player = living_entity;
  298. }
  299. if(player.hasMinigameId(player, script_id)) {
  300. player_name = player.getName(player);
  301. ignoreGoto(event);
  302. }
  303. goto("checkgame");
  304. @entity_click
  305. if(isCitizen(entity)) {
  306. shopmenu = map.get(shopmenus, player.getId(player));
  307. setShopmenu1(shopmenu);
  308. inv.open(shopmenu, player);
  309. }
  310. goto("checkgame");
  311. @snuvi_click
  312. item = inv.getItem(inv, inv_slot);
  313. item_type = item.getType(item);
  314. factor = 1;
  315. if(click == "SHIFT_LEFT") {
  316. factor = 8;
  317. }
  318. shopmenu = map.get(shopmenus, player.getId(player));
  319. if(inv_slot < 9) {
  320. for(slot = 9; slot < 36; slot++) {
  321. inv.setItem(shopmenu, slot, black_stained_glass_pane);
  322. }
  323. if(inv_slot == 0) {
  324. setShopmenu1(shopmenu);
  325. }
  326. if(inv_slot == 1) {
  327. setShopmenu2(shopmenu);
  328. }
  329. if(inv_slot == 2) {
  330. setShopmenu3(shopmenu);
  331. }
  332. if(inv_slot == 3) {
  333. setShopmenu4(shopmenu);
  334. }
  335. if(inv_slot == 4) {
  336. setShopmenu5(shopmenu);
  337. }
  338. if(inv_slot == 5) {
  339. setShopmenu6(shopmenu);
  340. }
  341. if(inv_slot == 6) {
  342. setShopmenu7(shopmenu);
  343. }
  344. if(inv_slot == 7) {
  345. setShopmenu8(shopmenu);
  346. }
  347. if(inv_slot == 8) {
  348. setShopmenu9(shopmenu);
  349. }
  350. goto("checkgame");
  351. }
  352. //buyitem
  353. if(item.custom.isType(item, custom_copper) || item.custom.isType(item, custom_silver) || item.custom.isType(item, custom_gold) || item_type == black_stained_glass_pane_mat) {
  354. goto("checkgame");
  355. }
  356. priceitem = item.clone(inv.getItem(shopmenu, inv_slot + 9));
  357. item.removeFlag(priceitem, "HIDE_DESTROYS");
  358. item.setAmount(priceitem, item.getAmount(priceitem) * factor);
  359. player_inv = player.getInv(player);
  360. if(inv.getItemAmount(player_inv, priceitem) < item.getAmount(priceitem)) {
  361. goto("checkgame");
  362. }
  363. inv.removeItem(player_inv, priceitem);
  364. if(item_type == red_bed_mat) {
  365. goto("setnewbed");
  366. }
  367. if(item_type == leather_helmet_mat) {
  368. clothescolor = map.get(clothescode, map.get(players, player_name));
  369. item = read.item(string.concat("{id:'minecraft:leather_helmet',Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}],display:{color:", clothescolor, "}}}"));
  370. } elseif(item_type == leather_leggings_mat) {
  371. clothescolor = map.get(clothescode, map.get(players, player_name));
  372. item = read.item(string.concat("{id:'minecraft:leather_leggings',Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}],display:{color:", clothescolor, "}}}"));
  373. } elseif(item_type == leather_boots_mat) {
  374. clothescolor = map.get(clothescode, map.get(players, player_name));
  375. item = read.item(string.concat("{id:'minecraft:leather_boots',Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}],display:{color:", clothescolor, "}}}"));
  376. } elseif(item_type == smooth_sandstone_mat) {
  377. team = map.get(players, player_name);
  378. item_type = map.get(concrete_types, team);
  379. item_amount = item.getAmount(inv.getItem(shopmenu, inv_slot));
  380. item = item.create(item_type, item_amount, null, null);
  381. }
  382. if(click == "SHIFT_LEFT") {
  383. item = item.clone(item);
  384. item.setAmount(item, item.getAmount(item) * factor);
  385. }
  386. item.removeFlag(item, "HIDE_DESTROYS");
  387. player.safeGiveItem(player, item);
  388. goto("checkgame");
  389. @breakbed
  390. if(list.contains(foot_bed_loc, block_loc)) {
  391. team = list.getIndexOf(foot_bed_loc, block_loc);
  392. } elseif(list.contains(head_bed_loc, block_loc)) {
  393. team = list.getIndexOf(head_bed_loc, block_loc);
  394. } else {
  395. msg.prefix(player, gamename, "§eThis bed is not part of the game.");
  396. goto("checkgame");
  397. }
  398. teamlist = map.get(teamidtolist, team);
  399. if(list.contains(teamlist, player_name)) {
  400. cancel = true;
  401. msg.prefix(player, gamename, "§eThis is your own bed.");
  402. goto("checkgame");
  403. }
  404. cancel = false;
  405. tempcolor = map.get(colornames, team);
  406. map.add(teambedbroken, team, true);
  407. map.add(bedsymbol, team, bedfalsesymbol);
  408. map.add(brokenbeds, player_name, map.get(brokenbeds, player_name) + 1);
  409. owncolor = map.get(colorcodes, map.get(players, player_name));
  410. minigame.speakAll(gamename, string.concat("§cThe ", map.get(teamcolortext, team), " §cbed has been destroyed by ", owncolor, player_name, "."));
  411. gosub("setdisplay");
  412. for(i = 0; i < list.getSize(player_list); i++) {
  413. p = player.get(list.getIndex(player_list, i));
  414. sound.spawnForPlayer(p, bed_sound, sound_category_ambient);
  415. }
  416. goto("checkgame");
  417. @setdisplay //Alle Teams mit Bett werden oben angezeigt, danach alle Teams ohne Bett. Ausgelöschte Teams werden gar nicht angezeigt
  418. bedtrue = list.new();
  419. bedfalse = list.new();
  420. index = 97;
  421. for(i = 0; i < list.getSize(allteams); i++) {
  422. tempteam2 = list.getIndex(allteams, i);
  423. if(!map.get(teambedbroken, tempteam2)) {
  424. list.add(bedtrue, tempteam2);
  425. } else {
  426. list.add(bedfalse, tempteam2);
  427. }
  428. }
  429. size = list.getSize(bedtrue);
  430. if(size != 0) {
  431. for(i = 0; i < size; i++) {
  432. tempteam2 = list.getIndex(bedtrue, i);
  433. minigame.displayAll(--index, string.concat(string.number(map.get(playersinteam, tempteam2)), " §2✔ ", map.get(teamcolortext2, tempteam2)));
  434. }
  435. }
  436. size = list.getSize(bedfalse);
  437. if(size != 0) {
  438. for(i = 0; i < size; i++) {
  439. tempteam2 = list.getIndex(bedfalse, i);
  440. minigame.displayAll(--index, string.concat(string.number(map.get(playersinteam, tempteam2)), " §4✘ ", map.get(teamcolortext2, tempteam2)));
  441. }
  442. }
  443. minigame.displayAll(88, sb.getSpacer());
  444. return;
  445. @setnewbed
  446. team = map.get(players, player_name);
  447. tempcolor = map.get(colornames, team);
  448. if(map.get(newbedused, team)) {
  449. msg.prefix(player, gamename, "§eYou can only us this once.");
  450. goto("checkgame");
  451. }
  452. if(!map.get(teambedbroken, team)) {
  453. msg.prefix(player, gamename, "§eYour bed is not destroyed yet.");
  454. goto("checkgame");
  455. }
  456. setBed(team);
  457. map.add(teambedbroken, team, false);
  458. map.add(bedsymbol, team, bedtruesymbol);
  459. map.add(newbedused, team, true);
  460. minigame.speakAll(gamename, string.concat("§eThe ", map.get(teamcolortext, team), " §ebed has been replaced."));
  461. gosub("setdisplay");
  462. for(i = 0; i < list.getSize(player_list); i++) {
  463. p = player.get(list.getIndex(player_list, i));
  464. sound.spawnForPlayer(p, newbed_sound, sound_category_ambient);
  465. }
  466. goto("checkgame");
  467. @player_drop
  468. item = item.entity.get(item_entity);
  469. item_type = item.getType(item);
  470. if(item_type == glowstone_dust_mat) {
  471. cancel = true;
  472. }
  473. goto("checkgame");
  474. @living_pickup
  475. item = item.entity.get(item_entity);
  476. if(item.hasTag(item, bed_tag2)) {
  477. cancel = true;
  478. entity.remove(item_entity);
  479. }
  480. goto("checkgame");
  481. @block_click
  482. if(action != "RIGHT_CLICK_AIR" && action != "RIGHT_CLICK_BLOCK") {
  483. goto("checkgame");
  484. }
  485. item = living.getHand(player);
  486. checked_offhand = false;
  487. @offhand_label
  488. item_type = item.getType(item);
  489. if(item_type == warp_powder_mat) {
  490. if(!map.contains(warpinghome_tick, player)) {
  491. player_uuid = player.getUuid(player);
  492. player.removeItem(player, warp_powder);
  493. player.giveItem(player, glowstone_dust);
  494. map.add(warpinghome_loc, player_uuid, entity.getLocation(player));
  495. map.add(warpinghome_tick, player_uuid, 0);
  496. list.add(warpinghome_list, player_uuid);
  497. sgoto(20, "warp_tick");
  498. }
  499. goto("checkgame");
  500. }
  501. if(item_type == glowstone_dust_mat) {
  502. player_uuid = player.getUuid(player);
  503. map.remove(warpinghome_loc, player_uuid);
  504. map.remove(warpinghome_tick, player_uuid);
  505. player.removeItem(player, glowstone_dust);
  506. player.giveItem(player, warp_powder);
  507. goto("checkgame");
  508. }
  509. if(item_type == blaze_rod_mat) {
  510. player_loc = entity.getLocation(player);
  511. team = map.get(players, player_name);
  512. item_type = map.get(glass_types, team);
  513. temp_block = block.get(player_loc);
  514. temp_block = block.mod(temp_block, 0, -1, 0);
  515. if(block.setIfAir(temp_block, item_type)) {
  516. list.add(placedblocks, temp_block);
  517. }
  518. temp_block = block.mod(temp_block, 1, 0, 0);
  519. if(block.setIfAir(temp_block, item_type)) {
  520. list.add(placedblocks, temp_block);
  521. }
  522. temp_block = block.mod(temp_block, 1, 0, 0);
  523. if(block.setIfAir(temp_block, item_type)) {
  524. list.add(placedblocks, temp_block);
  525. }
  526. temp_block = block.mod(temp_block, -1, 0, 1);
  527. if(block.setIfAir(temp_block, item_type)) {
  528. list.add(placedblocks, temp_block);
  529. }
  530. temp_block = block.mod(temp_block, -1, 0, 0);
  531. if(block.setIfAir(temp_block, item_type)) {
  532. list.add(placedblocks, temp_block);
  533. }
  534. temp_block = block.mod(temp_block, 0, 0, 1);
  535. if(block.setIfAir(temp_block, item_type)) {
  536. list.add(placedblocks, temp_block);
  537. }
  538. temp_block = block.mod(temp_block, -1, 0, -1);
  539. if(block.setIfAir(temp_block, item_type)) {
  540. list.add(placedblocks, temp_block);
  541. }
  542. temp_block = block.mod(temp_block, -1, 0, -1);
  543. if(block.setIfAir(temp_block, item_type)) {
  544. list.add(placedblocks, temp_block);
  545. }
  546. temp_block = block.mod(temp_block, 1, 0, 0);
  547. if(block.setIfAir(temp_block, item_type)) {
  548. list.add(placedblocks, temp_block);
  549. }
  550. temp_block = block.mod(temp_block, 0, 0, -1);
  551. if(block.setIfAir(temp_block, item_type)) {
  552. list.add(placedblocks, temp_block);
  553. }
  554. temp_block = block.mod(temp_block, 1, 0, 0);
  555. if(block.setIfAir(temp_block, item_type)) {
  556. list.add(placedblocks, temp_block);
  557. }
  558. temp_block = block.mod(temp_block, 1, 0, 0);
  559. if(block.setIfAir(temp_block, item_type)) {
  560. list.add(placedblocks, temp_block);
  561. }
  562. temp_block = block.mod(temp_block, -1, 0, -1);
  563. if(block.setIfAir(temp_block, item_type)) {
  564. list.add(placedblocks, temp_block);
  565. }
  566. player.removeItem(player, blaze_rod);
  567. goto("checkgame");
  568. }
  569. if(!checked_offhand) {
  570. checked_offhand = true;
  571. item = living.getOffHand(player);
  572. goto("offhand_label");
  573. }
  574. goto("checkgame");
  575. @warp_tick
  576. player_uuid = list.getIndex(warpinghome_list, 0);
  577. player = player.get(player_uuid);
  578. if(player == null) {
  579. goto("checkgame");
  580. }
  581. list.removeIndex(warpinghome_list, 0);
  582. player_loc = entity.getLocation(player);
  583. warp_loc = map.get(warpinghome_loc, player_uuid);
  584. if(warp_loc == null) {
  585. goto("checkgame");
  586. }
  587. if(loc.distance(player_loc, warp_loc) > 1) {
  588. map.remove(warpinghome_loc, player_uuid);
  589. map.remove(warpinghome_tick, player_uuid);
  590. player.removeItem(player, glowstone_dust);
  591. player.giveItem(player, warp_powder);
  592. goto("checkgame");
  593. }
  594. tick = map.get(warpinghome_tick, player_uuid) + 1;
  595. sound.spawnForPlayer(player, trap_sound, sound_category_ambient);
  596. if(tick == 5) {
  597. map.remove(warpinghome_loc, player_uuid);
  598. map.remove(warpinghome_tick, player_uuid);
  599. player.removeItem(player, glowstone_dust);
  600. player_name = player.getName(player);
  601. tempteam = map.get(players, player_name);
  602. location = map.get(spawn_locs, tempteam);
  603. entity.teleport(player, location);
  604. goto("checkgame");
  605. }
  606. map.add(warpinghome_tick, player_uuid, tick);
  607. list.add(warpinghome_list, player_uuid);
  608. sgoto(20, "warp_tick");
  609. goto("checkgame");
  610. @player_move
  611. if(id == voidid) {
  612. damage_source = damage.get("outOfWorld");
  613. living.damage(player, 300, damage_source);
  614. goto("checkgame");
  615. }
  616. temploc = entity.getLocation(player);
  617. tempx = math.roundDown(loc.getX(temploc));
  618. tempy = math.roundDown(loc.getY(temploc));
  619. tempz = math.roundDown(loc.getZ(temploc));
  620. temploc = loc.new(gamesworld, tempx, tempy, tempz);
  621. temp_block = block.get(temploc);
  622. if(block.getType(temp_block) != tripwire_mat) { //Für den Fall, dass die Trap bereits abgebaut wurde
  623. map.remove(traps, id);
  624. event.removeMoveData(id);
  625. goto("checkgame");
  626. }
  627. tempteam = map.get(players, player_name);
  628. trapteam = map.get(traps, id);
  629. if(tempteam == trapteam) {
  630. goto("checkgame");
  631. }
  632. msg.prefix(player, gamename, "§eYou triggered a trap!!!");
  633. sound.spawnForPlayer(p, trap_sound, sound_category_ambient);
  634. teamlist = map.get(teamidtolist, trapteam);
  635. for(i = 0; i < list.getSize(teamlist); i++) {
  636. p = read.player(list.getIndex(teamlist, i));
  637. sound.spawnForPlayer(p, trap_sound, sound_category_ambient);
  638. msg.prefix(p, gamename, "§eOne of your traps got triggered!!!");
  639. }
  640. living.addEffect(player, "BLINDNESS", 200, 1);
  641. living.addEffect(player, "SLOW", 200, 4);
  642. map.remove(traps, id);
  643. block.setMaterial(temp_block, air);
  644. goto("checkgame");
  645. @block_place
  646. cancel = true;
  647. block_loc = block.getLocation(block);
  648. block_type = block.getType(block);
  649. if(block.hasTag(block, bed_tag)) {
  650. goto("checkgame");
  651. } elseif(block_type == tripwire_mat) {
  652. tempid = event.addMoveData(block_loc, loc.mod(block_loc, 1, 0.25, 1), 5, -1);
  653. map.add(traps, tempid, map.get(players, player_name));
  654. }
  655. if(min_build_high != null && loc.getY(block_loc) <= min_build_high) {
  656. goto("checkgame");
  657. }
  658. cancel = false;
  659. list.add(placedblocks, block);
  660. goto("checkgame");
  661. @block_break
  662. cancel = true;
  663. block_loc = block.getLocation(block);
  664. block_type = block.getType(block);
  665. if(block_type == cobweb_mat) {
  666. block.setMaterial(block, air);
  667. } elseif(block.hasTag(block, bed_tag)) {
  668. goto("breakbed");
  669. } elseif(block_type == iron_block_mat) {
  670. player_item_type = item.getType(living.getEquip(player, slot.getHand()));
  671. if(player_item_type == "minecraft:stone_pickaxe" || player_item_type == "minecraft:iron_pickaxe") {
  672. cancel = false;
  673. }
  674. } elseif(block_type == tripwire_mat) {
  675. cancel = false;
  676. } elseif(list.contains(placedblocks, block)) {
  677. cancel = false;
  678. }
  679. goto("checkgame");
  680. @player_post_respawn
  681. tempteam = map.get(players, player_name);
  682. entity.setName(player, text.new(string.concat(map.get(colorcodes, tempteam), player_name)));
  683. if(map.get(teambedbroken, tempteam)) {
  684. gosub("setdisplay");
  685. if(!checkPlayability(tempteam)) {
  686. goto("colorgameover");
  687. }
  688. }
  689. location = map.get(spawn_locs, tempteam);
  690. block = block.get(location);
  691. location2 = loc.mod(location, 0, 1, 0);
  692. block2 = block.get(location2);
  693. block_type = block.getType(block);
  694. block_type2 = block.getType(block2);
  695. c = 0;
  696. while(!((block.isAir(block) || block_type == cobweb_mat || block_type == tripwire_mat) && (block.isAir(block2) || block_type2 == cobweb_mat || block_type2 == tripwire_mat))) {
  697. block = block.mod(block, 0, 1, 0);
  698. block2 = block.mod(block2, 0, 1, 0);
  699. location = block.getLocation(block);
  700. if(loc.getY(location) > 300) {
  701. break;
  702. }
  703. }
  704. entity.teleport(player, location);
  705. goto("checkgame");
  706. @player_giveup
  707. @player_quit
  708. minigame.speakAll(gamename, string.concat(map.get(colorcodes, map.get(players, player_name)), player_name, " §ehas left the game."));
  709. tempteam = map.get(players, player_name);
  710. teamlist = map.get(teamidtolist, tempteam);
  711. list.remove(teamlist, player_name);
  712. map.add(playersinteam, tempteam, map.get(playersinteam, tempteam) - 1);
  713. map.remove(players, player_name);
  714. script = script.getFromId(script_id);
  715. minigame.kickplayer(script, player);
  716. gosub("setdisplay");
  717. if(!checkPlayability(tempteam)) {
  718. goto("colorgameover");
  719. }
  720. goto("checkgame");
  721. @entity_damage
  722. cancel = true;
  723. tempplayerteam = map.get(players, player_name);
  724. tempcolor = map.get(colorcodes, tempplayerteam);
  725. sec_player = player.getFromDamageSource(damage_source);
  726. if(sec_player != null) {
  727. sec_player_name = player.getName(sec_player);
  728. teamlist = map.get(teamidtolist, tempplayerteam);
  729. if(!list.contains(teamlist, sec_player_name)) {
  730. cancel = false;
  731. }
  732. map.add(lastdamagers, player, map.new());
  733. tempmap = map.get(lastdamagers, player);
  734. map.add(tempmap, "sec_player", sec_player);
  735. map.add(tempmap, "time", time.getMillis());
  736. } else {
  737. cancel = false;
  738. }
  739. goto("checkgame");
  740. @living_death
  741. map.add(deaths, player_name, map.get(deaths, player_name) + 1);
  742. player.clearInventory(player);
  743. tempmap = map.get(lastdamagers, player);
  744. if(tempmap != null) {
  745. nowtime = time.getMillis();
  746. hittime = map.get(tempmap, "time");
  747. if(nowtime - hittime < 10000) { //Wenn seit Begegnung mehr als 10 Sekunden her sind, zählt sec_player nicht mehr
  748. sec_player = map.get(tempmap, "sec_player");
  749. }
  750. } else {
  751. sec_player = player.getFromDamageSource(damage_source);
  752. }
  753. if(sec_player == null) {
  754. minigame.speakAll(gamename, string.concat(tempcolor, string.concat(player_name, " §edied.")));
  755. } else {
  756. sec_player_name = player.getName(sec_player);
  757. tempoppcolor = map.get(colorcodes, map.get(players, sec_player_name));
  758. minigame.speakAll(gamename, string.concat(tempcolor, player_name, " §ehas been killed by ", tempoppcolor, sec_player_name, "."));
  759. map.add(allkills, sec_player_name, map.get(allkills, sec_player_name) + 1);
  760. }
  761. if(map.get(teambedbroken, tempplayerteam)) {
  762. goto("nobed");
  763. }
  764. goto("checkgame");
  765. @nobed
  766. //money.addBoost(player, 32);
  767. minigame.speakAll(gamename, string.concat(tempcolor, player_name, " §ewoke up from their dream."));
  768. showstats(player, false, false);
  769. script = script.getFromId(script_id);
  770. minigame.kickplayer(script, player);
  771. teamlist = map.get(teamidtolist, map.get(players, player_name));
  772. list.remove(teamlist, player_name);
  773. map.remove(players, player_name);
  774. map.add(playersinteam, tempplayerteam, map.get(playersinteam, tempplayerteam) - 1);
  775. if(sec_player != null) {
  776. map.add(bedkills, sec_player_name, map.get(bedkills, sec_player_name) + 1);
  777. }
  778. if(!checkPlayability(tempplayerteam)) {
  779. tempteam = tempplayerteam;
  780. goto("colorgameover");
  781. }
  782. goto("checkgame");
  783. function checkPlayability(tempteam) {
  784. if(map.get($playersinteam, tempteam) == 0) {
  785. return false;
  786. }
  787. return true;
  788. }
  789. @colorgameover
  790. tempcolortext = map.get(teamcolortext, tempteam);
  791. minigame.speakAll(gamename, string.concat("§cThe ", tempcolortext, " §cteam has been eliminated."));
  792. list.remove(allteams, tempteam);
  793. if(list.getSize(allteams) == 1) {
  794. goto("gameover");
  795. }
  796. goto("checkgame");
  797. function showstats(player, show_time, won) { //Player player, Boolean show_time, Boolean won
  798. player_name = player.getName(player);
  799. player_id = player.getId(player);
  800. last_record = ranking.getPoints($rankingtable, player_id);
  801. playedgames = minigame.getPlayed(player_id, $game_short) + 1;
  802. minigame.setPlayed(player_id, $game_short, playedgames);
  803. points = last_record + map.get($bedkills, player_name);
  804. ranking.setPoints($rankingtable, player_id, points);
  805. p_deaths = map.get($deaths, player_name);
  806. p_allkills = map.get($allkills, player_name);
  807. p_bedkills = map.get($bedkills, player_name);
  808. bw.setAllKills(player, bw.getAllKills(player) + p_allkills);
  809. minigame.statsHeader(player, $gamename, "§e");
  810. if(show_time) {
  811. time = ($endtime - $starttime) / 1000;
  812. minigame.statsLine(player, "§e", "Time", string.concat(string.number(math.rounddown(time / 60)), " min ", string.number(math.round(time % 60)), " s"));
  813. }
  814. minigame.statsLine(player, "§e", "All-Kills", string.number(p_allkills));
  815. minigame.statsLine(player, "§e", "Bed-Kills", string.number(p_bedkills));
  816. minigame.statsLine(player, "§e", "Deaths", string.number(p_deaths));
  817. if(p_deaths != 0) {
  818. kd = p_allkills / p_deaths;
  819. minigame.statsLine(player, "§e", "K/D", string.number(math.roundComma(kd, 2)));
  820. }
  821. minigame.statsLine(player, "§e", "Destroyed beds", string.number(map.get($brokenbeds, player_name)));
  822. minigame.statsLine(player, "§e", "Played games", string.number(playedgames));
  823. wongames = minigame.getWon(player, "bw");
  824. if(won) {
  825. wongames++;
  826. minigame.setWon(player, $game_short, wongames);
  827. }
  828. minigame.statsLine(player, "§e", "Won games", string.number(wongames));
  829. if(playedgames != 0) {
  830. minigame.statsLine(player, "§e", "Win ratio", string.concat(string.number(math.roundComma((wongames / playedgames) * 100, 2)), "%"));
  831. }
  832. }
  833. function bw.setAllKills(player_or_id, amount) {
  834. config = playerdata.getGames(player_or_id);
  835. config.set(config, "allbwkills", amount);
  836. config.saveAsync(config);
  837. }
  838. function bw.getAllKills(player_or_id) {
  839. config = playerdata.getGames(player_or_id);
  840. return config.getDouble(config, "allbwkills", 0);
  841. }
  842. function setBed(team) {
  843. facing = map.get($bed_facing, team);
  844. bed_type = map.get($bed_types, team);
  845. block.setData(block.get(list.getIndex($foot_bed_loc, team)), read.blockData(string.concat(bed_type, "[facing=", facing, ",part=foot]")));
  846. block.setData(block.get(list.getIndex($head_bed_loc, team)), read.blockData(string.concat(bed_type, "[facing=", facing, ",part=head]")));
  847. }
  848. @gameover
  849. endtime = time.getMillis();
  850. if(list.getSize(placedblocks) != 0) {
  851. for(i = 0; i < list.getSize(placedblocks); i++) {
  852. block.setMaterial(list.getIndex(placedblocks, i), air);
  853. }
  854. }
  855. minigame.clearItems(middleloc, radius);
  856. waitfor(2);
  857. winningteam = map.get(teamidtolist, list.getIndex(allteams, 0));
  858. for(i = 0; i < list.getSize(winningteam); i++) {
  859. player_name = list.getIndex(winningteam, i);
  860. player = read.player(player_name);
  861. //money.addBoost(player, 128);
  862. msg.prefix(player, gamename, "§eYou won this game!");
  863. showstats(player, true, true);
  864. script = script.getFromId(script_id);
  865. minigame.kickplayer(script, player);
  866. }
  867. script = script.getFromId(script_id);
  868. minigame.term(script, gamesignloc);
  869. term();
  870. function setShopmenu1(shopmenu) {
  871. inv.setItem(shopmenu, 19, read.item("{id:\"minecraft:stick\",Count:1b,tag:{HideFlags:2,Enchantments:[{lvl:1s,id:\"minecraft:knockback\"}],display:{Name:'{\"text\":\"§bKnüppel\"}'},}}"));
  872. inv.setItem(shopmenu, 20, read.item("{id:\"minecraft:wooden_pickaxe\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:efficiency\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2}}"));
  873. inv.setItem(shopmenu, 21, item.create("minecraft:smooth_sandstone", 32, null, null));
  874. inv.setItem(shopmenu, 22, read.item("{id:\"minecraft:leather_helmet\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}]}}"));
  875. inv.setItem(shopmenu, 23, read.item("{id:\"minecraft:leather_leggings\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}]}}"));
  876. inv.setItem(shopmenu, 24, read.item("{id:\"minecraft:leather_boots\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}]}}"));
  877. inv.setItem(shopmenu, 28, item.custom.create("COPPER_COIN", 8, null, null));
  878. inv.setItem(shopmenu, 29, item.custom.create("COPPER_COIN", 4, null, null));
  879. inv.setItem(shopmenu, 30, item.custom.create("COPPER_COIN", 16, null, null));
  880. inv.setItem(shopmenu, 31, item.custom.create("COPPER_COIN", 1, null, null));
  881. inv.setItem(shopmenu, 32, item.custom.create("COPPER_COIN", 1, null, null));
  882. inv.setItem(shopmenu, 33, item.custom.create("COPPER_COIN", 1, null, null));
  883. }
  884. function setShopmenu2(shopmenu) {
  885. inv.setItem(shopmenu, 19, item.create("minecraft:smooth_sandstone", 2, null, null));
  886. inv.setItem(shopmenu, 20, item.create("minecraft:end_stone", 1, null, null));
  887. inv.setItem(shopmenu, 21, item.create("minecraft:iron_block", 1, null, null));
  888. inv.setItem(shopmenu, 22, item.create("minecraft:chest", 1, null, null));
  889. inv.setItem(shopmenu, 23, item.create("minecraft:glass", 1, null, null));
  890. inv.setItem(shopmenu, 28, item.custom.create("COPPER_COIN", 1, null, null));
  891. inv.setItem(shopmenu, 29, item.custom.create("COPPER_COIN", 7, null, null));
  892. inv.setItem(shopmenu, 30, item.custom.create("SILVER_COIN", 3, null, null));
  893. inv.setItem(shopmenu, 31, item.custom.create("SILVER_COIN", 1, null, null));
  894. inv.setItem(shopmenu, 32, item.custom.create("COPPER_COIN", 4, null, null));
  895. }
  896. function setShopmenu3(shopmenu) {
  897. inv.setItem(shopmenu, 19, read.item("{id:\"minecraft:leather_helmet\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}]}}"));
  898. inv.setItem(shopmenu, 20, read.item("{id:\"minecraft:leather_leggings\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}]}}"));
  899. inv.setItem(shopmenu, 21, read.item("{id:\"minecraft:leather_boots\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}]}}"));
  900. inv.setItem(shopmenu, 22, read.item("{id:\"minecraft:chainmail_chestplate\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}],display:{Name:'{\"text\":\"§f§bKettenbrust Lvl1\"}'}}}"));
  901. inv.setItem(shopmenu, 23, read.item("{id:\"minecraft:chainmail_chestplate\",Count:1b,tag:{Enchantments:[{lvl:2s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}],display:{Name:'{\"text\":\"§f§bKettenbrust Lvl2\"}'}}}"));
  902. inv.setItem(shopmenu, 24, read.item("{id:\"minecraft:chainmail_chestplate\",Count:1b,tag:{Enchantments:[{lvl:3s,id:\"minecraft:protection\"},{lvl:1s,id:\"minecraft:unbreaking\"}],display:{Name:'{\"text\":\"§f§bKettenbrust Lvl3\"}'}}}"));
  903. inv.setItem(shopmenu, 25, item.create("minecraft:shield", 1, null, null));
  904. inv.setItem(shopmenu, 28, item.custom.create("COPPER_COIN", 1, null, null));
  905. inv.setItem(shopmenu, 29, item.custom.create("COPPER_COIN", 1, null, null));
  906. inv.setItem(shopmenu, 30, item.custom.create("COPPER_COIN", 1, null, null));
  907. inv.setItem(shopmenu, 31, item.custom.create("SILVER_COIN", 1, null, null));
  908. inv.setItem(shopmenu, 32, item.custom.create("SILVER_COIN", 3, null, null));
  909. inv.setItem(shopmenu, 33, item.custom.create("SILVER_COIN", 7, null, null));
  910. inv.setItem(shopmenu, 34, item.custom.create("SILVER_COIN", 4, null, null));
  911. }
  912. function setShopmenu4(shopmenu) {
  913. inv.setItem(shopmenu, 21, read.item("{id:\"minecraft:wooden_pickaxe\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:efficiency\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2}}"));
  914. inv.setItem(shopmenu, 22, read.item("{id:\"minecraft:stone_pickaxe\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:efficiency\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2}}"));
  915. inv.setItem(shopmenu, 23, read.item("{id:\"minecraft:iron_pickaxe\",Count:1b,tag:{Enchantments:[{lvl:3s,id:\"minecraft:efficiency\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2}}"));
  916. inv.setItem(shopmenu, 30, item.custom.create("COPPER_COIN", 4, null, null));
  917. inv.setItem(shopmenu, 31, item.custom.create("SILVER_COIN", 2, null, null));
  918. inv.setItem(shopmenu, 32, item.custom.create("GOLD_COIN", 1, null, null));
  919. }
  920. function setShopmenu5(shopmenu) {
  921. inv.setItem(shopmenu, 20, read.item("{id:\"minecraft:stick\",Count:1b,tag:{HideFlags:2,Enchantments:[{lvl:1s,id:\"minecraft:knockback\"}],display:{Name:'{\"text\":\"§bKnüppel\"}'},}}"));
  922. inv.setItem(shopmenu, 21, read.item("{id:\"minecraft:golden_sword\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:sharpness\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2,display:{Name:'{\"text\":\"§f§bGoldschwert Lvl1\"}'}}}"));
  923. inv.setItem(shopmenu, 22, read.item("{id:\"minecraft:wooden_axe\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:sharpness\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2}}"));
  924. inv.setItem(shopmenu, 23, read.item("{id:\"minecraft:golden_sword\",Count:1b,tag:{Enchantments:[{lvl:2s,id:\"minecraft:sharpness\"},{lvl:1s,id:\"minecraft:unbreaking\"}],HideFlags:2,display:{Name:'{\"text\":\"§f§bGoldschwert Lvl2\"}'}}}"));
  925. inv.setItem(shopmenu, 24, read.item("{id:\"minecraft:iron_sword\",Count:1b,tag:{Enchantments:[{lvl:2s,id:\"minecraft:sharpness\"},{lvl:1s,id:\"minecraft:unbreaking\"},{lvl:1s,id:\"minecraft:knockback\"}],HideFlags:2}}"));
  926. inv.setItem(shopmenu, 29, item.custom.create("COPPER_COIN", 8, null, null));
  927. inv.setItem(shopmenu, 30, item.custom.create("SILVER_COIN", 1, null, null));
  928. inv.setItem(shopmenu, 31, item.custom.create("SILVER_COIN", 2, null, null));
  929. inv.setItem(shopmenu, 32, item.custom.create("SILVER_COIN", 3, null, null));
  930. inv.setItem(shopmenu, 33, item.custom.create("GOLD_COIN", 5, null, null));
  931. }
  932. function setShopmenu6(shopmenu) {
  933. inv.setItem(shopmenu, 20, read.item("{id:\"minecraft:bow\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:infinity\"}],display:{Name:'{\"text\":\"§f§bBogen Lvl1\"}'}}}"));
  934. inv.setItem(shopmenu, 21, read.item("{id:\"minecraft:bow\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:infinity\"},{lvl:1s,id:\"minecraft:power\"}],display:{Name:'{\"text\":\"§f§bBogen Lvl2\"}'}}}"));
  935. inv.setItem(shopmenu, 22, read.item("{id:\"minecraft:bow\",Count:1b,tag:{Enchantments:[{lvl:1s,id:\"minecraft:infinity\"},{lvl:1s,id:\"minecraft:power\"},{lvl:1s,id:\"minecraft:punch\"}],display:{\"text\":\"§f§bBogen Lvl3\"}}}"));
  936. inv.setItem(shopmenu, 23, item.create("ARROW", 1, null, null));
  937. inv.setItem(shopmenu, 24, item.create("SPECTRAL_ARROW", 1, null, null));
  938. inv.setItem(shopmenu, 29, item.custom.create("GOLD_COIN", 3, null, null));
  939. inv.setItem(shopmenu, 30, item.custom.create("GOLD_COIN", 7, null, null));
  940. inv.setItem(shopmenu, 31, item.custom.create("GOLD_COIN", 13, null, null));
  941. inv.setItem(shopmenu, 32, item.custom.create("GOLD_COIN", 1, null, null));
  942. inv.setItem(shopmenu, 33, item.custom.create("SILVER_COIN", 2, null, null));
  943. }
  944. function setShopmenu7(shopmenu) {
  945. inv.setItem(shopmenu, 20, item.create("minecraft:apple", 1, null, null));
  946. inv.setItem(shopmenu, 21, item.create("minecraft:cooked_porkchop", 1, null, null));
  947. inv.setItem(shopmenu, 22, item.create("minecraft:cake", 1, null, null));
  948. inv.setItem(shopmenu, 23, item.create("minecraft:golden_apple", 1, null, null));
  949. inv.setItem(shopmenu, 29, item.custom.create("COPPER_COIN", 1, null, null));
  950. inv.setItem(shopmenu, 30, item.custom.create("COPPER_COIN", 2, null, null));
  951. inv.setItem(shopmenu, 31, item.custom.create("SILVER_COIN", 1, null, null));
  952. inv.setItem(shopmenu, 32, item.custom.create("GOLD_COIN", 2, null, null));
  953. }
  954. function setShopmenu8(shopmenu) {
  955. inv.setItem(shopmenu, 19, read.item("{id:\"minecraft:potion\",Count:1b,tag:{Potion:\"minecraft:healing\"}}"));
  956. inv.setItem(shopmenu, 20, read.item("{id:\"minecraft:potion\",Count:1b,tag:{Potion:\"minecraft:strong_healing\"}}"));
  957. inv.setItem(shopmenu, 21, read.item("{id:\"minecraft:potion\",Count:1b,tag:{Potion:\"minecraft:strong_leaping\"}}"));
  958. inv.setItem(shopmenu, 22, read.item("{id:\"minecraft:potion\",Count:1b,tag:{Potion:\"minecraft:swiftness\"}}"));
  959. inv.setItem(shopmenu, 23, read.item("{id:\"minecraft:potion\",Count:1b,tag:{Potion:\"minecraft:strength\"}}"));
  960. inv.setItem(shopmenu, 24, read.item("{id:\"minecraft:splash_potion\",Count:1b,tag:{Potion:\"minecraft:weakness\"}}"));
  961. inv.setItem(shopmenu, 28, item.custom.create("SILVER_COIN", 3, null, null));
  962. inv.setItem(shopmenu, 29, item.custom.create("SILVER_COIN", 5, null, null));
  963. inv.setItem(shopmenu, 30, item.custom.create("SILVER_COIN", 7, null, null));
  964. inv.setItem(shopmenu, 31, item.custom.create("SILVER_COIN", 16, null, null));
  965. inv.setItem(shopmenu, 32, item.custom.create("GOLD_COIN", 7, null, null));
  966. inv.setItem(shopmenu, 33, item.custom.create("GOLD_COIN", 10, null, null));
  967. }
  968. function setShopmenu9(shopmenu) {
  969. inv.setItem(shopmenu, 18, item.create("minecraft:ladder", 1, null, null));
  970. inv.setItem(shopmenu, 19, item.create("minecraft:cobweb", 1, null, null));
  971. inv.setItem(shopmenu, 20, item.create("minecraft:fishing_rod", 1, null, null));
  972. inv.setItem(shopmenu, 21, item.create("minecraft:flint_and_steel", 1, null, null));
  973. inv.setItem(shopmenu, 22, item.create("minecraft:ender_pearl", 1, null, null));
  974. inv.setItem(shopmenu, 23, read.item("{id:\"minecraft:string\",Count:1b,tag:{display:{Lore:['{\"text\":\"Warns you from enimies.\"}'],Name:'{\"text\":\"§rTrap\"}'}}}"));
  975. inv.setItem(shopmenu, 24, read.item("{id:\"minecraft:red_bed\",Count:1b,tag:{display:{Lore:['{\"text\":\"Gives you a new bed (only once!)\"}'],Name:'{\"text\":\"§rNew Bed\"}'}}}"));
  976. inv.setItem(shopmenu, 25, $blaze_rod, 1, null, null);
  977. inv.setItem(shopmenu, 26, $warp_powder, 1, null, null);
  978. inv.setItem(shopmenu, 27, item.custom.create("COPPER_COIN", 1, null, null));
  979. inv.setItem(shopmenu, 28, item.custom.create("COPPER_COIN", 16, null, null));
  980. inv.setItem(shopmenu, 29, item.custom.create("SILVER_COIN", 6, null, null));
  981. inv.setItem(shopmenu, 30, item.custom.create("SILVER_COIN", 7, null, null));
  982. inv.setItem(shopmenu, 31, item.custom.create("GOLD_COIN", 13, null, null));
  983. inv.setItem(shopmenu, 32, item.custom.create("SILVER_COIN", 7, null, null));
  984. inv.setItem(shopmenu, 33, item.custom.create("GOLD_COIN", 40, null, null));
  985. inv.setItem(shopmenu, 34, item.custom.create("GOLD_COIN", 3, null, null));
  986. inv.setItem(shopmenu, 35, item.custom.create("SILVER_COIN", 3, null, null));
  987. }
  988. function bedwars.getTeamColor(player) {
  989. team = map.get($players, player.getName(player));
  990. color = map.get($colorcodes, team);
  991. return color;
  992. }
  993. function minigame.canStartIndiv() {
  994. player_list = minigame.getPlayers($script_id);
  995. p_amount = list.getSize(player_list);
  996. if(p_amount < minigame.getMinPlayers()) {
  997. return false;
  998. }
  999. if(p_amount > 0 && list.getSize($waiters) > 0) {
  1000. return true;
  1001. }
  1002. for(i = 0; i < $numberofteams; i++) {
  1003. teamlist = map.get($teamidtolist, i);
  1004. team_size = list.getSize(teamlist);
  1005. if(team_size == p_amount) {
  1006. return false;
  1007. }
  1008. }
  1009. return true;
  1010. }