bedwars.txt 38 KB

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