bedwars.txt 42 KB

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