diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-06-30 20:01:25 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-06-30 20:01:25 +0100 |
| commit | 0e33389d4f9ae1dc9067fd813dce2903868d294c (patch) | |
| tree | fb5ee6eb76536097283df183069eb3c6fcee107d /bukkit/src/main/java/com | |
| parent | 426de41edde2f5c4b5c091bd48ad67d9d5168827 (diff) | |
Reduce code duplication
Diffstat (limited to 'bukkit/src/main/java/com')
5 files changed, 19 insertions, 108 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java index 16e3697a..2bd15d6c 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java @@ -160,10 +160,10 @@ public class QuestQMenu implements QMenu { pageplaceholders.put("{prevpage}", String.valueOf(page - 1)); pageplaceholders.put("{nextpage}", String.valueOf(page + 1)); pageplaceholders.put("{page}", String.valueOf(page)); - pageIs = replaceItemStack(config.getItem("gui.page-desc"), pageplaceholders); + pageIs = MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.page-desc"), pageplaceholders); pageIs.setAmount(Math.min(page, 64)); - pagePrevIs = replaceItemStack(config.getItem("gui.page-prev"), pageplaceholders); - pageNextIs = replaceItemStack(config.getItem("gui.page-next"), pageplaceholders); + pagePrevIs = MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.page-prev"), pageplaceholders); + pageNextIs = MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.page-next"), pageplaceholders); if (config.getBoolean("options.categories-enabled") && backButtonEnabled) { inventory.setItem(45, back); @@ -258,35 +258,4 @@ public class QuestQMenu 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.getPlayerUUID()); - if (lore != null) { - for (String s : lore) { - for (Map.Entry<String, String> entry : placeholders.entrySet()) { - s = s.replace(entry.getKey(), entry.getValue()); - if (plugin.getPlaceholderAPIHook() != null && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - 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 && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); - } - } - ism.setLore(newLore); - newItemStack.setItemMeta(ism); - return newItemStack; - } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CategoryMenuElement.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CategoryMenuElement.java index 9aa2efb5..ce016d22 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CategoryMenuElement.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CategoryMenuElement.java @@ -2,14 +2,10 @@ package com.leonardobishop.quests.bukkit.menu.element; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.menu.QuestQMenu; +import com.leonardobishop.quests.bukkit.util.MenuUtils; import com.leonardobishop.quests.common.quest.Category; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; public class CategoryMenuElement extends MenuElement { @@ -36,29 +32,8 @@ public class CategoryMenuElement extends MenuElement { public ItemStack asItemStack() { Category category = plugin.getQuestManager().getCategoryById(questMenu.getCategoryName()); if (category != null) { - return replaceItemStack(plugin.getQItemStackRegistry().getCategoryItemStack(category)); + return MenuUtils.applyPlaceholders(plugin, owner, plugin.getQItemStackRegistry().getCategoryItemStack(category)); } return null; } - - private ItemStack replaceItemStack(ItemStack is) { - if (plugin.getPlaceholderAPIHook() != null && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - ItemStack newItemStack = is.clone(); - List<String> lore = newItemStack.getItemMeta().getLore(); - List<String> newLore = new ArrayList<>(); - ItemMeta ism = newItemStack.getItemMeta(); - Player player = Bukkit.getPlayer(owner); - 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/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java index 0eee9e92..f5874d35 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java @@ -4,7 +4,7 @@ import org.bukkit.inventory.ItemStack; public class CustomMenuElement extends MenuElement{ - private ItemStack itemStack; + private final ItemStack itemStack; public CustomMenuElement(ItemStack itemStack) { this.itemStack = itemStack; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java index baff1591..8df5454a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java @@ -4,6 +4,7 @@ import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStack; import com.leonardobishop.quests.bukkit.util.Format; +import com.leonardobishop.quests.bukkit.util.MenuUtils; import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.enums.QuestStartResult; import com.leonardobishop.quests.common.player.QPlayer; @@ -55,6 +56,7 @@ public class QuestMenuElement extends MenuElement { List<String> quests = new ArrayList<>(); for (String requirement : quest.getRequirements()) { Quest requirementQuest = plugin.getQuestManager().getQuestById(requirement); + if (requirementQuest == null) continue; if (!owner.getQuestProgressFile().hasQuestProgress(requirementQuest) || !owner.getQuestProgressFile().getQuestProgress(requirementQuest).isCompletedBefore()) { quests.add(Chat.strip(plugin.getQItemStackRegistry().getQuestItemStack(requirementQuest).getName())); @@ -63,58 +65,23 @@ public class QuestMenuElement extends MenuElement { Map<String, String> placeholders = new HashMap<>(); placeholders.put("{quest}", Chat.strip(qItemStack.getName())); placeholders.put("{requirements}", String.join(", ", quests)); - ItemStack is = replaceItemStack(config.getItem("gui.quest-locked-display"), placeholders); - return is; + return MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.quest-locked-display"), placeholders); } else if (status == QuestStartResult.QUEST_ALREADY_COMPLETED) { Map<String, String> placeholders = new HashMap<>(); placeholders.put("{quest}", Chat.strip(qItemStack.getName())); - ItemStack is = replaceItemStack(config.getItem("gui.quest-completed-display"), placeholders); - return is; + return MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.quest-completed-display"), placeholders); } else if (status == QuestStartResult.QUEST_NO_PERMISSION) { Map<String, String> placeholders = new HashMap<>(); placeholders.put("{quest}", Chat.strip(qItemStack.getName())); - ItemStack is = replaceItemStack(config.getItem("gui.quest-permission-display"), placeholders); - return is; + return MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.quest-permission-display"), placeholders); } else if (cooldown > 0) { Map<String, String> placeholders = new HashMap<>(); placeholders.put("{time}", Format.formatTime(TimeUnit.SECONDS.convert(cooldown, TimeUnit.MILLISECONDS))); placeholders.put("{quest}", Chat.strip(qItemStack.getName())); - ItemStack is = replaceItemStack(config.getItem("gui.quest-cooldown-display"), placeholders); - return is; + return MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), config.getItem("gui.quest-cooldown-display"), placeholders); } else { - return replaceItemStack(qItemStack.toItemStack(quest, owner, questProgress)); + return MenuUtils.applyPlaceholders(plugin, owner.getPlayerUUID(), qItemStack.toItemStack(quest, owner, questProgress)); } } - private ItemStack replaceItemStack(ItemStack is) { - return replaceItemStack(is, Collections.emptyMap()); - } - - private 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.getPlayerUUID()); - if (lore != null) { - for (String s : lore) { - for (Map.Entry<String, String> entry : placeholders.entrySet()) { - s = s.replace(entry.getKey(), entry.getValue()); - if (plugin.getPlaceholderAPIHook() != null && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - 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 && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); - } - } - ism.setLore(newLore); - newItemStack.setItemMeta(ism); - return newItemStack; - } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java index 562f13e6..f020564b 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java @@ -32,18 +32,18 @@ public class MenuUtils { for (String s : lore) { for (Map.Entry<String, String> entry : placeholders.entrySet()) { s = s.replace(entry.getKey(), entry.getValue()); - if (plugin.getPlaceholderAPIHook() != null && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - s = plugin.getPlaceholderAPIHook().replacePlaceholders(player, s); - } + } + if (plugin.getPlaceholderAPIHook() != null && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { + 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 && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { - ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); - } + } + if (plugin.getPlaceholderAPIHook() != null && plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { + ism.setDisplayName(plugin.getPlaceholderAPIHook().replacePlaceholders(player, ism.getDisplayName())); } ism.setLore(newLore); newItemStack.setItemMeta(ism); |
