package cx.sfy.TheBridge.menus; import java.util.ArrayList; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.SkullType; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import cx.sfy.TheBridge.Main; import cx.sfy.TheBridge.archievements.Archi; import cx.sfy.TheBridge.archievements.ArchiType; import cx.sfy.TheBridge.database.PlayerStat; import cx.sfy.TheBridge.listeners.PlayerListener; import cx.sfy.TheBridge.utils.ItemBuilder; public class AchievementsMenu { Main plugin; public AchievementsMenu(Main plugin) { this.plugin = plugin; } public void createArchievementsMenu(Player p, int page) { PlayerStat ps = PlayerStat.getPlayerStat(p); Inventory inv = Bukkit.getServer().createInventory(null, 54, plugin.getAchievement().get("title").replaceAll("", p.getName())); ItemStack signKill = ItemBuilder.item(Material.valueOf(plugin.getAchievement().get("kills.item")), plugin.getAchievement().getInt("kills.amount"), (short)plugin.getAchievement().getInt("kills.data"), plugin.getAchievement().get("kills.name"), plugin.getAchievement().get("kills.lore")); ItemStack signWin = ItemBuilder.item(Material.valueOf(plugin.getAchievement().get("wins.item")), plugin.getAchievement().getInt("wins.amount"), (short)plugin.getAchievement().getInt("wins.data"), plugin.getAchievement().get("wins.name"), plugin.getAchievement().get("wins.lore")); ItemStack signGoals = ItemBuilder.item(Material.valueOf(plugin.getAchievement().get("goals.item")), plugin.getAchievement().getInt("goals.amount"), (short)plugin.getAchievement().getInt("goals.data"), plugin.getAchievement().get("goals.name"), plugin.getAchievement().get("goals.lore")); ItemStack signPlaced = ItemBuilder.item(Material.valueOf(plugin.getAchievement().get("blocks_placed.item")), plugin.getAchievement().getInt("blocks_placed.amount"), (short)plugin.getAchievement().getInt("blocks_placed.data"), plugin.getAchievement().get("blocks_placed.name"), plugin.getAchievement().get("blocks_placed.lore")); ItemStack signBroken = ItemBuilder.item(Material.valueOf(plugin.getAchievement().get("blocks_bloken.item")), plugin.getAchievement().getInt("blocks_bloken.amount"), (short)plugin.getAchievement().getInt("blocks_bloken.data"), plugin.getAchievement().get("blocks_bloken.name"), plugin.getAchievement().get("blocks_bloken.lore")); ItemStack gLeft = ItemBuilder.item(Material.STAINED_GLASS_PANE, 1, (short)7, plugin.getAchievement().get("archivements").replaceAll("", "→"), ""); ItemStack gRight = ItemBuilder.item(Material.STAINED_GLASS_PANE, 1, (short)7, plugin.getAchievement().get("archivements").replaceAll("", "�"), ""); ItemStack next = ItemBuilder.createSkull(Material.SKULL_ITEM, 1, (short)SkullType.PLAYER.ordinal(), plugin.getAchievement().get("next").replaceAll("", "→"), "", "creeyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgyYWQxYjljYjRkZDIxMjU5YzBkNzVhYTMxNWZmMzg5YzNjZWY3NTJiZTM5NDkzMzgxNjRiYWM4NGE5NmUifX19"); ItemStack back = ItemBuilder.createSkull(Material.SKULL_ITEM, 1, (short)SkullType.PLAYER.ordinal(), plugin.getAchievement().get("back").replaceAll("", "�"), "", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0="); ItemStack close = ItemBuilder.item(Material.valueOf(plugin.getAchievement().get("close.item")), plugin.getAchievement().getInt("close.amount"), (short)plugin.getAchievement().getInt("close.data"), plugin.getAchievement().get("close.name"), plugin.getAchievement().get("close.lore")); inv.setItem(0, gLeft); inv.setItem(9, gLeft); inv.setItem(18, gLeft); inv.setItem(27, gLeft); inv.setItem(36, gLeft); inv.setItem(8, gRight); inv.setItem(17, gRight); inv.setItem(26, gRight); inv.setItem(35, gRight); inv.setItem(44, gRight); inv.setItem(2, signKill); inv.setItem(3, signWin); inv.setItem(4, signGoals); inv.setItem(5, signPlaced); inv.setItem(6, signBroken); if (plugin.getAM().getArchiements().get(ArchiType.KILLS).size() >= (page + 1) * 4 && plugin.getAM().getArchiements().get(ArchiType.WINS).size() >= (page + 1) * 4 && plugin.getAM().getArchiements().get(ArchiType.GOALS).size() >= (page + 1) * 4 && plugin.getAM().getArchiements().get(ArchiType.BLOCKS_PLACED).size() >= (page + 1) * 4 && plugin.getAM().getArchiements().get(ArchiType.BLOCKS_BROKEN).size() >= (page + 1) * 4) { inv.setItem(53, next); } if (PlayerListener.page.containsKey(p)) { inv.setItem(45, back); } inv.setItem(49, close); int min = (page - 1) * 4; for (int i = 1; i < 5; i++) { Archi archi = plugin.getAM().getArchiements().get(ArchiType.KILLS).get((i - 1) + min); if (ps.getFourKills() + ps.getNormalKills() <= archi.getMax()) { ItemStack locked = plugin.getAM().getLocked().clone(); ItemMeta lockedM = locked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : lockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", String.valueOf(archi.getMax())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getFourKills() + ps.getNormalKills()))); } lockedM.setDisplayName("§c" + archi.getName()); lockedM.getLore().clear(); lockedM.setLore(loreNew); locked.setItemMeta(lockedM); inv.setItem(2 + (9 * (i)), locked); } else { ItemStack unlocked = plugin.getAM().getUnlocked().clone(); ItemMeta unlockedM = unlocked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : unlockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getFourKills() + ps.getNormalKills()))); } unlockedM.setDisplayName("§a" + archi.getName()); unlockedM.getLore().clear(); unlockedM.setLore(loreNew); unlocked.setItemMeta(unlockedM); inv.setItem(2 + (9 * (i)), unlocked); } } for (int i = 1; i < 5; i++) { Archi archi = plugin.getAM().getArchiements().get(ArchiType.WINS).get((i - 1) + min); if (ps.getFourWins() + ps.getNormalWins() <= archi.getMax()) { ItemStack locked = plugin.getAM().getLocked().clone(); ItemMeta lockedM = locked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : lockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", String.valueOf(archi.getMax())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getFourWins() + ps.getNormalWins()))); } lockedM.setDisplayName("§c" + archi.getName()); lockedM.getLore().clear(); lockedM.setLore(loreNew); locked.setItemMeta(lockedM); inv.setItem(3 + (9 * (i)), locked); } else { ItemStack unlocked = plugin.getAM().getUnlocked().clone(); ItemMeta unlockedM = unlocked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : unlockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getFourWins() + ps.getNormalWins()))); } unlockedM.setDisplayName("§a" + archi.getName()); unlockedM.getLore().clear(); unlockedM.setLore(loreNew); unlocked.setItemMeta(unlockedM); inv.setItem(3 + (9 * (i)), unlocked); } } for (int i = 1; i < 5; i++) { Archi archi = plugin.getAM().getArchiements().get(ArchiType.GOALS).get((i - 1) + min); if (ps.getFourGoals() + ps.getNormalGoals() <= archi.getMax()) { ItemStack locked = plugin.getAM().getLocked().clone(); ItemMeta lockedM = locked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : lockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", String.valueOf(archi.getMax())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getFourGoals() + ps.getNormalGoals()))); } lockedM.setDisplayName("§c" + archi.getName()); lockedM.getLore().clear(); lockedM.setLore(loreNew); locked.setItemMeta(lockedM); inv.setItem(4 + (9 * (i)), locked); } else { ItemStack unlocked = plugin.getAM().getUnlocked().clone(); ItemMeta unlockedM = unlocked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : unlockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getFourGoals() + ps.getNormalGoals()))); } unlockedM.setDisplayName("§a" + archi.getName()); unlockedM.getLore().clear(); unlockedM.setLore(loreNew); unlocked.setItemMeta(unlockedM); inv.setItem(4 + (9 * (i)), unlocked); } } for (int i = 1; i < 5; i++) { Archi archi = plugin.getAM().getArchiements().get(ArchiType.BLOCKS_PLACED).get((i - 1) + min); if (ps.getPlaced() <= archi.getMax()) { ItemStack locked = plugin.getAM().getLocked().clone(); ItemMeta lockedM = locked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : lockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", String.valueOf(archi.getMax())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getPlaced()))); } lockedM.setDisplayName("§c" + archi.getName()); lockedM.getLore().clear(); lockedM.setLore(loreNew); locked.setItemMeta(lockedM); inv.setItem(5 + (9 * (i)), locked); } else { ItemStack unlocked = plugin.getAM().getUnlocked().clone(); ItemMeta unlockedM = unlocked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : unlockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getPlaced()))); } unlockedM.setDisplayName("§a" + archi.getName()); unlockedM.getLore().clear(); unlockedM.setLore(loreNew); unlocked.setItemMeta(unlockedM); inv.setItem(5 + (9 * (i)), unlocked); } } for (int i = 1; i < 5; i++) { Archi archi = plugin.getAM().getArchiements().get(ArchiType.BLOCKS_BROKEN).get((i - 1) + min); if (ps.getBroken() <= archi.getMax()) { ItemStack locked = plugin.getAM().getLocked().clone(); ItemMeta lockedM = locked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : lockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", String.valueOf(archi.getMax())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getBroken()))); } lockedM.setDisplayName("§c" + archi.getName()); lockedM.getLore().clear(); lockedM.setLore(loreNew); locked.setItemMeta(lockedM); inv.setItem(6 + (9 * (i)), locked); } else { ItemStack unlocked = plugin.getAM().getUnlocked().clone(); ItemMeta unlockedM = unlocked.getItemMeta(); List loreNew = new ArrayList(); for (String msg : unlockedM.getLore()) { loreNew.add(msg.replaceAll("&", "§").replaceAll("", String.valueOf(archi.getMoney())).replaceAll("", String.valueOf(archi.getXp())).replaceAll("", archi.getName()).replaceAll("", archi.getDescription()).replaceAll("", String.valueOf(ps.getBroken()))); } unlockedM.setDisplayName("§a" + archi.getName()); unlockedM.getLore().clear(); unlockedM.setLore(loreNew); unlocked.setItemMeta(unlockedM); inv.setItem(6 + (9 * (i)), unlocked); } } p.openInventory(inv); } }