From 690f38cd36a3634bb29d8cdc832c81ef4ca07d3a Mon Sep 17 00:00:00 2001 From: fatpigsarefat Date: Tue, 17 Apr 2018 19:10:05 +0100 Subject: completely forgotten --- .../fatpigsarefat/quests/obj/misc/QMenuQuest.java | 66 ++++++++++++++++++---- 1 file changed, 54 insertions(+), 12 deletions(-) (limited to 'src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java') diff --git a/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java b/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java index 4df9df89..8932159c 100644 --- a/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java +++ b/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java @@ -7,7 +7,6 @@ import me.fatpigsarefat.quests.player.QPlayer; import me.fatpigsarefat.quests.player.questprogressfile.QuestProgress; import me.fatpigsarefat.quests.quests.Quest; import org.bukkit.Bukkit; -import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -22,6 +21,9 @@ public class QMenuQuest implements QMenu { private HashMap slotsToQuestIds = new HashMap<>(); private int backButtonLocation = -1; + private int pagePrevLocation = -1; + private int pageNextLocation = -1; + private int currentPage = -1; private boolean backButtonEnabled = true; private QMenuCategory superMenu; private String categoryName; @@ -56,12 +58,31 @@ public class QMenuQuest implements QMenu { return categoryName; } + public int getPagePrevLocation() { + return pagePrevLocation; + } + + public int getPageNextLocation() { + return pageNextLocation; + } + + public int getCurrentPage() { + return currentPage; + } + + public int getPageSize() { + return pageSize; + } + public Inventory toInventory(int page) { + currentPage = page; int pageMin = pageSize * (page - 1); int pageMax = pageSize * page; String title = "Quests"; - ItemStack pageIs = new ItemStack(Material.DIRT); + ItemStack pageIs; + ItemStack pagePrevIs; + ItemStack pageNextIs; ItemStack back = Items.BACK_BUTTON.getItem(); Inventory inventory = Bukkit.createInventory(null, 54, title); //TODO make configurable title @@ -100,14 +121,32 @@ public class QMenuQuest implements QMenu { invSlot++; } - inventory.setItem(49, pageIs); + pageNextLocation = -1; + pagePrevLocation = -1; + + Map pageplaceholders = new HashMap<>(); + pageplaceholders.put("{prevpage}", String.valueOf(page - 1)); + pageplaceholders.put("{nextpage}", String.valueOf(page + 1)); + pageplaceholders.put("{page}", String.valueOf(page)); + pageIs = replaceItemStack(Items.PAGE_DESCRIPTION.getItem(), pageplaceholders); + pagePrevIs = replaceItemStack(Items.PAGE_PREV.getItem(), pageplaceholders); + pageNextIs = replaceItemStack(Items.PAGE_NEXT.getItem(), pageplaceholders); if (Options.CATEGORIES_ENABLED.getBooleanValue() && backButtonEnabled) { inventory.setItem(45, back); backButtonLocation = 45; } - - if (Options.TRIM_GUI_SIZE.getBooleanValue() && page == 1) { + if (slotsToQuestIds.size() > pageSize) { + inventory.setItem(49, pageIs); + if (page != 1) { + inventory.setItem(48, pagePrevIs); + pagePrevLocation = 48; + } + if (Math.ceil((double) slotsToQuestIds.size() / ((double) 45)) != page) { + inventory.setItem(50, pageNextIs); + pageNextLocation = 50; + } + } else if (Options.TRIM_GUI_SIZE.getBooleanValue() && page == 1) { int slotsUsed = 0; for (int pointer = 0; pointer < pageMax; pointer++) { if (inventory.getItem(pointer) != null) { @@ -136,10 +175,10 @@ public class QMenuQuest implements QMenu { trimmedInventory.setItem(slot, inventory.getItem(slot)); } return trimmedInventory; - } else { - return inventory; } + return inventory; + //TODO add page controls } @@ -163,13 +202,16 @@ public class QMenuQuest implements QMenu { ItemStack newItemStack = is.clone(); List lore = newItemStack.getItemMeta().getLore(); List newLore = new ArrayList<>(); - for (String s : lore) { - for (Map.Entry entry : placeholders.entrySet()) { - s = s.replace(entry.getKey(), entry.getValue()); + ItemMeta ism = newItemStack.getItemMeta(); + if (lore != null) { + for (String s : lore) { + for (Map.Entry entry : placeholders.entrySet()) { + s = s.replace(entry.getKey(), entry.getValue()); + ism.setDisplayName(ism.getDisplayName().replace(entry.getKey(), entry.getValue())); + } + newLore.add(s); } - newLore.add(s); } - ItemMeta ism = newItemStack.getItemMeta(); ism.setLore(newLore); newItemStack.setItemMeta(ism); return newItemStack; -- cgit v1.2.3-70-g09d2