market.txt 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  1. stock = config.new("scripts/configs", "market_prices");
  2. config.load(stock);
  3. mainHand = read.slot("HAND");
  4. openMarkets = set.new();
  5. resetTime = 6 * 60 * 60 * 20;
  6. // Miner
  7. miner = inv.new("222222222222222222", text.new("Miner"));
  8. inv.setItem(miner, 0, newItem(material.get("DIAMOND")));
  9. inv.setItem(miner, 1, newItem(material.get("IRON_INGOT")));
  10. inv.setItem(miner, 2, newItem(material.get("GOLD_INGOT")));
  11. inv.setItem(miner, 3, newItem(material.get("COPPER_INGOT")));
  12. inv.setItem(miner, 4, newItem(material.get("NETHERITE_INGOT")));
  13. inv.setItem(miner, 5, newItem(material.get("LAPIS_LAZULI")));
  14. inv.setItem(miner, 6, newItem(material.get("REDSTONE")));
  15. inv.setItem(miner, 7, newItem(material.get("FLINT")));
  16. inv.setItem(miner, 8, newItem(material.get("EMERALD")));
  17. inv.setItem(miner, 9, newItem(material.get("QUARTZ")));
  18. inv.setItem(miner, 10, newItem(material.get("COAL")));
  19. inv.setItem(miner, 11, newItem(material.get("AMETHYST_SHARD")));
  20. set.add(openMarkets, inv.getId(miner));
  21. // Farmer
  22. farmer = inv.new("222222222", text.new("Farmer"));
  23. inv.setItem(farmer, 0, newItem(material.get("WHEAT")));
  24. inv.setItem(farmer, 1, newItem(material.get("CARROT")));
  25. inv.setItem(farmer, 2, newItem(material.get("POTATO")));
  26. inv.setItem(farmer, 3, newItem(material.get("BEETROOT")));
  27. inv.setItem(farmer, 4, newItem(material.get("MELON")));
  28. inv.setItem(farmer, 5, newItem(material.get("PUMPKIN")));
  29. set.add(openMarkets, inv.getId(farmer));
  30. // Fisher
  31. fisher = inv.new("222222222", text.new("Fisher"));
  32. inv.setItem(fisher, 0, newItem(material.get("COD")));
  33. inv.setItem(fisher, 1, newItem(material.get("SALMON")));
  34. inv.setItem(fisher, 2, newItem(material.get("TROPICAL_FISH")));
  35. inv.setItem(fisher, 3, newItem(material.get("PUFFERFISH")));
  36. set.add(openMarkets, inv.getId(fisher));
  37. // Baker
  38. baker = inv.new("222222222", text.new("Baker"));
  39. inv.setItem(baker, 0, newItem(material.get("BREAD")));
  40. inv.setItem(baker, 1, newItem(material.get("CAKE")));
  41. inv.setItem(baker, 2, newItem(material.get("COOKIE")));
  42. mentos = item.new(material.get("COOKIE"));
  43. item.setName(mentos, text.new("§dMentos"));
  44. inv.setItem(baker, 3, newSellItem(mentos, 1, 32));
  45. set.add(openMarkets, inv.getId(baker));
  46. // Tavern
  47. tavern = inv.new("222222222", text.new("Tavern"));
  48. beer = read.item("{Count:1b,id:'minecraft:potion',tag:{Potion:'minecraft:strong_strength'}}");
  49. item.addPotion(beer, "nausea", 400, 0);
  50. item.setName(beer, text.new("§fBeer"));
  51. item.addFlag(beer, "HIDE_POTION_EFFECTS");
  52. inv.setItem(tavern, 0, newSellItem(beer, 1, 20));
  53. sturm = read.item("{Count:1b,id:'minecraft:potion',tag:{Potion:'minecraft:water'}}");
  54. item.addPotion(sturm, "haste", 20 * 2 * 60, 2);
  55. item.addPotion(sturm, "nausea", 400, 0);
  56. item.setName(sturm, text.new("§fSturm"));
  57. item.addFlag(sturm, "HIDE_POTION_EFFECTS");
  58. inv.setItem(tavern, 1, newSellItem(sturm, 1, 64));
  59. red_bull = read.item("{Count:1b,id:'minecraft:potion',tag:{Potion:'minecraft:water'}}");
  60. item.addPotion(red_bull, "levitation", 600, 0);
  61. item.setName(red_bull, text.new("§fRed Bell"));
  62. item.addFlag(red_bull, "HIDE_POTION_EFFECTS");
  63. inv.setItem(tavern, 2, newSellItem(red_bull, 1, 20));
  64. set.add(openMarkets, inv.getId(tavern));
  65. // Priest
  66. priest = inv.new("222222222", text.new("Priest"));
  67. inv.setItem(priest, 0, newItem(material.get("BONE")));
  68. inv.setItem(priest, 1, newItem(material.get("ROTTEN_FLESH")));
  69. inv.setItem(priest, 2, newItem(material.get("SLIME_BALL")));
  70. inv.setItem(priest, 3, newItem(material.get("SPIDER_EYE")));
  71. inv.setItem(priest, 4, newItem(material.get("PHANTOM_MEMBRANE")));
  72. inv.setItem(priest, 5, newItem(material.get("ENDER_PEARL")));
  73. inv.setItem(priest, 6, newItem(material.get("STRING")));
  74. inv.setItem(priest, 7, newItem(material.get("GUNPOWDER")));
  75. set.add(openMarkets, inv.getId(priest));
  76. // Mason
  77. mason = inv.new("222222222222222222", text.new("Mason"));
  78. inv.setItem(mason, 0, newItem(material.get("COBBLESTONE")));
  79. inv.setItem(mason, 1, newItem(material.get("STONE")));
  80. inv.setItem(mason, 2, newItem(material.get("GRANITE")));
  81. inv.setItem(mason, 3, newItem(material.get("POLISHED_GRANITE")));
  82. inv.setItem(mason, 4, newItem(material.get("DIORITE")));
  83. inv.setItem(mason, 5, newItem(material.get("POLISHED_DIORITE")));
  84. inv.setItem(mason, 6, newItem(material.get("ANDESITE")));
  85. inv.setItem(mason, 7, newItem(material.get("POLISHED_ANDESITE")));
  86. inv.setItem(mason, 8, newItem(material.get("DEEPSLATE")));
  87. inv.setItem(mason, 9, newItem(material.get("COBBLED_DEEPSLATE")));
  88. inv.setItem(mason, 10, newItem(material.get("POLISHED_DEEPSLATE")));
  89. inv.setItem(mason, 11, newItem(material.get("CALCITE")));
  90. inv.setItem(mason, 12, newItem(material.get("TUFF")));
  91. inv.setItem(mason, 13, newItem(material.get("DRIPSTONE_BLOCK")));
  92. inv.setItem(mason, 14, newItem(material.get("GRAVEL")));
  93. inv.setItem(mason, 15, newItem(material.get("AMETHYST_BLOCK")));
  94. set.add(openMarkets, inv.getId(mason));
  95. // Mage
  96. mage = inv.new("222222222", text.new("Mage"));
  97. inv.setItem(mage, 0, newSellItem(item.new(material.get("WITHER_SKELETON_SPAWN_EGG")), 1, 512));
  98. inv.setItem(mage, 1, newSellItem(item.new(material.get("ENDERMITE_SPAWN_EGG")), 1, 64));
  99. inv.setItem(mage, 2, newSellItem(item.new(material.get("ELDER_GUARDIAN_SPAWN_EGG")), 1, 2048));
  100. inv.setItem(mage, 3, newSellItem(item.new(material.get("WITCH_SPAWN_EGG")), 1, 96));
  101. inv.setItem(mage, 4, newSellItem(item.new(material.get("AXOLOTL_SPAWN_EGG")), 1, 256));
  102. inv.setItem(mage, 5, newSellItem(item.new(material.get("FOX_SPAWN_EGG")), 1, 256));
  103. inv.setItem(mage, 6, newSellItem(item.new(material.get("HORSE_SPAWN_EGG")), 1, 256));
  104. inv.setItem(mage, 7, newSellItem(item.new(material.get("STRIDER_SPAWN_EGG")), 1, 256));
  105. inv.setItem(mage, 8, newItem(material.get("SHULKER_BOX")));
  106. set.add(openMarkets, inv.getId(mage));
  107. // Lumberjack
  108. lumberjack = inv.new("222222222222222222", text.new("Lumberjack"));
  109. inv.setItem(lumberjack, 0, newItem(material.get("OAK_LOG")));
  110. inv.setItem(lumberjack, 1, newItem(material.get("SPRUCE_LOG")));
  111. inv.setItem(lumberjack, 2, newItem(material.get("BIRCH_LOG")));
  112. inv.setItem(lumberjack, 3, newItem(material.get("JUNGLE_LOG")));
  113. inv.setItem(lumberjack, 4, newItem(material.get("ACACIA_LOG")));
  114. inv.setItem(lumberjack, 5, newItem(material.get("DARK_OAK_LOG")));
  115. inv.setItem(lumberjack, 6, newItem(material.get("OAK_SAPLING")));
  116. inv.setItem(lumberjack, 7, newItem(material.get("SPRUCE_SAPLING")));
  117. inv.setItem(lumberjack, 8, newItem(material.get("BIRCH_SAPLING")));
  118. inv.setItem(lumberjack, 9, newItem(material.get("JUNGLE_SAPLING")));
  119. inv.setItem(lumberjack, 10, newItem(material.get("ACACIA_SAPLING")));
  120. inv.setItem(lumberjack, 11, newItem(material.get("DARK_OAK_SAPLING")));
  121. set.add(openMarkets, inv.getId(lumberjack));
  122. // Butcher
  123. butcher = inv.new("222222222", text.new("Butcher"));
  124. inv.setItem(butcher, 0, newItem(material.get("BEEF")));
  125. inv.setItem(butcher, 1, newItem(material.get("CHICKEN")));
  126. inv.setItem(butcher, 2, newItem(material.get("PORKCHOP")));
  127. inv.setItem(butcher, 3, newItem(material.get("RABBIT")));
  128. inv.setItem(butcher, 4, newItem(material.get("MUTTON")));
  129. inv.setItem(butcher, 5, newItem(material.get("FEATHER")));
  130. inv.setItem(butcher, 6, newItem(material.get("RABBIT_HIDE")));
  131. inv.setItem(butcher, 7, newItem(material.get("RABBIT_FOOT")));
  132. inv.setItem(butcher, 8, newItem(material.get("LEATHER")));
  133. set.add(openMarkets, inv.getId(butcher));
  134. // Librarian
  135. librarian = inv.new("222222222", text.new("Librarian"));
  136. inv.setItem(librarian, 0, newItem(material.get("INK_SAC")));
  137. inv.setItem(librarian, 1, newItem(material.get("WRITABLE_BOOK")));
  138. inv.setItem(librarian, 2, newItem(material.get("BOOK")));
  139. inv.setItem(librarian, 3, newItem(material.get("BOOKSHELF")));
  140. set.add(openMarkets, inv.getId(librarian));
  141. // Nether Merchant
  142. nether = inv.new("222222222222222222", text.new("Nether Merchant"));
  143. inv.setItem(nether, 0, newItem(material.get("BLAZE_ROD")));
  144. inv.setItem(nether, 1, newItem(material.get("GHAST_TEAR")));
  145. inv.setItem(nether, 2, newItem(material.get("NETHER_WART")));
  146. inv.setItem(nether, 3, newItem(material.get("MAGMA_CREAM")));
  147. inv.setItem(nether, 4, newItem(material.get("WARPED_STEM")));
  148. inv.setItem(nether, 5, newItem(material.get("CRIMSON_STEM")));
  149. inv.setItem(nether, 6, newItem(material.get("NETHERRACK")));
  150. inv.setItem(nether, 7, newItem(material.get("BASALT")));
  151. inv.setItem(nether, 8, newItem(material.get("BLACKSTONE")));
  152. inv.setItem(nether, 9, newItem(material.get("GLOWSTONE")));
  153. inv.setItem(nether, 10, newItem(material.get("SHROOMLIGHT")));
  154. inv.setItem(nether, 11, newItem(material.get("OBSIDIAN")));
  155. inv.setItem(nether, 12, newItem(material.get("CRYING_OBSIDIAN")));
  156. inv.setItem(nether, 13, newItem(material.get("WITHER_SKELETON_SKULL")));
  157. set.add(openMarkets, inv.getId(nether));
  158. // Diver
  159. diver = inv.new("222222222222222222222222222", text.new("Diver"));
  160. inv.setItem(diver, 0, newItem(material.get("TUBE_CORAL_BLOCK")));
  161. inv.setItem(diver, 1, newItem(material.get("BRAIN_CORAL_BLOCK")));
  162. inv.setItem(diver, 2, newItem(material.get("BUBBLE_CORAL_BLOCK")));
  163. inv.setItem(diver, 3, newItem(material.get("FIRE_CORAL_BLOCK")));
  164. inv.setItem(diver, 4, newItem(material.get("HORN_CORAL_BLOCK")));
  165. inv.setItem(diver, 5, newItem(material.get("TUBE_CORAL")));
  166. inv.setItem(diver, 6, newItem(material.get("BRAIN_CORAL")));
  167. inv.setItem(diver, 7, newItem(material.get("BUBBLE_CORAL")));
  168. inv.setItem(diver, 8, newItem(material.get("FIRE_CORAL")));
  169. inv.setItem(diver, 9, newItem(material.get("HORN_CORAL")));
  170. inv.setItem(diver, 10, newItem(material.get("TUBE_CORAL_FAN")));
  171. inv.setItem(diver, 11, newItem(material.get("BRAIN_CORAL_FAN")));
  172. inv.setItem(diver, 12, newItem(material.get("BUBBLE_CORAL_FAN")));
  173. inv.setItem(diver, 13, newItem(material.get("FIRE_CORAL_FAN")));
  174. inv.setItem(diver, 14, newItem(material.get("HORN_CORAL_FAN")));
  175. inv.setItem(diver, 15, newItem(material.get("SEA_PICKLE")));
  176. inv.setItem(diver, 16, newItem(material.get("KELP")));
  177. inv.setItem(diver, 17, newItem(material.get("LILY_PAD")));
  178. inv.setItem(diver, 18, newItem(material.get("TRIDENT")));
  179. set.add(openMarkets, inv.getId(diver));
  180. // Anna
  181. anna = inv.new("222222222", text.new("Anna"));
  182. inv.setItem(anna, 0, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-13},'minecraft:profile':{id:[I;-1513351130,1351370996,-1551837317,-2013369534],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGY3ZGM4YzkxZjdhMjRlY2Q5YzVlOWQ0ZDhjMzlmMGFjODMzM2FlNDg1MzU1OWFjYjhiMDM4NjZmOWQifX19'}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  183. inv.setItem(anna, 1, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-22},'minecraft:profile':{id:[I;1401213480,1729973772,-1435315149,406187954],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTE5OTdkYTY0MDQzYjI4NDgyMjExNTY0M2E2NTRmZGM0ZThhNzIyNjY2NGI0OGE0ZTFkYmI1NTdiNWMwZmUxNCJ9fX0='}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  184. inv.setItem(anna, 2, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-20},'minecraft:profile':{id:[I;2138686229,1965575041,-1374158344,-103884467],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTE3MDhlZDM1MmUxN2NhODljMWM5NDg1Y2QxZGIwMTdjNGM4ODY4OTVhYjVjN2MyN2E5ZmY1NjRhZjIxNzJkIn19fQ=='}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  185. inv.setItem(anna, 3, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-19},'minecraft:profile':{id:[I;-1379669389,1531072490,-1573434766,-1255286997],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzBiOGI1ODg5ZWUxYzYzODhkYzZjMmM1ZGJkNzBiNjk4NGFlZmU1NDMxOWEwOTVlNjRkYjc2MzgwOTdiODIxIn19fQ=='}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  186. inv.setItem(anna, 4, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-18},'minecraft:profile':{id:[I;1624924725,1260994699,-1171578362,1857502530],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmYzNjM2MjgxMjNhZjExYWE2ZjRhODk5Y2ViZDA5NGYwNzQ1NTVhNDFlNmQzMzUyMTJlZTcyNjNhZDM5ZjYifX19'}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  187. inv.setItem(anna, 5, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-11},'minecraft:profile':{id:[I;483441708,1083393495,-2017099718,1985799148],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjMzNTk4NDM3ZTMxMzMyOWViMTQxYTEzZTkyZDliMDM0OWFhYmU1YzY0ODJhNWRkZTdiNzM3NTM2MzRhYmEifX19'}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  188. inv.setItem(anna, 6, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-15},'minecraft:profile':{id:[I;-319110374,-1443871767,-1539027072,935922312],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQzYTZiZDk4YWMxODMzYzY2NGM0OTA5ZmY4ZDJkYzYyY2U4ODdiZGNmM2NjNWIzODQ4NjUxYWU1YWY2YiJ9fX0='}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  189. inv.setItem(anna, 7, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:114,y:58,z:-17},'minecraft:profile':{id:[I;1480778329,316624888,-1611935903,1148907210],name:'',properties:[{name:'textures',value:'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzVlMmUwOTU5NzEyZGNkMzM1N2NjM2NlYTg1Zjk5YjNmZDgwOTc4NTVjNzU0YjliMTcxZjk2MzUxNDIyNWQifX19'}]}},count:1,id:'minecraft:player_head'}"), 1, 2048));
  190. inv.setItem(anna, 8, newSellItem(read.item("{components:{'minecraft:block_entity_data':{id:'minecraft:skull',x:107,y:58,z:-11},'minecraft:profile':{id:[I;1974515746,1982350500,-1169583430,618614082],name:'',properties:[{name:'textures',signature:'RO9IGJ16KwIM79JS04eY82CRaWXDEkIqtz4xA8odVaP0Uk4Ox1sHRa69Hh1V2Zo5KRGJ1dDNECvf0XHmzFn9xcDwXmGsk9HC/t2Ndxe2jLebtJk7Ytl3/kFsNQgluS/TikWkF1MgPnucQ/M0ftggu4B1c6SE4Hat0HAIGuhgC8+2jwrTcgDxWeKy9uO4ibopjDR8+S89XzYAPqqqf2CZtZnUP28DNR7pa2uJIT5+/kP3y6euRN+VOOAdTKLUnlfiCZTOxanIkDnC20tVvQQz5lPIGH18rq+9YIF/jok0G3zqWXCgiWk24QogYQErRa9h040sg7ganrC5A5iHBwzHmvzN8k9T/XXu2gDyKih5mzb2EAOxV+pe9HfG1qIZHDhjH8+2vLsUzUDpUINQPorYJ+Qk/YnWPc38EwW4H6byneDGP1xSHmcd5SnTeGYuyXHgHs9I55u5wxTxhZref3/BkS4vIL7w5tkc4YWHOU5HbEmdillLnc0Pepk7JxYLBcnSCcRdhvRPZ3ajGEPKfDwx0RgeZsah4+MFOWi8lXOcpBwnaqpNUYRNgLAahMpuyAUUHZ17Urd6hEadbrWttDFuTO+oHBH45Ueu0vD4pgdXjP1SHZWyPvQVVKRph4eF7xVtobHGkQeJk0u7DFx2Yn+XiPmflQWBGa/oYfitYayO4Kw=',value:'ewogICJ0aW1lc3RhbXAiIDogMTYwMzk4NTQxMjIxNCwKICAicHJvZmlsZUlkIiA6ICIwNjEzY2I1Y2QxYjg0M2JjYjI4OTk1NWU4N2QzMGEyYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJicmVhZGxvYWZzcyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9kNWEzNjhlNGI1MTc3NTljNTZhN2Q0ZDUxMWU1YmM5ZTNkOWVlNDA1Yzc5ZGFiNzZlY2IwMDdhYjBjYTg3ODc4IgogICAgfQogIH0KfQ=='}]}},count:1,id:'minecraft:player_head'}"), 1, 4096));
  191. set.add(openMarkets, inv.getId(anna));
  192. emerald = material.get("EMERALD");
  193. event.load("snuvi_click");
  194. background = material.get("BLACK_STAINED_GLASS_PANE");
  195. onStock = 0;
  196. buyAmount = 0;
  197. buySnuviAmount = 0;
  198. sellAmount = 0;
  199. sellSnuviAmount = 0;
  200. save = false;
  201. function save() {
  202. if($save) {
  203. return;
  204. }
  205. $save = true;
  206. sgoto(100, "save");
  207. }
  208. function giveSnuvis(player, amount) {
  209. msg(player, text.new(string.concat("§eYou earned §f", money.getStringColor(amount, "§6"), "§e Snuvis.")));
  210. money.add(player, amount);
  211. }
  212. function hasSnuvis(player, amount) {
  213. return hasEnoughMoney(player, amount);
  214. }
  215. function removeSnuvis(player, amount) {
  216. money.subWithoutPopUp(player, amount);
  217. }
  218. function calculatePrices(material) {
  219. max = 34560;
  220. $onStock = config.getDouble($stock, material, 0);
  221. $buyAmount = ($onStock + 1);
  222. $buySnuviAmount = 2176;
  223. $sellAmount = ($onStock + 2);
  224. $sellSnuviAmount = 2048;
  225. if($buyAmount > $buySnuviAmount) {
  226. $buyAmount /= $buySnuviAmount;
  227. $buySnuviAmount = 1;
  228. } else {
  229. $buySnuviAmount /= $buyAmount;
  230. $buyAmount = 1;
  231. }
  232. if($sellAmount > $sellSnuviAmount) {
  233. $sellAmount /= $sellSnuviAmount;
  234. $sellSnuviAmount = 1;
  235. } else {
  236. $sellSnuviAmount /= $sellAmount;
  237. $sellAmount = 1;
  238. }
  239. $buyAmount = math.round($buyAmount);
  240. $buySnuviAmount = math.round($buySnuviAmount);
  241. $sellAmount = math.round($sellAmount);
  242. $sellSnuviAmount = math.round($sellSnuviAmount);
  243. }
  244. function newSellItem(item, amount, price) {
  245. lore = item.getLore(item);
  246. if(lore == null) {
  247. lore = list.new();
  248. }
  249. s = "";
  250. if(price > 1) {
  251. s = "s";
  252. }
  253. list.add(lore, text.new(string.concat("§eBuy §6", string.number(amount), "§e for §6", string.number(price), " §eSnuvi", s)));
  254. item.setLore(item, lore);
  255. return item;
  256. }
  257. function newItem(material) {
  258. item = item.new(material);
  259. lore = item.getLore(item);
  260. if(lore == null) {
  261. lore = list.new();
  262. }
  263. calculatePrices(material);
  264. list.add(lore, text.new(string.concat("§eBuy §6", string.number($buyAmount), "§e for §f", money.getStringColor($buySnuviAmount, "§6"))));
  265. list.add(lore, text.new(string.concat("§eSell §6", string.number($sellAmount), "§e for §f", money.getStringColor($sellSnuviAmount, "§6"))));
  266. list.add(lore, text.new(string.concat("§6", string.number($onStock), "§e on stock")));
  267. item.setLore(item, lore);
  268. return item;
  269. }
  270. function updateItem(inv, slot, material) {
  271. calculatePrices(material);
  272. inv.setItem(inv, slot, newItem(material));
  273. }
  274. sgoto(40, "consume");
  275. msg.string("dev", "§bMarket §rloaded.");
  276. @loop
  277. wait();
  278. ignoreGoto(event);
  279. goto("loop");
  280. function reduceInventory(inv) {
  281. size = inv.getSize(inv);
  282. for(i = 0; i < size; i++) {
  283. item = inv.getItem(inv, i);
  284. if(item == null) {
  285. continue;
  286. }
  287. lore = item.getLore(item);
  288. if(lore == null || list.getSize(lore) == 0) {
  289. continue;
  290. } elseif(list.getSize(lore) == 1) {
  291. continue;
  292. }
  293. m = item.getType(item);
  294. amount = config.getDouble($stock, m, 0);
  295. if(amount > 128) {
  296. config.set($stock, m, math.round(amount * 0.99));
  297. } elseif(amount < 0) {
  298. config.set($stock, m, 0);
  299. }
  300. updateItem(inv, i, m);
  301. }
  302. }
  303. @consume
  304. time = config.getDouble($stock, "time", 0);
  305. if(time + resetTime - 1000 >= time.getMillis()) {
  306. msg("dev", text.new("§6Skipping market reduce"));
  307. } else {
  308. config.set($stock, "time", time.getMillis());
  309. reduceInventory(miner);
  310. reduceInventory(farmer);
  311. reduceInventory(fisher);
  312. reduceInventory(baker);
  313. reduceInventory(tavern);
  314. reduceInventory(priest);
  315. reduceInventory(mason);
  316. reduceInventory(mage);
  317. reduceInventory(lumberjack);
  318. reduceInventory(butcher);
  319. reduceInventory(librarian);
  320. reduceInventory(nether);
  321. reduceInventory(diver);
  322. reduceInventory(anna);
  323. save();
  324. }
  325. sgoto(resetTime, "consume");
  326. goto("loop");
  327. @save
  328. config.saveAsync(stock);
  329. //print("save");
  330. save = false;
  331. goto("loop");
  332. @snuvi_click
  333. if(inv == null) {
  334. goto("loop");
  335. }
  336. item = inv.getItem(inv, inv_slot);
  337. if(item.getType(item) == emerald) {
  338. title_string = string.text(inv_title);
  339. if(title_string == "Miner") {
  340. inv.open(miner, player);
  341. } elseif(title_string == "Farmer") {
  342. inv.open(farmer, player);
  343. } elseif(title_string == "Fisher") {
  344. inv.open(fisher, player);
  345. }elseif(title_string == "Baker") {
  346. inv.open(baker, player);
  347. } elseif(title_string == "Alena") {
  348. inv.open(tavern, player);
  349. } elseif(title_string == "Priest") {
  350. inv.open(priest, player);
  351. } elseif(title_string == "Mason") {
  352. inv.open(mason, player);
  353. } elseif(title_string == "Mage") {
  354. inv.open(mage, player);
  355. } elseif(title_string == "Lumberjack") {
  356. inv.open(lumberjack, player);
  357. } elseif(title_string == "Butcher") {
  358. inv.open(butcher, player);
  359. } elseif(title_string == "Librarian") {
  360. inv.open(librarian, player);
  361. } elseif(title_string == "Nether Merchant") {
  362. inv.open(nether, player);
  363. } elseif(title_string == "Diver") {
  364. inv.open(diver, player);
  365. } elseif(title_string == "Anna") {
  366. inv.open(anna, player);
  367. }
  368. }
  369. if(!set.contains(openMarkets, inv.getId(inv))) {
  370. goto("loop");
  371. }
  372. material = item.getType(item);
  373. if(material == background) {
  374. goto("loop");
  375. }
  376. clicks = 1;
  377. ignoreGoto(click);
  378. goto("loop");
  379. // buying
  380. @SHIFT_LEFT
  381. clicks = 64;
  382. @LEFT
  383. lostSnuvis = 0;
  384. lore = item.getLore(item);
  385. if(lore == null || list.getSize(lore) == 0) {
  386. msg(player, text.new("§cYou cannot buy this."));
  387. } elseif(list.getSize(lore) == 1) {
  388. base = string.text(list.get(lore, 0));
  389. base = string.replace(base, "§.", "");
  390. parts = string.split(" ", base);
  391. amount = read.number(parts[1]);
  392. price = read.number(parts[3]);
  393. for(i = 0; i < clicks; i++) {
  394. if(!hasSnuvis(player, price)) {
  395. msg(player, text.new("§cYou don't have enough snuvis."));
  396. break;
  397. }
  398. buyItem = item.clone(item);
  399. item.setAmount(buyItem, amount);
  400. item.setLore(buyItem, list.new());
  401. if(player.addItem(player, buyItem) > 0) {
  402. msg(player, text.new("§cYour inventory is too full."));
  403. break;
  404. }
  405. removeSnuvis(player, price);
  406. lostSnuvis += price;
  407. }
  408. if(lostSnuvis > 0) {
  409. money.popUp(player, lostSnuvis * -1, false);
  410. msg(player, text.new(string.concat("§eYou spent §f", money.getStringColor(lostSnuvis, "§6"), "§e Snuvis.")));
  411. }
  412. } else {
  413. for(i = 0; i < clicks; i++) {
  414. calculatePrices(material);
  415. if(onStock < buyAmount || buyAmount <= 0) {
  416. msg(player, text.new("§cThis item is out of stock."));
  417. break;
  418. }
  419. if(!hasSnuvis(player, buySnuviAmount)) {
  420. msg(player, text.new("§cYou don't have enough snuvis."));
  421. break;
  422. }
  423. buyItem = item.new(material);
  424. item.setAmount(buyItem, buyAmount);
  425. if(player.addItem(player, buyItem) > 0) {
  426. msg(player, text.new("§cYour inventory is too full."));
  427. break;
  428. }
  429. removeSnuvis(player, buySnuviAmount);
  430. lostSnuvis += buySnuviAmount;
  431. config.set(stock, material, onStock - buyAmount);
  432. }
  433. if(lostSnuvis > 0) {
  434. money.popUp(player, lostSnuvis * -1, false);
  435. msg(player, text.new(string.concat("§eYou spent §f", money.getStringColor(lostSnuvis, "§6"), "§e Snuvis.")));
  436. updateItem(inv, inv_slot, material);
  437. save();
  438. }
  439. }
  440. goto("loop");
  441. // selling
  442. @SHIFT_RIGHT
  443. clicks = 64;
  444. @RIGHT
  445. lore = item.getLore(item);
  446. if(lore == null || list.getSize(lore) <= 1) {
  447. msg(player, text.new("§cYou can only buy this item."));
  448. goto("loop");
  449. }
  450. gotSnuvis = 0;
  451. for(i = 0; i < clicks; i++) {
  452. calculatePrices(material);
  453. sellItem = item.new(material);
  454. amount = player.getItemAmount(player, sellItem);
  455. if(amount < sellAmount) {
  456. msg(player, text.new("§cYou don't have enough of this item."));
  457. break;
  458. }
  459. gotSnuvis += sellSnuviAmount;
  460. item.setAmount(sellItem, sellAmount);
  461. player.removeItem(player, sellItem);
  462. config.set(stock, material, onStock + sellAmount);
  463. }
  464. if(gotSnuvis > 0) {
  465. giveSnuvis(player, gotSnuvis);
  466. updateItem(inv, inv_slot, material);
  467. save();
  468. }
  469. goto("loop");