diff options
Diffstat (limited to 'src/main/java/me/fatpigsarefat/quests/obj')
3 files changed, 104 insertions, 1 deletions
diff --git a/src/main/java/me/fatpigsarefat/quests/obj/Items.java b/src/main/java/me/fatpigsarefat/quests/obj/Items.java index 1ffeabc8..2661e29a 100644 --- a/src/main/java/me/fatpigsarefat/quests/obj/Items.java +++ b/src/main/java/me/fatpigsarefat/quests/obj/Items.java @@ -11,7 +11,9 @@ public enum Items { QUEST_COMPLETED("gui.quest-completed-display"), PAGE_PREV("gui.page-prev"), PAGE_NEXT("gui.page-next"), - PAGE_DESCRIPTION("gui.page-desc"); + PAGE_DESCRIPTION("gui.page-desc"), + QUEST_CANCEL_YES("gui.quest-cancel-yes"), + QUEST_CANCEL_NO("gui.quest-cancel-no"); String path; diff --git a/src/main/java/me/fatpigsarefat/quests/obj/Options.java b/src/main/java/me/fatpigsarefat/quests/obj/Options.java index 920f1132..9d697b33 100644 --- a/src/main/java/me/fatpigsarefat/quests/obj/Options.java +++ b/src/main/java/me/fatpigsarefat/quests/obj/Options.java @@ -16,6 +16,7 @@ public enum Options { GUITITLE_QUESTS_CATEGORY("options.guinames.quests-category"), GUITITLE_QUESTS("options.guinames.quests-menu"), GUITITLE_DAILY_QUESTS("options.guinames.daily-quests"), + GUITITLE_QUEST_CANCEL("options.guinames.quest-cancel"), ALLOW_QUEST_CANCEL("options.allow-quest-cancel"); private String path; diff --git a/src/main/java/me/fatpigsarefat/quests/obj/misc/QMenuCancel.java b/src/main/java/me/fatpigsarefat/quests/obj/misc/QMenuCancel.java new file mode 100644 index 00000000..6021fd9d --- /dev/null +++ b/src/main/java/me/fatpigsarefat/quests/obj/misc/QMenuCancel.java @@ -0,0 +1,100 @@ +package me.fatpigsarefat.quests.obj.misc; + +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.Material; +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; + +public class QMenuCancel implements QMenu { + + private HashMap<Integer, String> slotsToQuestIds = new HashMap<>(); + private QMenuQuest superMenu; + private QPlayer owner; + private Quest quest; + + public QMenuCancel(QPlayer owner, QMenuQuest superMenu, Quest quest) { + this.owner = owner; + this.superMenu = superMenu; + this.quest = quest; + } + + public void populate(List<Quest> quests) { + /* ignored */ + } + + @Override + public HashMap<Integer, String> getSlotsToMenu() { + return slotsToQuestIds; + } + + public Quest getQuest() { + return quest; + } + + @Override + public QPlayer getOwner() { + return owner; + } + + public Inventory toInventory() { + String title = Options.GUITITLE_QUEST_CANCEL.getStringValue(); + + ItemStack yes = Items.QUEST_CANCEL_YES.getItem(); + ItemStack no = Items.QUEST_CANCEL_NO.getItem(); + + ItemStack is = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 7); + ItemMeta ism = is.getItemMeta(); + ism.setDisplayName(" "); + is.setItemMeta(ism); + + Inventory inventory = Bukkit.createInventory(null, 27, title); + + for (int i = 0; i < inventory.getSize(); i++) { + inventory.setItem(i, is); + } + + inventory.setItem(10, no); + inventory.setItem(11, no); + inventory.setItem(12, no); + inventory.setItem(13, quest.getDisplayItem().toItemStack(owner.getQuestProgressFile().getQuestProgress(quest))); + inventory.setItem(14, yes); + inventory.setItem(15, yes); + inventory.setItem(16, yes); + + return inventory; + } + + public QMenuQuest 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; + } +} |
