aboutsummaryrefslogtreecommitdiffstats
path: root/src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java
diff options
context:
space:
mode:
authorfatpigsarefat <fatpigsarefat@outlook.com>2018-04-17 19:10:05 +0100
committerfatpigsarefat <fatpigsarefat@outlook.com>2018-04-17 19:10:05 +0100
commit690f38cd36a3634bb29d8cdc832c81ef4ca07d3a (patch)
tree6b915726ef31fa58681c2dea45cd4e08ab7d7c80 /src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java
parent3174a34214b47d1a4a050c1651c204ddf8f108bd (diff)
completely forgotten
Diffstat (limited to 'src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java')
-rw-r--r--src/me/fatpigsarefat/quests/obj/misc/QMenuQuest.java66
1 files changed, 54 insertions, 12 deletions
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<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;
@@ -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<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 (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<String> lore = newItemStack.getItemMeta().getLore();
List<String> newLore = new ArrayList<>();
- for (String s : lore) {
- for (Map.Entry<String, String> entry : placeholders.entrySet()) {
- s = s.replace(entry.getKey(), entry.getValue());
+ 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);
}
- newLore.add(s);
}
- ItemMeta ism = newItemStack.getItemMeta();
ism.setLore(newLore);
newItemStack.setItemMeta(ism);
return newItemStack;