diff options
Diffstat (limited to 'src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java')
| -rw-r--r-- | src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java b/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java deleted file mode 100644 index 50e264e7..00000000 --- a/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java +++ /dev/null @@ -1,224 +0,0 @@ -package me.fatpigsarefat.quests.obj.misc; - -import me.fatpigsarefat.quests.Quests; -import me.fatpigsarefat.quests.obj.Items; -import me.fatpigsarefat.quests.obj.Options; -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.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -public class QMenuQuest implements QMenu { - - private HashMap<Integer, String> 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; - private final int pageSize = 45; - private QPlayer owner; - - public QMenuQuest(QPlayer owner, String categoryName, QMenuCategory superMenu) { - this.owner = owner; - this.categoryName = categoryName; - this.superMenu = superMenu; - } - - public void populate(List<Quest> quests) { - int slot = 0; - for (Quest quest : quests) { - if (Options.GUI_HIDE_LOCKED.getBooleanValue()) { - QuestProgress questProgress = owner.getQuestProgressFile().getQuestProgress(quest); - long cooldown = owner.getQuestProgressFile().getCooldownFor(quest); - if (!owner.getQuestProgressFile().hasMetRequirements(quest) || (!quest.isRepeatable() && questProgress.isCompletedBefore()) || cooldown > 0) { - continue; - } - } - slotsToQuestIds.put(slot, quest.getId()); - slot++; - } - } - - @Override - public HashMap<Integer, String> getSlotsToMenu() { - return slotsToQuestIds; - } - - @Override - public QPlayer getOwner() { - return owner; - } - - public String getCategoryName() { - 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 = Options.GUITITLE_QUESTS.getStringValue(); - - ItemStack pageIs; - ItemStack pagePrevIs; - ItemStack pageNextIs; - ItemStack back = Items.BACK_BUTTON.getItem(); - - Inventory inventory = Bukkit.createInventory(null, 54, title); - - int invSlot = 0; - for (int pointer = pageMin; pointer < pageMax; pointer++) { - if (slotsToQuestIds.containsKey(pointer)) { - Quest quest = Quests.getQuestManager().getQuestById(slotsToQuestIds.get(pointer)); - QuestProgress questProgress = owner.getQuestProgressFile().getQuestProgress(quest); - long cooldown = owner.getQuestProgressFile().getCooldownFor(quest); - if (!owner.getQuestProgressFile().hasMetRequirements(quest)) { - List<String> quests = new ArrayList<>(); - for (String requirement : quest.getRequirements()) { - quests.add(Quests.getQuestManager().getQuestById(requirement).getDisplayNameStripped()); - } - Map<String, String> placeholders = new HashMap<>(); - placeholders.put("{quest}", quest.getDisplayNameStripped()); - placeholders.put("{requirements}", String.join(", ", quests)); - ItemStack is = replaceItemStack(Items.QUEST_LOCKED.getItem(), placeholders); - inventory.setItem(invSlot, is); - } else if (!quest.isRepeatable() && questProgress.isCompletedBefore()) { - Map<String, String> placeholders = new HashMap<>(); - placeholders.put("{quest}", quest.getDisplayNameStripped()); - ItemStack is = replaceItemStack(Items.QUEST_COMPLETED.getItem(), placeholders); - inventory.setItem(invSlot, is); - } else if (cooldown > 0) { - Map<String, String> placeholders = new HashMap<>(); - placeholders.put("{time}", Quests.convertToFormat(TimeUnit.MINUTES.convert(cooldown, TimeUnit.MILLISECONDS))); - placeholders.put("{quest}", quest.getDisplayNameStripped()); - ItemStack is = replaceItemStack(Items.QUEST_COOLDOWN.getItem(), placeholders); - inventory.setItem(invSlot, is); - } else { - inventory.setItem(invSlot, Quests.getQuestManager().getQuestById(quest.getId()).getDisplayItem().toItemStack(questProgress)); - } - } - invSlot++; - } - - pageNextLocation = -1; - pagePrevLocation = -1; - - Map<String, String> 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 (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) { - slotsUsed++; - } - } - - int inventorySize = (slotsUsed >= 54) ? 54 : slotsUsed + (9 - slotsUsed % 9) * Math.min(1, slotsUsed % 9); - inventorySize = inventorySize <= 0 ? 9 : inventorySize; - if (inventorySize == 54) { - return inventory; - } else if (Options.CATEGORIES_ENABLED.getBooleanValue() && backButtonEnabled) { - inventorySize += 9; - } - - Inventory trimmedInventory = Bukkit.createInventory(null, inventorySize, title); - - for (int slot = 0; slot < trimmedInventory.getSize(); slot++) { - if (slot >= (trimmedInventory.getSize() - 9) && backButtonEnabled){ - if (Options.CATEGORIES_ENABLED.getBooleanValue()) { - trimmedInventory.setItem(slot, back); - backButtonLocation = slot; - } - break; - } - trimmedInventory.setItem(slot, inventory.getItem(slot)); - } - return trimmedInventory; - } - - return inventory; - } - - public boolean isBackButtonEnabled() { - return backButtonEnabled; - } - - public void setBackButtonEnabled(boolean backButtonEnabled) { - this.backButtonEnabled = backButtonEnabled; - } - - public int getBackButtonLocation() { - return backButtonLocation; - } - - public QMenuCategory getSuperMenu() { - return superMenu; - } - - public ItemStack replaceItemStack(ItemStack is, Map<String, String> placeholders) { - ItemStack newItemStack = is.clone(); - List<String> lore = newItemStack.getItemMeta().getLore(); - List<String> newLore = new ArrayList<>(); - ItemMeta ism = newItemStack.getItemMeta(); - if (lore != null) { - for (String s : lore) { - for (Map.Entry<String, String> entry : placeholders.entrySet()) { - s = s.replace(entry.getKey(), entry.getValue()); - ism.setDisplayName(ism.getDisplayName().replace(entry.getKey(), entry.getValue())); - } - newLore.add(s); - } - } - ism.setLore(newLore); - newItemStack.setItemMeta(ism); - return newItemStack; - } -} |
