bedwars.txt 38 KB

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