summaryrefslogtreecommitdiffstats
path: root/bukkit
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-30 20:01:25 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-30 20:01:25 +0100
commit0e33389d4f9ae1dc9067fd813dce2903868d294c (patch)
treefb5ee6eb76536097283df183069eb3c6fcee107d /bukkit
parent426de41edde2f5c4b5c091bd48ad67d9d5168827 (diff)
Reduce code duplication
Diffstat (limited to 'bukkit')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java37
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CategoryMenuElement.java29
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java47
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java12
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);