diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-02-05 14:49:11 +0000 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-02-05 14:49:11 +0000 |
| commit | 9d155f39132b4a5d6211e936494240fcdb4459f7 (patch) | |
| tree | f60ebd51cb6840e28cfc546e8e8c4a0f8e45fd33 | |
| parent | 1a89ed9fb8d7987f137a26afb02295fa513e0d87 (diff) | |
Added option to parse PAPI for Quest GUI items
- Closes #124
- Moved some things about
19 files changed, 113 insertions, 64 deletions
diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java index ad5a1798..d03d0a1b 100644 --- a/src/main/java/com/leonardobishop/quests/Quests.java +++ b/src/main/java/com/leonardobishop/quests/Quests.java @@ -6,10 +6,11 @@ import com.leonardobishop.quests.commands.CommandQuests; import com.leonardobishop.quests.events.EventInventory; import com.leonardobishop.quests.events.EventPlayerJoin; import com.leonardobishop.quests.events.EventPlayerLeave; -import com.leonardobishop.quests.itemgetter.ItemGetter; -import com.leonardobishop.quests.itemgetter.ItemGetterLatest; -import com.leonardobishop.quests.itemgetter.ItemGetter_1_13; -import com.leonardobishop.quests.itemgetter.ItemGetter_Late_1_8; +import com.leonardobishop.quests.hooks.itemgetter.ItemGetter; +import com.leonardobishop.quests.hooks.itemgetter.ItemGetterLatest; +import com.leonardobishop.quests.hooks.itemgetter.ItemGetter_1_13; +import com.leonardobishop.quests.hooks.itemgetter.ItemGetter_Late_1_8; +import com.leonardobishop.quests.hooks.papi.PlaceholderAPIHook; import com.leonardobishop.quests.obj.Messages; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.player.QPlayerManager; @@ -18,10 +19,10 @@ import com.leonardobishop.quests.quests.tasktypes.TaskType; import com.leonardobishop.quests.quests.tasktypes.TaskTypeManager; import com.leonardobishop.quests.quests.tasktypes.types.*; import com.leonardobishop.quests.quests.tasktypes.types.dependent.*; -import com.leonardobishop.quests.title.Title; -import com.leonardobishop.quests.title.Title_Bukkit; -import com.leonardobishop.quests.title.Title_BukkitNoTimings; -import com.leonardobishop.quests.title.Title_Other; +import com.leonardobishop.quests.hooks.title.Title; +import com.leonardobishop.quests.hooks.title.Title_Bukkit; +import com.leonardobishop.quests.hooks.title.Title_BukkitNoTimings; +import com.leonardobishop.quests.hooks.title.Title_Other; import com.leonardobishop.quests.updater.Updater; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.Bukkit; @@ -47,6 +48,7 @@ public class Quests extends JavaPlugin { private QuestsConfigLoader questsConfigLoader; private QuestsLogger questsLogger; private PlaceholderExpansion placeholder; + private PlaceholderAPIHook placeholderAPIHook; private boolean brokenConfig = false; private BukkitTask questAutosaveTask; @@ -195,6 +197,10 @@ public class Quests extends JavaPlugin { } }); + if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + this.placeholderAPIHook = new PlaceholderAPIHook(); + } + // this intentionally should not be documented boolean ignoreUpdates = false; try { @@ -211,6 +217,10 @@ public class Quests extends JavaPlugin { } } + public PlaceholderAPIHook getPlaceholderAPIHook() { + return placeholderAPIHook; + } + @Override public void onDisable() { for (TaskType taskType : getTaskTypeManager().getTaskTypes()) { diff --git a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java index cd9c1345..b6517e5e 100644 --- a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java +++ b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java @@ -1,6 +1,6 @@ package com.leonardobishop.quests; -import com.leonardobishop.quests.itemgetter.ItemGetter; +import com.leonardobishop.quests.hooks.itemgetter.ItemGetter; import com.leonardobishop.quests.obj.Options; import com.leonardobishop.quests.obj.misc.QItemStack; import com.leonardobishop.quests.quests.Category; @@ -301,7 +301,7 @@ public class QuestsConfigLoader { ItemStack is = plugin.getItemStack(path, config, ItemGetter.Filter.DISPLAY_NAME, ItemGetter.Filter.LORE, ItemGetter.Filter.ENCHANTMENTS, ItemGetter.Filter.ITEM_FLAGS); - return new QItemStack(name, loreNormal, loreStarted, is); + return new QItemStack(plugin, name, loreNormal, loreStarted, is); } public enum ConfigProblemDescriptions { diff --git a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetter.java b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter.java index 444d63dc..a0d7545e 100644 --- a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetter.java +++ b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.itemgetter; +package com.leonardobishop.quests.hooks.itemgetter; import com.leonardobishop.quests.Quests; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetterLatest.java b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java index 8208417f..c33baac7 100644 --- a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetterLatest.java +++ b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.itemgetter; +package com.leonardobishop.quests.hooks.itemgetter; import com.leonardobishop.quests.Quests; import org.bukkit.ChatColor; diff --git a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetter_1_13.java b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java index 08a48e2e..0e0850cd 100644 --- a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetter_1_13.java +++ b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.itemgetter; +package com.leonardobishop.quests.hooks.itemgetter; import com.leonardobishop.quests.Quests; import org.bukkit.ChatColor; diff --git a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetter_Late_1_8.java b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_Late_1_8.java index 33389165..f3523b70 100644 --- a/src/main/java/com/leonardobishop/quests/itemgetter/ItemGetter_Late_1_8.java +++ b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_Late_1_8.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.itemgetter; +package com.leonardobishop.quests.hooks.itemgetter; import com.leonardobishop.quests.Quests; import org.apache.commons.lang.StringUtils; diff --git a/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java b/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java new file mode 100644 index 00000000..4612d0af --- /dev/null +++ b/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java @@ -0,0 +1,12 @@ +package com.leonardobishop.quests.hooks.papi; + +import me.clip.placeholderapi.PlaceholderAPI; +import org.bukkit.entity.Player; + +public class PlaceholderAPIHook { + + public String replacePlaceholders(Player player, String text) { + return PlaceholderAPI.setPlaceholders(player, text); + } + +} diff --git a/src/main/java/com/leonardobishop/quests/title/Title.java b/src/main/java/com/leonardobishop/quests/hooks/title/Title.java index 232c3b36..030d7455 100644 --- a/src/main/java/com/leonardobishop/quests/title/Title.java +++ b/src/main/java/com/leonardobishop/quests/hooks/title/Title.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.title; +package com.leonardobishop.quests.hooks.title; import org.bukkit.entity.Player; diff --git a/src/main/java/com/leonardobishop/quests/title/Title_Bukkit.java b/src/main/java/com/leonardobishop/quests/hooks/title/Title_Bukkit.java index d05f815b..0f46771a 100644 --- a/src/main/java/com/leonardobishop/quests/title/Title_Bukkit.java +++ b/src/main/java/com/leonardobishop/quests/hooks/title/Title_Bukkit.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.title; +package com.leonardobishop.quests.hooks.title; import org.bukkit.entity.Player; diff --git a/src/main/java/com/leonardobishop/quests/title/Title_BukkitNoTimings.java b/src/main/java/com/leonardobishop/quests/hooks/title/Title_BukkitNoTimings.java index 6bbbc32f..92ffdd16 100644 --- a/src/main/java/com/leonardobishop/quests/title/Title_BukkitNoTimings.java +++ b/src/main/java/com/leonardobishop/quests/hooks/title/Title_BukkitNoTimings.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.title; +package com.leonardobishop.quests.hooks.title; import org.bukkit.entity.Player; diff --git a/src/main/java/com/leonardobishop/quests/title/Title_Other.java b/src/main/java/com/leonardobishop/quests/hooks/title/Title_Other.java index e4e998b9..ab7b7bf2 100644 --- a/src/main/java/com/leonardobishop/quests/title/Title_Other.java +++ b/src/main/java/com/leonardobishop/quests/hooks/title/Title_Other.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.title; +package com.leonardobishop.quests.hooks.title; import org.bukkit.entity.Player; diff --git a/src/main/java/com/leonardobishop/quests/obj/Options.java b/src/main/java/com/leonardobishop/quests/obj/Options.java index 807269bd..b3afc73f 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Options.java +++ b/src/main/java/com/leonardobishop/quests/obj/Options.java @@ -15,6 +15,7 @@ public enum Options { GUI_HIDE_LOCKED("options.gui-hide-locked"), GUI_HIDE_QUESTS_NOPERMISSION("options.gui-hide-quests-nopermission"), GUI_HIDE_CATEGORIES_NOPERMISSION("options.gui-hide-categories-nopermission"), + GUI_USE_PLACEHOLDERAPI("options.gui-use-placeholderapi"), GUITITLE_QUESTS_CATEGORY("options.guinames.quests-category"), GUITITLE_QUESTS("options.guinames.quests-menu"), GUITITLE_DAILY_QUESTS("options.guinames.daily-quests"), diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QItemStack.java b/src/main/java/com/leonardobishop/quests/obj/misc/QItemStack.java index f7eca148..20bb3eb7 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QItemStack.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QItemStack.java @@ -1,9 +1,13 @@ package com.leonardobishop.quests.obj.misc; +import com.leonardobishop.quests.Quests; +import com.leonardobishop.quests.obj.Options; import com.leonardobishop.quests.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile; import com.leonardobishop.quests.quests.Quest; +import org.bukkit.Bukkit; import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -15,12 +19,15 @@ import java.util.regex.Pattern; public class QItemStack { + private final Quests plugin; + private String name; private List<String> loreNormal; private List<String> loreStarted; private ItemStack startingItemStack; - public QItemStack(String name, List<String> loreNormal, List<String> loreStarted, ItemStack startingItemStack) { + public QItemStack(Quests plugin, String name, List<String> loreNormal, List<String> loreStarted, ItemStack startingItemStack) { + this.plugin = plugin; this.name = name; this.loreNormal = loreNormal; this.loreStarted = loreStarted; @@ -66,6 +73,8 @@ public class QItemStack { ism.setDisplayName(name); List<String> formattedLore = new ArrayList<>(); List<String> tempLore = new ArrayList<>(loreNormal); + + Player player = Bukkit.getPlayer(questProgressFile.getPlayerUUID()); if (questProgressFile.hasStartedQuest(quest)) { tempLore.addAll(loreStarted); ism.addEnchant(Enchantment.ARROW_INFINITE, 1, true); @@ -76,6 +85,9 @@ public class QItemStack { } } + if (plugin.getPlaceholderAPIHook() != null && Options.GUI_USE_PLACEHOLDERAPI.getBooleanValue()) { + ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); + } if (questProgress != null) { for (String s : tempLore) { Matcher m = Pattern.compile("\\{([^}]+)}").matcher(s); @@ -95,6 +107,9 @@ public class QItemStack { } } } + if (plugin.getPlaceholderAPIHook() != null && Options.GUI_USE_PLACEHOLDERAPI.getBooleanValue()) { + s = plugin.getPlaceholderAPIHook().replacePlaceholders(player, s); + } formattedLore.add(s); } } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java index 703827fd..72445aaf 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java @@ -77,22 +77,4 @@ public class QMenuCancel implements QMenu { 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; - } } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java index 24d708e2..86f4d57f 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java @@ -6,9 +6,12 @@ import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.quests.Category; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.entity.Player; 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; @@ -17,11 +20,13 @@ import java.util.List; */ public class QMenuCategory implements QMenu { + private final Quests plugin; private final int pageSize = 45; private final HashMap<Integer, QMenuQuest> slotsToMenuQuest = new HashMap<>(); private final QPlayer owner; - public QMenuCategory(QPlayer owner) { + public QMenuCategory(Quests plugin, QPlayer owner) { + this.plugin = plugin; this.owner = owner; } @@ -61,12 +66,12 @@ public class QMenuCategory implements QMenu { if (slotsToMenuQuest.containsKey(pointer)) { Category category = Quests.get().getQuestManager().getCategoryById(slotsToMenuQuest.get(pointer).getCategoryName()); if (category != null) { - inventory.setItem(pointer, category.getDisplayItem()); + inventory.setItem(pointer, replaceItemStack(category.getDisplayItem())); } } } - inventory.setItem(49, pageIs); + inventory.setItem(49, replaceItemStack(pageIs)); if (Options.TRIM_GUI_SIZE.getBooleanValue() && page == 1) { int slotsUsed = 0; @@ -85,7 +90,7 @@ public class QMenuCategory implements QMenu { Inventory trimmedInventory = Bukkit.createInventory(null, inventorySize, title); for (int slot = 0; slot < pageMax; slot++) { - if (slot >= trimmedInventory.getSize()){ + if (slot >= trimmedInventory.getSize()) { break; } trimmedInventory.setItem(slot, inventory.getItem(slot)); @@ -97,4 +102,25 @@ public class QMenuCategory implements QMenu { } + public ItemStack replaceItemStack(ItemStack is) { + if (plugin.getPlaceholderAPIHook() != null && Options.GUI_USE_PLACEHOLDERAPI.getBooleanValue()) { + ItemStack newItemStack = is.clone(); + List<String> lore = newItemStack.getItemMeta().getLore(); + List<String> newLore = new ArrayList<>(); + ItemMeta ism = newItemStack.getItemMeta(); + Player player = Bukkit.getPlayer(owner.getUuid()); + ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); + if (lore != null) { + for (String s : lore) { + s = plugin.getPlaceholderAPIHook().replacePlaceholders(player, s); + newLore.add(s); + } + } + ism.setLore(newLore); + newItemStack.setItemMeta(ism); + return newItemStack; + } + return is; + } + } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java index 5277d195..0e0cc132 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java @@ -99,22 +99,6 @@ public class QMenuDaily implements QMenu { return Bukkit.createInventory(null, 27, title); } - public ItemStack replaceItemStack(ItemStack is, Map<String, String> placeholders) { - 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()); - } - newLore.add(s); - } - ItemMeta ism = newItemStack.getItemMeta(); - ism.setLore(newLore); - newItemStack.setItemMeta(ism); - return newItemStack; - } - //Implement too public QMenuCategory getSuperMenu() { return this.superMenu; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java index 243e08d2..dbaf23ff 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java @@ -7,6 +7,7 @@ import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.quests.Quest; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -19,6 +20,7 @@ import java.util.concurrent.TimeUnit; */ public class QMenuQuest implements QMenu { + private final Quests plugin; private final HashMap<Integer, String> slotsToQuestIds = new HashMap<>(); private final QMenuCategory superMenu; private final String categoryName; @@ -31,7 +33,8 @@ public class QMenuQuest implements QMenu { private int currentPage = -1; private boolean backButtonEnabled = true; - public QMenuQuest(QPlayer owner, String categoryName, QMenuCategory superMenu) { + public QMenuQuest(Quests plugin, QPlayer owner, String categoryName, QMenuCategory superMenu) { + this.plugin = plugin; this.owner = owner; this.categoryName = categoryName; this.superMenu = superMenu; @@ -134,7 +137,8 @@ public class QMenuQuest implements QMenu { ItemStack is = replaceItemStack(Items.QUEST_COOLDOWN.getItem(), placeholders); inventory.setItem(invSlot, is); } else { - inventory.setItem(invSlot, Quests.get().getQuestManager().getQuestById(quest.getId()).getDisplayItem().toItemStack(quest, owner.getQuestProgressFile(), questProgress)); + inventory.setItem(invSlot, replaceItemStack(Quests.get().getQuestManager().getQuestById( + quest.getId()).getDisplayItem().toItemStack(quest, owner.getQuestProgressFile(), questProgress))); } } invSlot++; @@ -215,20 +219,33 @@ public class QMenuQuest implements QMenu { return superMenu; } + public ItemStack replaceItemStack(ItemStack is) { + return replaceItemStack(is, Collections.emptyMap()); + } + 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(); + Player player = Bukkit.getPlayer(owner.getUuid()); 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())); + if (plugin.getPlaceholderAPIHook() != null && Options.GUI_USE_PLACEHOLDERAPI.getBooleanValue()) { + s = plugin.getPlaceholderAPIHook().replacePlaceholders(player, s); + } } newLore.add(s); } } + for (Map.Entry<String, String> entry : placeholders.entrySet()) { + ism.setDisplayName(ism.getDisplayName().replace(entry.getKey(), entry.getValue())); + if (plugin.getPlaceholderAPIHook() != null && Options.GUI_USE_PLACEHOLDERAPI.getBooleanValue()) { + ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); + } + } ism.setLore(newLore); newItemStack.setItemMeta(ism); return newItemStack; diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayer.java b/src/main/java/com/leonardobishop/quests/player/QPlayer.java index 84653040..6c270fa1 100644 --- a/src/main/java/com/leonardobishop/quests/player/QPlayer.java +++ b/src/main/java/com/leonardobishop/quests/player/QPlayer.java @@ -46,7 +46,7 @@ public class QPlayer { } // Using `this` instead of searching again for this QPlayer - QMenuQuest qMenuQuest = new QMenuQuest(this, category.getId(), superMenu); + QMenuQuest qMenuQuest = new QMenuQuest(plugin, this, category.getId(), superMenu); List<Quest> quests = new ArrayList<>(); for (String questid : category.getRegisteredQuestIds()) { Quest quest = plugin.getQuestManager().getQuestById(questid); @@ -87,10 +87,10 @@ public class QPlayer { } if (Options.CATEGORIES_ENABLED.getBooleanValue()) { - QMenuCategory qMenuCategory = new QMenuCategory(plugin.getPlayerManager().getPlayer(player.getUniqueId())); + QMenuCategory qMenuCategory = new QMenuCategory(plugin, plugin.getPlayerManager().getPlayer(player.getUniqueId())); List<QMenuQuest> questMenus = new ArrayList<>(); for (Category category : plugin.getQuestManager().getCategories()) { - QMenuQuest qMenuQuest = new QMenuQuest(plugin.getPlayerManager().getPlayer(player.getUniqueId()), category.getId(), qMenuCategory); + QMenuQuest qMenuQuest = new QMenuQuest(plugin, plugin.getPlayerManager().getPlayer(player.getUniqueId()), category.getId(), qMenuCategory); List<Quest> quests = new ArrayList<>(); for (String questid : category.getRegisteredQuestIds()) { Quest quest = plugin.getQuestManager().getQuestById(questid); @@ -106,7 +106,7 @@ public class QPlayer { player.openInventory(qMenuCategory.toInventory(1)); EventInventory.track(player.getUniqueId(), qMenuCategory); } else { - QMenuQuest qMenuQuest = new QMenuQuest(plugin.getPlayerManager().getPlayer(player.getUniqueId()), "", null); + QMenuQuest qMenuQuest = new QMenuQuest(plugin, plugin.getPlayerManager().getPlayer(player.getUniqueId()), "", null); List<Quest> quests = new ArrayList<>(); for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuests().entrySet()) { quests.add(entry.getValue()); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index bee451fa..7e6e77d1 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -151,6 +151,8 @@ options: gui-hide-quests-nopermission: false # Hide categories which a player cannot open due to permissions. gui-hide-categories-nopermission: false + # Replace placeholders from PlaceholderAPI in Quests GUI items + gui-use-placeholderapi: false # Make it so players do not have to start quest themselves quest-autostart: false # How much quests should log, 0 = errors only, 1 = warnings, 2 = info, 3 = debug |
