Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 67.99 KB | None | 0 0
  1. package com.asylumdevs.cellmines.manager;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. import java.util.Set;
  8. import java.util.UUID;
  9.  
  10. import org.apache.commons.lang3.ArrayUtils;
  11. import org.bukkit.Bukkit;
  12. import org.bukkit.ChatColor;
  13. import org.bukkit.Location;
  14. import org.bukkit.Material;
  15. import org.bukkit.block.Block;
  16. import org.bukkit.configuration.file.FileConfiguration;
  17. import org.bukkit.configuration.file.YamlConfiguration;
  18. import org.bukkit.entity.Player;
  19. import org.bukkit.event.inventory.ClickType;
  20. import org.bukkit.event.inventory.InventoryType;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.inventory.meta.SkullMeta;
  23.  
  24. import com.asylumdevs.cellmines.CellMines;
  25. import com.asylumdevs.cellmines.inventory.Inventory;
  26. import com.asylumdevs.cellmines.inventory.ItemListener;
  27. import com.asylumdevs.cellmines.inventory.api.InventoryAPI;
  28.  
  29. import me.goodandevil.skyblock.SkyBlock;
  30. import me.goodandevil.skyblock.api.SkyBlockAPI;
  31. import me.goodandevil.skyblock.api.island.Island;
  32. import me.goodandevil.skyblock.api.island.IslandManager;
  33. import me.goodandevil.skyblock.api.island.IslandRole;
  34. import me.goodandevil.skyblock.world.WorldManager;
  35. import me.realized.tokenmanager.api.TokenManager;
  36.  
  37. public class InventoryManager {
  38.  
  39. public void openConfirmation(String blocktype, Player p, String tier, String tieruuid, Block block, Location first,
  40. Island island) {
  41. Inventory inv = InventoryAPI.createInventory1(ChatColor.translateAlternateColorCodes('&', "Confirmation"), 54);
  42.  
  43. int[] activate = { 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29, 30, 36, 37, 38, 39, 45, 46, 47, 48 };
  44. int[] middle = { 4, 13, 22, 31, 40, 49 };
  45. int[] deactivate = { 5, 6, 7, 8, 14, 15, 16, 17, 23, 24, 25, 26, 32, 33, 34, 35, 41, 42, 43, 44, 50, 51, 52,
  46. 53 };
  47.  
  48. for (int i : activate) {
  49. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
  50. inv.setSlot(i,
  51. InventoryAPI.createItem("&a&lACTIVATE CELL MINE",
  52. Arrays.asList("", "&7Click to activate your cell mine!", ""), item, null, 1),
  53. new ItemListener() {
  54. @SuppressWarnings("deprecation")
  55. public void onItemClick(Player p, ClickType click) {
  56. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  57. CellMines.getAPI().activateCellMine(p, tier, tieruuid, first, island);
  58. p.getInventory().setItemInHand(null);
  59. p.getOpenInventory().close();
  60. if (!tierdata.exists()) {
  61. if (tier.equalsIgnoreCase("Cell")) {
  62. CellMines.getSystem().getGenerator().generate(blocktype, block, first,
  63. CellMines.getSystem().getConfig()
  64. .getInt("cellmines." + tier + ".mineData.size"),
  65. Material.valueOf(CellMines.getSystem().getConfig()
  66. .getString("cellmines." + tier + ".mineData.wallBlock")),
  67. Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  68. .getString("cellmines." + tier + ".mineData.floorBlock")));
  69. } else {
  70. CellMines.getSystem().getGenerator().generate(blocktype, block, first,
  71. CellMines.getSystem().getConfig()
  72. .getInt("cellmines." + tier + ".mineData.size"),
  73. Material.valueOf(CellMines.getSystem().getConfig()
  74. .getString("cellmines." + tier + ".mineData.wallBlock")),
  75. Material.LAPIS_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  76. .getString("cellmines." + tier + ".mineData.floorBlock")));
  77. }
  78. } else if (tierdata.exists()) {
  79. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  80. int size = 0;
  81. if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  82. size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  83. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  84. size = 15;
  85. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  86. size = 20;
  87. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  88. size = 25;
  89. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  90. size = 30;
  91. }
  92. if (tier.equalsIgnoreCase("Cell")) {
  93. if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  94. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  95. Material.valueOf(CellMines.getSystem().getConfig()
  96. .getString("cellmines.Cell.mineData.wallBlock")),
  97. Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  98. .getString("cellmines.Cell.mineData.floorBlock")));
  99. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  100. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  101. Material.valueOf(CellMines.getSystem().getConfig()
  102. .getString("cellmines.Cell.mineData.wallBlock")),
  103. Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  104. .getString("cellmines.Cell.mineData.floorBlock")));
  105. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  106. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  107. Material.valueOf(CellMines.getSystem().getConfig()
  108. .getString("cellmines.Cell.mineData.wallBlock")),
  109. Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  110. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  111. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  112. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  113. Material.valueOf(CellMines.getSystem().getConfig()
  114. .getString("cellmines.Cell.mineData.wallBlock")),
  115. Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  116. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  117. }
  118. } else {
  119. CellMines.getSystem().getGenerator().generate(blocktype, block, first,
  120. CellMines.getSystem().getConfig()
  121. .getInt("cellmines." + tier + ".mineData.size"),
  122. Material.valueOf(CellMines.getSystem().getConfig()
  123. .getString("cellmines." + tier + ".mineData.wallBlock")),
  124. Material.LAPIS_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  125. .getString("cellmines." + tier + ".mineData.floorBlock")));
  126. }
  127. }
  128. }
  129. });
  130. }
  131.  
  132. for (int i : middle) {
  133. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  134. inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  135. public void onItemClick(Player p, ClickType click) {
  136. // Empty doesn't do anything when clicked.
  137. }
  138. });
  139. }
  140.  
  141. for (int i : deactivate) {
  142. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
  143. inv.setSlot(i,
  144. InventoryAPI.createItem("&c&lDEACTIVATE CELL MINE",
  145. Arrays.asList("", "&7Click to deactivate your cell mine!", ""), item, null, 1),
  146. new ItemListener() {
  147. public void onItemClick(Player p, ClickType click) {
  148. p.getOpenInventory().close();
  149. }
  150. });
  151. }
  152.  
  153. inv.open(p);
  154. }
  155.  
  156. private String getProgress(int amount) {
  157. switch (amount) {
  158. case 0:
  159. return "&c⬛⬛⬛⬛";
  160. case 1:
  161. return "&a⬛&c⬛⬛⬛";
  162. case 2:
  163. return "&a⬛⬛&c⬛⬛";
  164. case 3:
  165. return "&a⬛⬛⬛&c⬛";
  166. case 4:
  167. return "&a⬛⬛⬛⬛";
  168. }
  169. return "";
  170. }
  171.  
  172. private String getProgress1(int amount) {
  173. switch (amount) {
  174. case 0:
  175. return "&c⬛⬛⬛";
  176. case 1:
  177. return "&a⬛&c⬛⬛";
  178. case 2:
  179. return "&a⬛⬛&c⬛";
  180. case 3:
  181. return "&a⬛⬛⬛";
  182. }
  183. return "";
  184.  
  185. }
  186.  
  187. @SuppressWarnings("deprecation")
  188. public void openManagement(Player p, String tieruuid, Block block, Location first) {
  189. Inventory inv = InventoryAPI
  190. .createInventory1(ChatColor.translateAlternateColorCodes('&', "Cell Mine Management"), 54);
  191.  
  192. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  193. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  194.  
  195. int blockupgrade = cfg.getInt("tier.info.upgrades.block upgrade");
  196. int sizeupgrade = cfg.getInt("tier.info.upgrades.size upgrade");
  197. int resetupgrade = cfg.getInt("tier.info.upgrades.reset upgrade");
  198. int potioneffectupgrade = cfg.getInt("tier.info.upgrades.potion upgrade");
  199.  
  200. IslandManager islandManager = SkyBlockAPI.getIslandManager();
  201.  
  202. Island island = islandManager.getIslandAtLocation(block.getLocation());
  203.  
  204. if (island == null) {
  205. return;
  206. }
  207.  
  208. inv.setSlot(4,
  209. InventoryAPI.createItem("&e&lCELL MINE MANAGEMENT",
  210. Arrays.asList("", "&fHere you can change and upgrade",
  211. "&fdifferent aspects for your cell mine!"),
  212. Material.BOOK, null, 1),
  213. new ItemListener() {
  214. public void onItemClick(Player p, ClickType click) {
  215.  
  216. }
  217. });
  218.  
  219. if (blockupgrade < 3) {
  220. if (blockupgrade == 0) {
  221. inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  222. Arrays.asList("", "&fUpgrade the block value for your mine!",
  223. "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  224. "&7➥ &fCurrent upgrade: &e&lIron Block", "&7➥ &fNext upgrade: &e&lGold Block",
  225. "&7➥ &fProgress: " + getProgress1(blockupgrade), "", "&7&nClick to upgrade!", ""),
  226. Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  227. public void onItemClick(Player p, ClickType click) {
  228. openBlockUpgrades(p, tieruuid, block, first);
  229. }
  230. });
  231. } else if (blockupgrade == 1) {
  232. inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  233. Arrays.asList("", "&fUpgrade the block value for your mine!",
  234. "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  235. "&7➥ &fCurrent upgrade: &e&lGold Block", "&7➥ &fNext upgrade: &e&lDiamond Block",
  236. "&7➥ &fProgress: " + getProgress1(blockupgrade), "", "&7&nClick to upgrade!", ""),
  237. Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  238. public void onItemClick(Player p, ClickType click) {
  239. openBlockUpgrades(p, tieruuid, block, first);
  240. }
  241. });
  242. } else if (blockupgrade == 2) {
  243. inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  244. Arrays.asList("", "&fUpgrade the block value for your mine!",
  245. "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  246. "&7➥ &fCurrent upgrade: &e&lDiamond Block", "&7➥ &fNext upgrade: &e&lEmerald Block",
  247. "&7➥ &fProgress: " + getProgress1(blockupgrade), "", "&7&nClick to upgrade!", ""),
  248. Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  249. public void onItemClick(Player p, ClickType click) {
  250. openBlockUpgrades(p, tieruuid, block, first);
  251. }
  252. });
  253. }
  254. } else if (blockupgrade == 3) {
  255. inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  256. Arrays.asList("", "&fUpgrade the block value for your mine!",
  257. "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  258. "&7➥ &fNext upgrade: &e&lMaxed", "&7➥ &fProgress: " + getProgress1(blockupgrade), ""),
  259. Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  260. public void onItemClick(Player p, ClickType click) {
  261.  
  262. }
  263. });
  264. }
  265.  
  266. if (sizeupgrade == 0) {
  267. inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  268. Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  269. "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l10x10x10",
  270. "&7➥ &fNext upgrade: &e&l15x15x15", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  271. "", "&7&nClick to upgrade!", ""),
  272. Material.EMERALD_ORE, null, 1), new ItemListener() {
  273. public void onItemClick(Player p, ClickType click) {
  274. openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  275. }
  276. });
  277. } else if (sizeupgrade == 1) {
  278. inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  279. Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  280. "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l15x15x15",
  281. "&7➥ &fNext upgrade: &e&l20x20x20", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  282. "", "&7&nClick to upgrade!", ""),
  283. Material.EMERALD_ORE, null, 1), new ItemListener() {
  284. public void onItemClick(Player p, ClickType click) {
  285. openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  286. }
  287. });
  288. } else if (sizeupgrade == 2) {
  289. inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  290. Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  291. "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l20x20x20",
  292. "&7➥ &fNext upgrade: &e&l25x25x25", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  293. "", "&7&nClick to upgrade!", ""),
  294. Material.EMERALD_ORE, null, 1), new ItemListener() {
  295. public void onItemClick(Player p, ClickType click) {
  296. openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  297. }
  298. });
  299. } else if (sizeupgrade == 3) {
  300. inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  301. Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  302. "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l25x25x25",
  303. "&7➥ &fNext upgrade: &e&l30x30x30", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  304. "", "&7&nClick to upgrade!", ""),
  305. Material.EMERALD_ORE, null, 1), new ItemListener() {
  306. public void onItemClick(Player p, ClickType click) {
  307. openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  308. }
  309. });
  310. } else if (sizeupgrade == 4) {
  311. inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  312. Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  313. "", "&a&lSTATUS:", "&7➥ &fNext upgrade: &e&lMaxed",
  314. "&7➥ &fProgress: " + getProgress(sizeupgrade), ""),
  315. Material.EMERALD_ORE, null, 1), new ItemListener() {
  316. public void onItemClick(Player p, ClickType click) {
  317.  
  318. }
  319. });
  320. }
  321.  
  322. if (resetupgrade == 0) {
  323. inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  324. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  325. "&fconstant uninterrupted mining!", "", "&6&lSTATUS:",
  326. "&7➥ &fCurrent upgrade: &e&lManual", "&7➥ &fNext upgrade: &e&lPercent (10%)",
  327. "&7➥ &fProgress: " + getProgress1(resetupgrade), "", "&7&nClick to upgrade!", ""),
  328. Material.WATCH, null, 1), new ItemListener() {
  329. public void onItemClick(Player p, ClickType click) {
  330. openResetUpgrades(p, tieruuid, block, first);
  331. }
  332. });
  333. } else if (resetupgrade == 1) {
  334. inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  335. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  336. "&fconstant uninterrupted mining!", "", "&6&lSTATUS:",
  337. "&7➥ &fCurrent upgrade: &e&lPercent (10%)", "&7➥ &fNext upgrade: &e&lPercent (20%)",
  338. "&7➥ &fProgress: " + getProgress1(resetupgrade), "", "&7&nClick to upgrade!", ""),
  339. Material.WATCH, null, 1), new ItemListener() {
  340. public void onItemClick(Player p, ClickType click) {
  341. openResetUpgrades(p, tieruuid, block, first);
  342. }
  343. });
  344. } else if (resetupgrade == 2) {
  345. inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  346. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  347. "&fconstant uninterrupted mining!", "", "&6&lSTATUS:",
  348. "&7➥ &fCurrent upgrade: &e&lPercent (20%)", "&7➥ &fNext upgrade: &e&lPercent (30%)",
  349. "&7➥ &fProgress: " + getProgress1(resetupgrade), "", "&7&nClick to upgrade!", ""),
  350. Material.WATCH, null, 1), new ItemListener() {
  351. public void onItemClick(Player p, ClickType click) {
  352. openResetUpgrades(p, tieruuid, block, first);
  353. }
  354. });
  355. } else if (resetupgrade == 3) {
  356. inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  357. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  358. "&fconstant uninterrupted mining!", "", "&6&lSTATUS:", "&7➥ &fNext upgrade: &e&lMaxed",
  359. "&7➥ &fProgress: " + getProgress1(resetupgrade), ""),
  360. Material.WATCH, null, 1), new ItemListener() {
  361. public void onItemClick(Player p, ClickType click) {
  362.  
  363. }
  364. });
  365. }
  366.  
  367. ItemStack owner = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  368. SkullMeta ownerskullmeta = (SkullMeta) owner.getItemMeta();
  369. ownerskullmeta.setOwner(p.getName());
  370. owner.setItemMeta(ownerskullmeta);
  371.  
  372. inv.setSlot(38,
  373. InventoryAPI.createItem("&3&lTEAM MANAGEMENT",
  374. Arrays.asList("",
  375. "&7Current players: &e&l" + cfg.getStringList("tier.info.members").size()
  376. + " &7of &e&l14",
  377. "&7Redeem tokens: &e&l" + cfg.getInt("tier.info.tokens"), ""),
  378. owner, null, 1),
  379. new ItemListener() {
  380. public void onItemClick(Player p, ClickType click) {
  381. openTeamManagement(p, tieruuid, block, first);
  382. }
  383. });
  384.  
  385. if (potioneffectupgrade == 0) {
  386. ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  387. inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  388. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  389. "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lNone",
  390. "&7➥ &fNext upgrade: &e&lSpeed I",
  391. "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  392. potion, null, 1), new ItemListener() {
  393. public void onItemClick(Player p, ClickType click) {
  394. openPotionEffectUpgrades(p, tieruuid, block, first);
  395. }
  396. });
  397. } else if (potioneffectupgrade == 1) {
  398. ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  399. inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  400. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  401. "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lSpeed I",
  402. "&7➥ &fNext upgrade: &e&lHaste I",
  403. "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  404. potion, null, 1), new ItemListener() {
  405. public void onItemClick(Player p, ClickType click) {
  406. openPotionEffectUpgrades(p, tieruuid, block, first);
  407. }
  408. });
  409. } else if (potioneffectupgrade == 2) {
  410. ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  411. inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  412. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  413. "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lHaste I",
  414. "&7➥ &fNext upgrade: &e&lSpeed II",
  415. "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  416. potion, null, 1), new ItemListener() {
  417. public void onItemClick(Player p, ClickType click) {
  418. openPotionEffectUpgrades(p, tieruuid, block, first);
  419. }
  420. });
  421. } else if (potioneffectupgrade == 3) {
  422. ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  423. inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  424. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  425. "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lSpeed II",
  426. "&7➥ &fNext upgrade: &e&lHaste II",
  427. "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  428. potion, null, 1), new ItemListener() {
  429. public void onItemClick(Player p, ClickType click) {
  430. openPotionEffectUpgrades(p, tieruuid, block, first);
  431. }
  432. });
  433. } else if (potioneffectupgrade == 4) {
  434. ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  435. inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  436. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  437. "", "&d&lSTATUS:", "&7➥ &fNext upgrade: &e&lMaxed",
  438. "&7➥ &fProgress: " + getProgress(potioneffectupgrade), ""),
  439. potion, null, 1), new ItemListener() {
  440. public void onItemClick(Player p, ClickType click) {
  441.  
  442. }
  443. });
  444. }
  445.  
  446. inv.setSlot(42,
  447. InventoryAPI.createItem("&c&lREMOVE CELL MINE",
  448. Arrays.asList("", "&fRemoving your cell mine will not affect",
  449. "&fits current upgrades and data on it!"),
  450. Material.BARRIER, null, 1),
  451. new ItemListener() {
  452. public void onItemClick(Player p, ClickType click) {
  453. // CellMines.getAPI().deleteMine(p,
  454. // cfg.getString("tier.info.name"), tieruuid, block,
  455. // first);
  456. // p.getOpenInventory().close();
  457. openCellRemoval(p, cfg.getString("tier.info.name"), tieruuid, block, first);
  458. }
  459. });
  460.  
  461. for (int i = 0; i < 54; i++) {
  462. if (inv.getSlot(i) == null) {
  463. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  464. inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  465. public void onItemClick(Player p, ClickType click) {
  466. // Empty doesn't do anything when clicked.
  467. }
  468. });
  469. }
  470. }
  471.  
  472. inv.open(p);
  473. }
  474.  
  475. @SuppressWarnings("deprecation")
  476. public void openBlockUpgrades(Player p, String tieruuid, Block block, Location first) {
  477. Inventory inv = InventoryAPI.createInventory(
  478. ChatColor.translateAlternateColorCodes('&', "&8&lCELL BLOCK UPGRADES"), InventoryType.DISPENSER);
  479.  
  480. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  481. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  482.  
  483. int level = cfg.getInt("tier.info.upgrades.block upgrade");
  484.  
  485. ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  486. SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  487. upgradeskullmeta.setOwner(p.getName());
  488. upgrade.setItemMeta(upgradeskullmeta);
  489.  
  490. if (level == 0) {
  491. inv.setSlot(4,
  492. InventoryAPI.createItem("&b&lBLOCK UPGRADE #1",
  493. Arrays.asList("", "&fUpgrade the block value for your mine!",
  494. "&fHigher valued blocks equals more money!", "", "&b&lINFORMATION:",
  495. "&7➥ &fBlock: &e&lGold Block", "&7➥ &fProgress: &a⬛&c⬛⬛", "", "&b&lREQUIREMENTS:",
  496. "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  497. .getInt("upgrades.blockupgrade.first_upgrade.price"),
  498. "", "&7&nClick to upgrade!", ""),
  499. upgrade, null, 1),
  500. new ItemListener() {
  501. public void onItemClick(Player p, ClickType click) {
  502. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  503. .getPlugin("TokenManager");
  504. Player player = Bukkit.getPlayerExact(p.getName());
  505. long balance = tokenManager.getTokens(player).orElse(0);
  506. if (balance >= CellMines.getSystem().getConfig()
  507. .getInt("upgrades.blockupgrade.first_upgrade.price")) {
  508. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  509. .getInt("upgrades.blockupgrade.first_upgrade.price"));
  510. int size = 0;
  511. if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  512. size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  513. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  514. size = 15;
  515. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  516. size = 20;
  517. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  518. size = 25;
  519. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  520. size = 30;
  521. }
  522. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  523. Material.valueOf(CellMines.getSystem().getConfig()
  524. .getString("cellmines.Cell.mineData.wallBlock")),
  525. Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  526. .getString("cellmines.Cell.mineData.floorBlock")));
  527. // Location second = new
  528. // Location(block.getWorld(), block.getX() +
  529. // size, block.getY(), block.getZ() - size);
  530. // CellMines.getSystem().getGenerator().getInside(first,
  531. // second, size, Material.GOLD_BLOCK);
  532. cfg.set("tier.info.upgrades.block upgrade", level + 1);
  533. try {
  534. cfg.save(tierdata);
  535. openManagement(p, tieruuid, block, first);
  536. } catch (IOException e) {
  537. e.printStackTrace();
  538. }
  539. }
  540. }
  541. });
  542. } else if (level == 1) {
  543. inv.setSlot(4, InventoryAPI.createItem("&b&lBLOCK UPGRADE #2",
  544. Arrays.asList("", "&fUpgrade the block value for your mine!",
  545. "&fHigher valued blocks equals more money!", "", "&b&lINFORMATION:",
  546. "&7➥ &fBlock: &e&lDiamond Block", "&7➥ &fProgress: &a⬛⬛&c⬛", "", "&b&lREQUIREMENTS:",
  547. "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  548. .getInt("upgrades.blockupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  549. upgrade, null, 1), new ItemListener() {
  550. public void onItemClick(Player p, ClickType click) {
  551. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  552. .getPlugin("TokenManager");
  553. Player player = Bukkit.getPlayerExact(p.getName());
  554. long balance = tokenManager.getTokens(player).orElse(0);
  555. if (balance >= CellMines.getSystem().getConfig()
  556. .getInt("upgrades.blockupgrade.second_upgrade.price")) {
  557. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  558. .getInt("upgrades.blockupgrade.second_upgrade.price"));
  559. int size = 0;
  560. if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  561. size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  562. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  563. size = 15;
  564. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  565. size = 20;
  566. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  567. size = 25;
  568. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  569. size = 30;
  570. }
  571. // Location second = new
  572. // Location(block.getWorld(), block.getX() +
  573. // size, block.getY(), block.getZ() - size);
  574. // CellMines.getSystem().getGenerator().getInside(first,
  575. // second, size, Material.DIAMOND_BLOCK);
  576. try {
  577. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  578. Material.valueOf(CellMines.getSystem().getConfig()
  579. .getString("cellmines.Cell.mineData.wallBlock")),
  580. Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  581. .getString("cellmines.Cell.mineData.floorBlock")));
  582. } catch (Exception e) {
  583. e.printStackTrace();
  584. }
  585. cfg.set("tier.info.upgrades.block upgrade", level + 1);
  586. try {
  587. cfg.save(tierdata);
  588. openManagement(p, tieruuid, block, first);
  589. } catch (IOException e) {
  590. e.printStackTrace();
  591. }
  592. }
  593. }
  594. });
  595. } else if (level == 2) {
  596. inv.setSlot(4,
  597. InventoryAPI.createItem("&b&lBLOCK UPGRADE #3",
  598. Arrays.asList("", "&fUpgrade the block value for your mine!",
  599. "&fHigher valued blocks equals more money!", "", "&b&lINFORMATION:",
  600. "&7➥ &fBlock: &e&lEmerald Block", "&7➥ &fProgress: &a⬛⬛⬛", "", "&b&lREQUIREMENTS:",
  601. "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  602. .getInt("upgrades.blockupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  603. upgrade, null, 1),
  604. new ItemListener() {
  605. public void onItemClick(Player p, ClickType click) {
  606. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  607. .getPlugin("TokenManager");
  608. Player player = Bukkit.getPlayerExact(p.getName());
  609. long balance = tokenManager.getTokens(player).orElse(0);
  610. if (balance >= CellMines.getSystem().getConfig()
  611. .getInt("upgrades.blockupgrade.third_upgrade.price")) {
  612. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  613. .getInt("upgrades.blockupgrade.third_upgrade.price"));
  614. int size = 0;
  615. if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  616. size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  617. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  618. size = 15;
  619. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  620. size = 20;
  621. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  622. size = 25;
  623. } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  624. size = 30;
  625. }
  626. // Location second = new
  627. // Location(block.getWorld(), block.getX() +
  628. // size, block.getY(), block.getZ() - size);
  629. // CellMines.getSystem().getGenerator().getInside(first,
  630. // second, size, Material.EMERALD_BLOCK);
  631. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  632. Material.valueOf(CellMines.getSystem().getConfig()
  633. .getString("cellmines.Cell.mineData.wallBlock")),
  634. Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  635. .getString("cellmines.Cell.mineData.floorBlock")));
  636. cfg.set("tier.info.upgrades.block upgrade", level + 1);
  637. try {
  638. cfg.save(tierdata);
  639. openManagement(p, tieruuid, block, first);
  640. } catch (IOException e) {
  641. e.printStackTrace();
  642. }
  643. }
  644. }
  645. });
  646. }
  647.  
  648. for (int i = 0; i < 9; i++) {
  649. if (inv.getSlot(i) == null) {
  650. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  651. inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  652. public void onItemClick(Player p, ClickType click) {
  653. // Empty doesn't do anything when clicked.
  654. }
  655. });
  656. }
  657. }
  658.  
  659. inv.open(p);
  660. }
  661.  
  662. @SuppressWarnings("deprecation")
  663. public void openSizeUpgrades(Player p, String tieruuid, Block block, Location first, IslandManager islandManager, Island island) {
  664. Inventory inv = InventoryAPI.createInventory(
  665. ChatColor.translateAlternateColorCodes('&', "&8&lCELL SIZE UPGRADES"), InventoryType.DISPENSER);
  666.  
  667. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  668. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  669.  
  670. int level = cfg.getInt("tier.info.upgrades.size upgrade");
  671.  
  672. ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  673. SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  674. upgradeskullmeta.setOwner(p.getName());
  675. upgrade.setItemMeta(upgradeskullmeta);
  676.  
  677. if (level == 0) {
  678. inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE #1",
  679. Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  680. "&a&lINFORMATION:", "&7➥ &fSize: &e&l15x15x15", "&7➥ &fProgress: &a⬛&c⬛⬛⬛", "",
  681. "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  682. .getInt("upgrades.sizeupgrade.first_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  683. upgrade, null, 1), new ItemListener() {
  684. public void onItemClick(Player p, ClickType click) {
  685. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  686. .getPlugin("TokenManager");
  687. Player player = Bukkit.getPlayerExact(p.getName());
  688. long balance = tokenManager.getTokens(player).orElse(0);
  689. if (balance >= CellMines.getSystem().getConfig()
  690. .getInt("upgrades.sizeupgrade.first_upgrade.price")) {
  691. Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  692. Location corner = new Location(block.getWorld(), block.getX() + 15, block.getY() - 15,
  693. block.getZ() - 15);
  694.  
  695. int count = 0;
  696.  
  697. for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  698. for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  699. for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  700. Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  701. if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  702. continue;
  703. } else {
  704. count++;
  705. }
  706. }
  707. }
  708. }
  709.  
  710. if (count == 0) {
  711. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  712. .getInt("upgrades.sizeupgrade.first_upgrade.price"));
  713. if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  714. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  715. Material.valueOf(CellMines.getSystem().getConfig()
  716. .getString("cellmines.Cell.mineData.wallBlock")),
  717. Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  718. .getString("cellmines.Cell.mineData.floorBlock")));
  719. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  720. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  721. Material.valueOf(CellMines.getSystem().getConfig()
  722. .getString("cellmines.Cell.mineData.wallBlock")),
  723. Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  724. .getString("cellmines.Cell.mineData.floorBlock")));
  725. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  726. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  727. Material.valueOf(CellMines.getSystem().getConfig()
  728. .getString("cellmines.Cell.mineData.wallBlock")),
  729. Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  730. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  731. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  732. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  733. Material.valueOf(CellMines.getSystem().getConfig()
  734. .getString("cellmines.Cell.mineData.wallBlock")),
  735. Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  736. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  737. }
  738. cfg.set("tier.info.upgrades.size upgrade", level + 1);
  739. try {
  740. cfg.save(tierdata);
  741. openManagement(p, tieruuid, block, first);
  742. } catch (IOException e) {
  743. e.printStackTrace();
  744. }
  745. } else {
  746. p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  747. "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  748. }
  749. }
  750. }
  751. });
  752. } else if (level == 1) {
  753. inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE #2",
  754. Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  755. "&a&lINFORMATION:", "&7➥ &fSize: &e&l20x20x20", "&7➥ &fProgress: &a⬛⬛&c⬛⬛", "",
  756. "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  757. .getInt("upgrades.sizeupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  758. upgrade, null, 1), new ItemListener() {
  759. public void onItemClick(Player p, ClickType click) {
  760. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  761. .getPlugin("TokenManager");
  762. Player player = Bukkit.getPlayerExact(p.getName());
  763. long balance = tokenManager.getTokens(player).orElse(0);
  764. if (balance >= CellMines.getSystem().getConfig()
  765. .getInt("upgrades.sizeupgrade.second_upgrade.price")) {
  766. Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  767. Location corner = new Location(block.getWorld(), block.getX() + 20, block.getY() - 20,
  768. block.getZ() - 20);
  769.  
  770. int count = 0;
  771.  
  772. for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  773. for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  774. for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  775. Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  776. if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  777. continue;
  778. } else {
  779. count++;
  780. }
  781. }
  782. }
  783. }
  784.  
  785. if (count == 0) {
  786. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  787. .getInt("upgrades.sizeupgrade.second_upgrade.price"));
  788. if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  789. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  790. Material.valueOf(CellMines.getSystem().getConfig()
  791. .getString("cellmines.Cell.mineData.wallBlock")),
  792. Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  793. .getString("cellmines.Cell.mineData.floorBlock")));
  794. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  795. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  796. Material.valueOf(CellMines.getSystem().getConfig()
  797. .getString("cellmines.Cell.mineData.wallBlock")),
  798. Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  799. .getString("cellmines.Cell.mineData.floorBlock")));
  800. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  801. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  802. Material.valueOf(CellMines.getSystem().getConfig()
  803. .getString("cellmines.Cell.mineData.wallBlock")),
  804. Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  805. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  806. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  807. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  808. Material.valueOf(CellMines.getSystem().getConfig()
  809. .getString("cellmines.Cell.mineData.wallBlock")),
  810. Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  811. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  812. }
  813. cfg.set("tier.info.upgrades.size upgrade", level + 1);
  814. try {
  815. cfg.save(tierdata);
  816. openManagement(p, tieruuid, block, first);
  817. } catch (IOException e) {
  818. e.printStackTrace();
  819. }
  820. } else {
  821. p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  822. "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  823. }
  824. }
  825. }
  826. });
  827. } else if (level == 2) {
  828. inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE #3",
  829. Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  830. "&a&lINFORMATION:", "&7➥ &fSize: &e&l25x25x25", "&7➥ &fProgress: &a⬛⬛⬛&c⬛", "",
  831. "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  832. .getInt("upgrades.sizeupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  833. upgrade, null, 1), new ItemListener() {
  834. public void onItemClick(Player p, ClickType click) {
  835. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  836. .getPlugin("TokenManager");
  837. Player player = Bukkit.getPlayerExact(p.getName());
  838. long balance = tokenManager.getTokens(player).orElse(0);
  839. if (balance >= CellMines.getSystem().getConfig()
  840. .getInt("upgrades.sizeupgrade.third_upgrade.price")) {
  841. Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  842. Location corner = new Location(block.getWorld(), block.getX() + 25, block.getY() - 25,
  843. block.getZ() - 25);
  844.  
  845. int count = 0;
  846.  
  847. for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  848. for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  849. for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  850. Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  851. if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  852. continue;
  853. } else {
  854. count++;
  855. }
  856. }
  857. }
  858. }
  859.  
  860. if (count == 0) {
  861. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  862. .getInt("upgrades.sizeupgrade.third_upgrade.price"));
  863. if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  864. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  865. Material.valueOf(CellMines.getSystem().getConfig()
  866. .getString("cellmines.Cell.mineData.wallBlock")),
  867. Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  868. .getString("cellmines.Cell.mineData.floorBlock")));
  869. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  870. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  871. Material.valueOf(CellMines.getSystem().getConfig()
  872. .getString("cellmines.Cell.mineData.wallBlock")),
  873. Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  874. .getString("cellmines.Cell.mineData.floorBlock")));
  875. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  876. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  877. Material.valueOf(CellMines.getSystem().getConfig()
  878. .getString("cellmines.Cell.mineData.wallBlock")),
  879. Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  880. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  881. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  882. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  883. Material.valueOf(CellMines.getSystem().getConfig()
  884. .getString("cellmines.Cell.mineData.wallBlock")),
  885. Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  886. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  887. }
  888. cfg.set("tier.info.upgrades.size upgrade", level + 1);
  889. try {
  890. cfg.save(tierdata);
  891. openManagement(p, tieruuid, block, first);
  892. } catch (IOException e) {
  893. e.printStackTrace();
  894. }
  895. } else {
  896. p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  897. "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  898. }
  899. }
  900. }
  901. });
  902. } else if (level == 3) {
  903. inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE 43",
  904. Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  905. "&a&lINFORMATION:", "&7➥ &fSize: &e&l30x30x30", "&7➥ &fProgress: &a⬛⬛⬛⬛", "",
  906. "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  907. .getInt("upgrades.sizeupgrade.fourth_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  908. upgrade, null, 1), new ItemListener() {
  909. public void onItemClick(Player p, ClickType click) {
  910. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  911. .getPlugin("TokenManager");
  912. Player player = Bukkit.getPlayerExact(p.getName());
  913. long balance = tokenManager.getTokens(player).orElse(0);
  914. if (balance >= CellMines.getSystem().getConfig()
  915. .getInt("upgrades.sizeupgrade.fourth_upgrade.price")) {
  916. Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  917. Location corner = new Location(block.getWorld(), block.getX() + 15, block.getY() - 15,
  918. block.getZ() - 15);
  919.  
  920. int count = 0;
  921.  
  922. for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  923. for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  924. for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  925. Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  926. if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  927. continue;
  928. } else {
  929. count++;
  930. }
  931. }
  932. }
  933. }
  934.  
  935. if (count == 0) {
  936. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  937. .getInt("upgrades.sizeupgrade.fourth_upgrade.price"));
  938. if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  939. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  940. Material.valueOf(CellMines.getSystem().getConfig()
  941. .getString("cellmines.Cell.mineData.wallBlock")),
  942. Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  943. .getString("cellmines.Cell.mineData.floorBlock")));
  944. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  945. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  946. Material.valueOf(CellMines.getSystem().getConfig()
  947. .getString("cellmines.Cell.mineData.wallBlock")),
  948. Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  949. .getString("cellmines.Cell.mineData.floorBlock")));
  950. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  951. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  952. Material.valueOf(CellMines.getSystem().getConfig()
  953. .getString("cellmines.Cell.mineData.wallBlock")),
  954. Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  955. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  956. } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  957. CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  958. Material.valueOf(CellMines.getSystem().getConfig()
  959. .getString("cellmines.Cell.mineData.wallBlock")),
  960. Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  961. .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  962. }
  963. cfg.set("tier.info.upgrades.size upgrade", level + 1);
  964. try {
  965. cfg.save(tierdata);
  966. openManagement(p, tieruuid, block, first);
  967. } catch (IOException e) {
  968. e.printStackTrace();
  969. }
  970. } else {
  971. p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  972. "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  973. }
  974. }
  975. }
  976. });
  977. }
  978.  
  979. for (int i = 0; i < 9; i++) {
  980. if (inv.getSlot(i) == null) {
  981. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  982. inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  983. public void onItemClick(Player p, ClickType click) {
  984. // Empty doesn't do anything when clicked.
  985. }
  986. });
  987. }
  988. }
  989.  
  990. inv.open(p);
  991. }
  992.  
  993. @SuppressWarnings("deprecation")
  994. public void openResetUpgrades(Player p, String tieruuid, Block block, Location first) {
  995. Inventory inv = InventoryAPI.createInventory(
  996. ChatColor.translateAlternateColorCodes('&', "&8&lCELL RESET UPGRADES"), InventoryType.DISPENSER);
  997.  
  998. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  999. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  1000.  
  1001. int level = cfg.getInt("tier.info.upgrades.reset upgrade");
  1002.  
  1003. ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1004. SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  1005. upgradeskullmeta.setOwner(p.getName());
  1006. upgrade.setItemMeta(upgradeskullmeta);
  1007.  
  1008. if (level == 0) {
  1009. inv.setSlot(4, InventoryAPI.createItem("&6&lRESET UPGRADE #1",
  1010. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  1011. "&fconstant ininterrupted mining!", "", "&6&lINFORMATION:",
  1012. "&7➥ &fReset Type: &e&lPercent (10%)", "&7➥ &fProgress: &a⬛&c⬛⬛", "", "&6&lREQUIREMENTS:",
  1013. "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1014. .getInt("upgrades.resetupgrade.first_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1015. upgrade, null, 1), new ItemListener() {
  1016. public void onItemClick(Player p, ClickType click) {
  1017. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1018. .getPlugin("TokenManager");
  1019. Player player = Bukkit.getPlayerExact(p.getName());
  1020. long balance = tokenManager.getTokens(player).orElse(0);
  1021. if (balance >= CellMines.getSystem().getConfig()
  1022. .getInt("upgrades.resetupgrade.first_upgrade.price")) {
  1023. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1024. .getInt("upgrades.resetupgrade.first_upgrade.price"));
  1025. cfg.set("tier.info.upgrades.reset upgrade", level + 1);
  1026. try {
  1027. cfg.save(tierdata);
  1028. openManagement(p, tieruuid, block, first);
  1029. } catch (IOException e) {
  1030. e.printStackTrace();
  1031. }
  1032. }
  1033. }
  1034. });
  1035. } else if (level == 1) {
  1036. inv.setSlot(4, InventoryAPI.createItem("&6&lRESET UPGRADE #2",
  1037. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  1038. "&fconstant ininterrupted mining!", "", "&6&lINFORMATION:",
  1039. "&7➥ &fReset Type: &e&lPercent (20%)", "&7➥ &fProgress: &a⬛⬛&c⬛", "", "&6&lREQUIREMENTS:",
  1040. "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1041. .getInt("upgrades.resetupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1042. upgrade, null, 1), new ItemListener() {
  1043. public void onItemClick(Player p, ClickType click) {
  1044. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1045. .getPlugin("TokenManager");
  1046. Player player = Bukkit.getPlayerExact(p.getName());
  1047. long balance = tokenManager.getTokens(player).orElse(0);
  1048. if (balance >= CellMines.getSystem().getConfig()
  1049. .getInt("upgrades.resetupgrade.second_upgrade.price")) {
  1050. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1051. .getInt("upgrades.resetupgrade.second_upgrade.price"));
  1052. cfg.set("tier.info.upgrades.reset upgrade", level + 1);
  1053. try {
  1054. cfg.save(tierdata);
  1055. openManagement(p, tieruuid, block, first);
  1056. } catch (IOException e) {
  1057. e.printStackTrace();
  1058. }
  1059. }
  1060. }
  1061. });
  1062. } else if (level == 2) {
  1063. inv.setSlot(4, InventoryAPI.createItem("&6&lRESET UPGRADE #3",
  1064. Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  1065. "&fconstant ininterrupted mining!", "", "&6&lINFORMATION:",
  1066. "&7➥ &fReset Type: &e&lPercent (30%)", "&7➥ &fProgress: &a⬛⬛⬛", "", "&6&lREQUIREMENTS:",
  1067. "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1068. .getInt("upgrades.resetupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1069. upgrade, null, 1), new ItemListener() {
  1070. public void onItemClick(Player p, ClickType click) {
  1071. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1072. .getPlugin("TokenManager");
  1073. Player player = Bukkit.getPlayerExact(p.getName());
  1074. long balance = tokenManager.getTokens(player).orElse(0);
  1075. if (balance >= CellMines.getSystem().getConfig()
  1076. .getInt("upgrades.resetupgrade.third_upgrade.price")) {
  1077. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1078. .getInt("upgrades.resetupgrade.third_upgrade.price"));
  1079. cfg.set("tier.info.upgrades.reset upgrade", level + 1);
  1080. try {
  1081. cfg.save(tierdata);
  1082. openManagement(p, tieruuid, block, first);
  1083. } catch (IOException e) {
  1084. e.printStackTrace();
  1085. }
  1086. }
  1087. }
  1088. });
  1089. }
  1090.  
  1091. for (int i = 0; i < 9; i++) {
  1092. if (inv.getSlot(i) == null) {
  1093. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1094. inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  1095. public void onItemClick(Player p, ClickType click) {
  1096. // Empty doesn't do anything when clicked.
  1097. }
  1098. });
  1099. }
  1100. }
  1101.  
  1102. inv.open(p);
  1103. }
  1104.  
  1105. @SuppressWarnings("deprecation")
  1106. public void openTeamManagement(Player p, String tieruuid, Block block, Location first) {
  1107. Inventory inv = InventoryAPI
  1108. .createInventory1(ChatColor.translateAlternateColorCodes('&', "&7Cell Team Management"), 54);
  1109.  
  1110. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  1111. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  1112.  
  1113. ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1114. SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  1115. upgradeskullmeta.setOwner(p.getName());
  1116. upgrade.setItemMeta(upgradeskullmeta);
  1117.  
  1118. ItemStack item = new ItemStack(Material.BOOK);
  1119. inv.setSlot(4, InventoryAPI.createItem("&3&lTEAM MANAGEMENT",
  1120. Arrays.asList("", "&7Click to purchase a redeem token!", "&7Redeem tokens cost &d&l20,000 &7tokens!"),
  1121. item, null, 1), new ItemListener() {
  1122. public void onItemClick(Player p, ClickType click) {
  1123. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager().getPlugin("TokenManager");
  1124. Player player = Bukkit.getPlayerExact(p.getName());
  1125. long balance = tokenManager.getTokens(player).orElse(0);
  1126. if (balance >= 20000) {
  1127. tokenManager.setTokens(p, balance - 20000);
  1128. cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") + 1);
  1129. try {
  1130. cfg.save(tierdata);
  1131. openTeamManagement(p, tieruuid, block, first);
  1132. } catch (IOException e) {
  1133. e.printStackTrace();
  1134. }
  1135. }
  1136. }
  1137. });
  1138.  
  1139. IslandManager islandManager = SkyBlockAPI.getIslandManager();
  1140. WorldManager worldManager = SkyBlock.getInstance().getWorldManager();
  1141. if (!worldManager.isIslandWorld(block.getWorld())) {
  1142. return;
  1143. }
  1144. Island island = islandManager.getIsland(p);
  1145. Set<UUID> islandmembers = island.getPlayersWithRole(IslandRole.MEMBER);
  1146. for (UUID operator : island.getPlayersWithRole(IslandRole.OPERATOR)) {
  1147. islandmembers.add(operator);
  1148. }
  1149. for (UUID owner : island.getPlayersWithRole(IslandRole.OWNER)) {
  1150. islandmembers.add(owner);
  1151. }
  1152. islandmembers.remove(UUID.fromString(cfg.getString("tier.info.owner.uuid")));
  1153.  
  1154. int current = 0;
  1155.  
  1156. int[] memberslots = { 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 38, 39, 40, 41, 42 };
  1157.  
  1158. List<String> members = cfg.getStringList("tier.info.members");
  1159.  
  1160. for (UUID member : islandmembers) {
  1161. if (member != UUID.fromString(cfg.getString("tier.info.owner.uuid"))) {
  1162. String access = "";
  1163. if (members.contains(member.toString())) {
  1164. access = "&a&lGRANTED";
  1165. } else {
  1166. access = "&c&lDENIED";
  1167. }
  1168. if (isPlayerOnline(member.toString())) {
  1169. ItemStack memberhead = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1170. SkullMeta memberheadmeta = (SkullMeta) memberhead.getItemMeta();
  1171. memberheadmeta.setOwner(Bukkit.getPlayer(member).getName());
  1172. memberhead.setItemMeta(memberheadmeta);
  1173. inv.setSlot(memberslots[current],
  1174. InventoryAPI.createItem("&e&l" + Bukkit.getPlayer(member).getName(),
  1175. Arrays.asList("&7This player has access " + access, "",
  1176. "&7Left click to give access", "&7Right click to remove access", "",
  1177. "&7You have &e&l" + cfg.getInt("tier.info.tokens") + " &7redeem tokens!",
  1178. ""),
  1179. memberhead, null, 1),
  1180. new ItemListener() {
  1181. public void onItemClick(Player p, ClickType click) {
  1182. if (click == ClickType.LEFT) {
  1183. if (cfg.getInt("tier.info.tokens") > 0) {
  1184. if (!members.contains(member.toString())) {
  1185. cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") - 1);
  1186. members.add(member.toString());
  1187. cfg.set("tier.info.members", members);
  1188. try {
  1189. cfg.save(tierdata);
  1190. openTeamManagement(p, tieruuid, block, first);
  1191. } catch (IOException e) {
  1192. e.printStackTrace();
  1193. }
  1194. }
  1195. }
  1196. } else if (click == ClickType.RIGHT) {
  1197. if (members.contains(member.toString())) {
  1198. cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") + 1);
  1199. members.remove(member.toString());
  1200. cfg.set("tier.info.members", members);
  1201. try {
  1202. cfg.save(tierdata);
  1203. openTeamManagement(p, tieruuid, block, first);
  1204. } catch (IOException e) {
  1205. e.printStackTrace();
  1206. }
  1207. }
  1208. }
  1209. }
  1210. });
  1211. current++;
  1212. } else {
  1213. ItemStack memberhead = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1214. SkullMeta memberheadmeta = (SkullMeta) memberhead.getItemMeta();
  1215. memberheadmeta.setOwner(Bukkit.getOfflinePlayer(member).getName());
  1216. memberhead.setItemMeta(memberheadmeta);
  1217. inv.setSlot(memberslots[current],
  1218. InventoryAPI.createItem("&e&l" + Bukkit.getOfflinePlayer(member).getName(),
  1219. Arrays.asList("&7This player has access " + access, "",
  1220. "&7Left click to give access", "&7Right click to remove access", "",
  1221. "&7You have &e&l" + cfg.getInt("tier.info.tokens") + " &7redeem tokens!",
  1222. ""),
  1223. memberhead, null, 1),
  1224. new ItemListener() {
  1225. public void onItemClick(Player p, ClickType click) {
  1226. if (click == ClickType.LEFT) {
  1227. if (cfg.getInt("tier.info.tokens") > 0) {
  1228. if (!members.contains(member.toString())) {
  1229. cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") - 1);
  1230. members.add(member.toString());
  1231. cfg.set("tier.info.members", members);
  1232. try {
  1233. cfg.save(tierdata);
  1234. openTeamManagement(p, tieruuid, block, first);
  1235. } catch (IOException e) {
  1236. e.printStackTrace();
  1237. }
  1238. }
  1239. }
  1240. } else if (click == ClickType.RIGHT) {
  1241. if (members.contains(member.toString())) {
  1242. cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") + 1);
  1243. members.remove(member.toString());
  1244. cfg.set("tier.info.members", members);
  1245. try {
  1246. cfg.save(tierdata);
  1247. openTeamManagement(p, tieruuid, block, first);
  1248. } catch (IOException e) {
  1249. e.printStackTrace();
  1250. }
  1251. }
  1252. }
  1253. }
  1254. });
  1255. current++;
  1256. }
  1257. }
  1258. }
  1259.  
  1260. for (int i = 0; i < 54; i++) {
  1261. if (inv.getSlot(i) == null && !contains(memberslots, i)) {
  1262. ItemStack item1 = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1263. inv.setSlot(i, InventoryAPI.createItem("&a", null, item1, null, 1), new ItemListener() {
  1264. public void onItemClick(Player p, ClickType click) {
  1265. // Empty doesn't do anything when clicked.
  1266. }
  1267. });
  1268. }
  1269. }
  1270.  
  1271. inv.open(p);
  1272. }
  1273.  
  1274. public static boolean isPlayerOnline(String s) {
  1275. Player p = Bukkit.getPlayer(UUID.fromString(s));
  1276. if (!(p == null)) {
  1277. return true;
  1278. }
  1279. return false;
  1280. }
  1281.  
  1282. public boolean contains(final int[] array, final int key) {
  1283. return ArrayUtils.contains(array, key);
  1284. }
  1285.  
  1286. @SuppressWarnings("deprecation")
  1287. public void openPotionEffectUpgrades(Player p, String tieruuid, Block block, Location first) {
  1288. Inventory inv = InventoryAPI.createInventory(
  1289. ChatColor.translateAlternateColorCodes('&', "&8&lCELL POTION UPGRADES"), InventoryType.DISPENSER);
  1290.  
  1291. File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  1292. FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  1293.  
  1294. int level = cfg.getInt("tier.info.upgrades.potion upgrade");
  1295.  
  1296. ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1297. SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  1298. upgradeskullmeta.setOwner(p.getName());
  1299. upgrade.setItemMeta(upgradeskullmeta);
  1300.  
  1301. if (level == 0) {
  1302. inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #1",
  1303. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1304. "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lSpeed I", "&7➥ &fProgress: &a⬛&c⬛⬛⬛", "",
  1305. "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1306. .getInt("upgrades.potionupgrade.first_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1307. upgrade, null, 1), new ItemListener() {
  1308. public void onItemClick(Player p, ClickType click) {
  1309. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1310. .getPlugin("TokenManager");
  1311. Player player = Bukkit.getPlayerExact(p.getName());
  1312. long balance = tokenManager.getTokens(player).orElse(0);
  1313. if (balance >= CellMines.getSystem().getConfig()
  1314. .getInt("upgrades.potionupgrade.first_upgrade.price")) {
  1315. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1316. .getInt("upgrades.potionupgrade.first_upgrade.price"));
  1317. cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1318. try {
  1319. cfg.save(tierdata);
  1320. openManagement(p, tieruuid, block, first);
  1321. } catch (IOException e) {
  1322. e.printStackTrace();
  1323. }
  1324. }
  1325. }
  1326. });
  1327. } else if (level == 1) {
  1328. inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #2",
  1329. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1330. "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lHaste I", "&7➥ &fProgress: &a⬛⬛&c⬛⬛", "",
  1331. "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1332. .getInt("upgrades.potionupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1333. upgrade, null, 1), new ItemListener() {
  1334. public void onItemClick(Player p, ClickType click) {
  1335. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1336. .getPlugin("TokenManager");
  1337. Player player = Bukkit.getPlayerExact(p.getName());
  1338. long balance = tokenManager.getTokens(player).orElse(0);
  1339. if (balance >= CellMines.getSystem().getConfig()
  1340. .getInt("upgrades.potionupgrade.second_upgrade.price")) {
  1341. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1342. .getInt("upgrades.potionupgrade.second_upgrade.price"));
  1343. cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1344. try {
  1345. cfg.save(tierdata);
  1346. openManagement(p, tieruuid, block, first);
  1347. } catch (IOException e) {
  1348. e.printStackTrace();
  1349. }
  1350. }
  1351. }
  1352. });
  1353. } else if (level == 2) {
  1354. inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #3",
  1355. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1356. "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lSpeed II", "&7➥ &fProgress: &a⬛⬛⬛&c⬛", "",
  1357. "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1358. .getInt("upgrades.potionupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1359. upgrade, null, 1), new ItemListener() {
  1360. public void onItemClick(Player p, ClickType click) {
  1361. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1362. .getPlugin("TokenManager");
  1363. Player player = Bukkit.getPlayerExact(p.getName());
  1364. long balance = tokenManager.getTokens(player).orElse(0);
  1365. if (balance >= CellMines.getSystem().getConfig()
  1366. .getInt("upgrades.potionupgrade.third_upgrade.price")) {
  1367. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1368. .getInt("upgrades.potionupgrade.third_upgrade.price"));
  1369. cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1370. try {
  1371. cfg.save(tierdata);
  1372. openManagement(p, tieruuid, block, first);
  1373. } catch (IOException e) {
  1374. e.printStackTrace();
  1375. }
  1376. }
  1377. }
  1378. });
  1379. } else if (level == 3) {
  1380. inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #4",
  1381. Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1382. "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lHaste II", "&7➥ &fProgress: &a⬛⬛⬛⬛", "",
  1383. "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1384. .getInt("upgrades.potionupgrade.fourth_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1385. upgrade, null, 1), new ItemListener() {
  1386. public void onItemClick(Player p, ClickType click) {
  1387. TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1388. .getPlugin("TokenManager");
  1389. Player player = Bukkit.getPlayerExact(p.getName());
  1390. long balance = tokenManager.getTokens(player).orElse(0);
  1391. if (balance >= CellMines.getSystem().getConfig()
  1392. .getInt("upgrades.potionupgrade.fourth_upgrade.price")) {
  1393. tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1394. .getInt("upgrades.potionupgrade.fourth_upgrade.price"));
  1395. cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1396. try {
  1397. cfg.save(tierdata);
  1398. openManagement(p, tieruuid, block, first);
  1399. } catch (IOException e) {
  1400. e.printStackTrace();
  1401. }
  1402. }
  1403. }
  1404. });
  1405. }
  1406.  
  1407. for (int i = 0; i < 9; i++) {
  1408. if (inv.getSlot(i) == null) {
  1409. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1410. inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  1411. public void onItemClick(Player p, ClickType click) {
  1412. // Empty doesn't do anything when clicked.
  1413. }
  1414. });
  1415. }
  1416. }
  1417.  
  1418. inv.open(p);
  1419. }
  1420.  
  1421. public void openCellRemoval(Player p, String tier, String tieruuid, Block block, Location first) {
  1422. Inventory inv = InventoryAPI.createInventory1(ChatColor.translateAlternateColorCodes('&', "Confirmation"), 54);
  1423.  
  1424. int[] activate = { 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29, 30, 36, 37, 38, 39, 45, 46, 47, 48 };
  1425. int[] middle = { 4, 13, 22, 31, 40, 49 };
  1426. int[] deactivate = { 5, 6, 7, 8, 14, 15, 16, 17, 23, 24, 25, 26, 32, 33, 34, 35, 41, 42, 43, 44, 50, 51, 52,
  1427. 53 };
  1428.  
  1429. for (int i : activate) {
  1430. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
  1431. inv.setSlot(i, InventoryAPI.createItem("&a&lYES",
  1432. Arrays.asList("", "&7Click to your destory your mine!", ""), item, null, 1), new ItemListener() {
  1433. public void onItemClick(Player p, ClickType click) {
  1434. CellMines.getAPI().deleteMine(p, tier, tieruuid, block, first);
  1435. // CellMines.getAPI().giveTier(tier, p);
  1436. p.getOpenInventory().close();
  1437. }
  1438. });
  1439. }
  1440.  
  1441. for (int i : middle) {
  1442. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1443. inv.setSlot(i, InventoryAPI.createItem("&e&lDESTORY CELL MINE?", null, item, null, 1), new ItemListener() {
  1444. public void onItemClick(Player p, ClickType click) {
  1445. // Empty doesn't do anything when clicked.
  1446. }
  1447. });
  1448. }
  1449.  
  1450. for (int i : deactivate) {
  1451. ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
  1452. inv.setSlot(i, InventoryAPI.createItem("&c&lNO", Arrays.asList("", "&7Click to keep your cell mine!", ""),
  1453. item, null, 1), new ItemListener() {
  1454. public void onItemClick(Player p, ClickType click) {
  1455. if (tier.equalsIgnoreCase("Cell")) {
  1456. openManagement(p, tieruuid, block, first);
  1457. } else if (tier.equalsIgnoreCase("Donor")) {
  1458. p.getOpenInventory().close();
  1459. }
  1460. }
  1461. });
  1462. }
  1463.  
  1464. inv.open(p);
  1465. }
  1466. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement