You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
13 KiB
212 lines
13 KiB
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("<player>", 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("<arrow>", "→"), "");
|
|
ItemStack gRight = ItemBuilder.item(Material.STAINED_GLASS_PANE, 1, (short)7, plugin.getAchievement().get("archivements").replaceAll("<arrow>", "��?"), "");
|
|
ItemStack next = ItemBuilder.createSkull(Material.SKULL_ITEM, 1, (short)SkullType.PLAYER.ordinal(), plugin.getAchievement().get("next").replaceAll("<next>", "→"), "", "creeyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgyYWQxYjljYjRkZDIxMjU5YzBkNzVhYTMxNWZmMzg5YzNjZWY3NTJiZTM5NDkzMzgxNjRiYWM4NGE5NmUifX19");
|
|
ItemStack back = ItemBuilder.createSkull(Material.SKULL_ITEM, 1, (short)SkullType.PLAYER.ordinal(), plugin.getAchievement().get("back").replaceAll("<back>", "��?"), "", "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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : lockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<max>", String.valueOf(archi.getMax())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : unlockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : lockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<max>", String.valueOf(archi.getMax())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : unlockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : lockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<max>", String.valueOf(archi.getMax())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : unlockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : lockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<max>", String.valueOf(archi.getMax())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : unlockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : lockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<max>", String.valueOf(archi.getMax())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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<String> loreNew = new ArrayList<String>();
|
|
for (String msg : unlockedM.getLore()) {
|
|
loreNew.add(msg.replaceAll("&", "§").replaceAll("<money>", String.valueOf(archi.getMoney())).replaceAll("<xp>", String.valueOf(archi.getXp())).replaceAll("<name>", archi.getName()).replaceAll("<description>", archi.getDescription()).replaceAll("<current>", 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);
|
|
}
|
|
|
|
}
|