diff options
Diffstat (limited to 'src/main/java/com/leonardobishop/quests')
26 files changed, 367 insertions, 423 deletions
diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java index 63fcdf08..eee970b3 100644 --- a/src/main/java/com/leonardobishop/quests/Quests.java +++ b/src/main/java/com/leonardobishop/quests/Quests.java @@ -2,7 +2,7 @@ package com.leonardobishop.quests; import com.leonardobishop.quests.bstats.Metrics; import com.leonardobishop.quests.commands.CommandQuests; -import com.leonardobishop.quests.events.EventInventory; +import com.leonardobishop.quests.events.MenuController; import com.leonardobishop.quests.events.EventPlayerJoin; import com.leonardobishop.quests.events.EventPlayerLeave; import com.leonardobishop.quests.hooks.itemgetter.ItemGetter; @@ -15,7 +15,7 @@ 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.obj.Messages; +import com.leonardobishop.quests.util.Messages; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.player.QPlayerManager; import com.leonardobishop.quests.quests.QuestManager; @@ -113,7 +113,7 @@ public class Quests extends JavaPlugin { Bukkit.getPluginCommand("quests").setExecutor(new CommandQuests(this)); Bukkit.getPluginManager().registerEvents(new EventPlayerJoin(this), this); - Bukkit.getPluginManager().registerEvents(new EventInventory(this), this); + Bukkit.getPluginManager().registerEvents(new MenuController(this), this); Bukkit.getPluginManager().registerEvents(new EventPlayerLeave(this), this); Metrics metrics = new Metrics(this); diff --git a/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java b/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java index 71e42dff..67b545f6 100644 --- a/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java +++ b/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java @@ -1,12 +1,11 @@ package com.leonardobishop.quests; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.util.Options; import com.leonardobishop.quests.player.QPlayer; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -import java.util.Collection; import java.util.LinkedList; import java.util.Queue; import java.util.UUID; diff --git a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java index 05e94e8f..1ad75d2a 100644 --- a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java +++ b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java @@ -1,8 +1,8 @@ package com.leonardobishop.quests; import com.leonardobishop.quests.hooks.itemgetter.ItemGetter; -import com.leonardobishop.quests.obj.Options; -import com.leonardobishop.quests.obj.misc.QItemStack; +import com.leonardobishop.quests.util.Options; +import com.leonardobishop.quests.menu.QItemStack; import com.leonardobishop.quests.quests.Category; import com.leonardobishop.quests.quests.Quest; import com.leonardobishop.quests.quests.Task; diff --git a/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java b/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java index 0b8e99f7..b45919b1 100644 --- a/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java +++ b/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java @@ -2,8 +2,8 @@ package com.leonardobishop.quests.api; import com.leonardobishop.quests.Quests; import com.leonardobishop.quests.api.enums.QuestStartResult; -import com.leonardobishop.quests.obj.Options; -import com.leonardobishop.quests.obj.misc.QItemStack; +import com.leonardobishop.quests.util.Options; +import com.leonardobishop.quests.menu.QItemStack; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile; import com.leonardobishop.quests.quests.Category; diff --git a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java index d88ca70f..4df5cd7d 100644 --- a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java +++ b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java @@ -3,8 +3,8 @@ package com.leonardobishop.quests.commands; import com.leonardobishop.quests.Quests; import com.leonardobishop.quests.QuestsConfigLoader; import com.leonardobishop.quests.api.enums.QuestStartResult; -import com.leonardobishop.quests.obj.Messages; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.util.Messages; +import com.leonardobishop.quests.util.Options; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile; import com.leonardobishop.quests.quests.Category; @@ -377,17 +377,23 @@ public class CommandQuests implements TabExecutor { } else { if (qPlayer == null) { // shit + fan - sender.sendMessage(ChatColor.RED + "An error occurred finding your player."); //lazy? :) + sender.sendMessage(ChatColor.RED + "Your quest progress file has not been loaded yet."); //lazy? :) } else { qPlayer.getQuestProgressFile().startQuest(quest); } } } else if (args[2].equalsIgnoreCase("c") || args[2].equalsIgnoreCase("cancel")) { if (qPlayer == null) { - sender.sendMessage(ChatColor.RED + "An error occurred finding your player."); //lazy x2? ;) + sender.sendMessage(ChatColor.RED + "Your quest progress file has not been loaded yet."); //lazy x2? ;) } else { qPlayer.getQuestProgressFile().cancelQuest(quest); } + } else if (args[2].equalsIgnoreCase("t") || args[2].equalsIgnoreCase("track")) { + if (qPlayer == null) { + sender.sendMessage(ChatColor.RED + "Your quest progress file has not been loaded yet."); //lazy x2? ;) + } else { + qPlayer.getQuestProgressFile().trackQuest(quest); + } } else { sender.sendMessage(Messages.COMMAND_SUB_DOESNTEXIST.getMessage().replace("{sub}", args[2])); } @@ -481,7 +487,7 @@ public class CommandQuests implements TabExecutor { sender.sendMessage(ChatColor.GRAY + "The following commands are available: "); sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests " + ChatColor.DARK_GRAY + ": show quests"); sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests c/category <categoryid> " + ChatColor.DARK_GRAY + ": open category by ID"); - sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests q/quest <questid> <start/cancel>" + ChatColor.DARK_GRAY + ": start or cancel quest by ID"); + sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests q/quest <questid> <start|cancel|track>" + ChatColor.DARK_GRAY + ": start, cancel or track quest by ID"); sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests a/admin " + ChatColor.DARK_GRAY + ": view help for admins"); sender.sendMessage(ChatColor.GRAY.toString() + ChatColor.STRIKETHROUGH + "--------=[" + ChatColor.RED + " made with <3 by LMBishop " + ChatColor .GRAY.toString() + ChatColor.STRIKETHROUGH + "]=--------"); @@ -578,7 +584,7 @@ public class CommandQuests implements TabExecutor { && sender.hasPermission("quests.admin")) { Quest q = plugin.getQuestManager().getQuestById(args[1]); if (q != null) { - List<String> options = Arrays.asList("start", "cancel"); + List<String> options = Arrays.asList("start", "cancel", "track"); return matchTabComplete(args[2], options); } } else if (args[0].equalsIgnoreCase("a") || args[0].equalsIgnoreCase("admin") diff --git a/src/main/java/com/leonardobishop/quests/events/EventInventory.java b/src/main/java/com/leonardobishop/quests/events/EventInventory.java deleted file mode 100644 index e1c4d0c2..00000000 --- a/src/main/java/com/leonardobishop/quests/events/EventInventory.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.leonardobishop.quests.events; - -import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.api.enums.QuestStartResult; -import com.leonardobishop.quests.obj.Messages; -import com.leonardobishop.quests.obj.Options; -import com.leonardobishop.quests.obj.misc.*; -import com.leonardobishop.quests.quests.Quest; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryType; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.UUID; - -public class EventInventory implements Listener { - - private static final HashMap<UUID, QMenu> tracker = new HashMap<>(); - private final Quests plugin; - - // ADD PLAYERS TO THE BUFFER BEFORE AN ANTICIPATED MENU CHANGE SO THAT - // THEY ARE NOT LOST FROM THE TRACKER WHEN CHANGING MENUS - private final ArrayList<UUID> buffer = new ArrayList<>(); - - public EventInventory(Quests plugin) { - this.plugin = plugin; - } - - /** - * Add a player to the tracker so the event can watch them in the menu. - * - * @param uuid UUID of player to track - * @param qMenu The menu they have open - */ - public static void track(UUID uuid, QMenu qMenu) { - tracker.put(uuid, qMenu); - } - - @EventHandler - public void onEvent(InventoryClickEvent event) { - // check if the player has a quest menu open - if (tracker.containsKey(event.getWhoClicked().getUniqueId())) { - event.setCancelled(true); - if (event.getClickedInventory() == null) - return; //The player clicked outside the inventory - if (event.getClickedInventory().getType() == InventoryType.PLAYER) - return; //The clicked inventory is a player inventory type - QMenu qMenu = tracker.get(event.getWhoClicked().getUniqueId()); - - // **** MENU TYPE: QUESTS IN CATEGORY/ALL QUESTS **** - if (qMenu instanceof QMenuQuest) { - QMenuQuest qMenuQuest = (QMenuQuest) qMenu; - - if (qMenuQuest.getPagePrevLocation() == event.getSlot()) { - // (see line 26) - buffer.add(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().openInventory(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() - 1)); - - } else if (qMenuQuest.getPageNextLocation() == event.getSlot()) { - //This shouldn't be here lol, forgot about it - buffer.add(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().openInventory(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() + 1)); - - // return to QMenuCategory (category listing) - } else if (Options.CATEGORIES_ENABLED.getBooleanValue() && qMenuQuest.getBackButtonLocation() == event.getSlot()) { - QMenuCategory qMenuCategory = qMenuQuest.getSuperMenu(); - buffer.add(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().openInventory(qMenuCategory.toInventory(1)); - tracker.put(event.getWhoClicked().getUniqueId(), qMenuCategory); - - // handle when player wishes to start a quest by matching the slot they clicked to a predetermined - // map which maps quests to slots so you do not have to compare the item stack - } else if (event.getSlot() < qMenuQuest.getPageSize() && qMenuQuest.getSlotsToMenu().containsKey(event.getSlot() + (((qMenuQuest - .getCurrentPage()) - 1) * qMenuQuest.getPageSize()))) { - - String questid = qMenuQuest.getSlotsToMenu().get(event.getSlot() + (((qMenuQuest.getCurrentPage()) - 1) * qMenuQuest.getPageSize())); - Quest quest = plugin.getQuestManager().getQuestById(questid); - if (event.getClick() == ClickType.LEFT) { - if (Options.QUEST_AUTOSTART.getBooleanValue()) return; - if (qMenuQuest.getOwner().getQuestProgressFile().startQuest(quest) == QuestStartResult.QUEST_SUCCESS) { - event.getWhoClicked().closeInventory(); //TODO Option to keep the menu open - } - } else if (event.getClick() == ClickType.MIDDLE && Options.ALLOW_QUEST_TRACK.getBooleanValue()) { - middleClickQuest(qMenuQuest, quest, Bukkit.getPlayer(qMenuQuest.getOwner().getUuid())); - } else if (event.getClick() == ClickType.RIGHT && Options.ALLOW_QUEST_CANCEL.getBooleanValue() - && qMenuQuest.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { - rightClickQuest(qMenuQuest, quest, Bukkit.getPlayer(qMenuQuest.getOwner().getUuid())); - } - } - - // **** MENU TYPE: STARTED QUESTS **** - } else if (qMenu instanceof QMenuStarted) { - QMenuStarted qMenuQuest = (QMenuStarted) qMenu; - - if (qMenuQuest.getPagePrevLocation() == event.getSlot()) { - buffer.add(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().openInventory(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() - 1)); - - } else if (qMenuQuest.getPageNextLocation() == event.getSlot()) { - buffer.add(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().openInventory(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() + 1)); - - } else if (event.getSlot() < qMenuQuest.getPageSize() && qMenuQuest.getSlotsToMenu().containsKey(event.getSlot() + (((qMenuQuest - .getCurrentPage()) - 1) * qMenuQuest.getPageSize()))) { - - // repeat from above - String questid = qMenuQuest.getSlotsToMenu().get(event.getSlot() + (((qMenuQuest.getCurrentPage()) - 1) * qMenuQuest.getPageSize())); - Quest quest = plugin.getQuestManager().getQuestById(questid); - if (event.getClick() == ClickType.MIDDLE && Options.ALLOW_QUEST_TRACK.getBooleanValue()) { - middleClickQuest(qMenuQuest, quest, Bukkit.getPlayer(qMenuQuest.getOwner().getUuid())); - } else if (event.getClick() == ClickType.RIGHT && Options.ALLOW_QUEST_CANCEL.getBooleanValue() - && qMenuQuest.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { - rightClickQuest(qMenuQuest, quest, Bukkit.getPlayer(qMenuQuest.getOwner().getUuid())); - } - } - - // **** MENU TYPE: CATEGORY LISTING **** - } else if (qMenu instanceof QMenuCategory) { - QMenuCategory qMenuCategory = (QMenuCategory) qMenu; - - if (qMenuCategory.getSlotsToMenu().containsKey(event.getSlot())) { - QMenuQuest qMenuQuest = qMenuCategory.getSlotsToMenu().get(event.getSlot()); - buffer.add(event.getWhoClicked().getUniqueId()); - if (qMenuCategory.getOwner().openCategory(plugin.getQuestManager().getCategoryById(qMenuQuest.getCategoryName()), qMenuQuest) != 0) { - buffer.remove(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().sendMessage(Messages.QUEST_CATEGORY_PERMISSION.getMessage()); - } - } - - // **** MENU TYPE: CANCELLING QUEST MENU **** - } else if (qMenu instanceof QMenuCancel) { - QMenuCancel qMenuCancel = (QMenuCancel) qMenu; - - event.setCancelled(true); - if (event.getSlot() == 10 || event.getSlot() == 11 || event.getSlot() == 12) { - QMenu qSuperMenu = qMenuCancel.getSuperMenu(); - buffer.add(event.getWhoClicked().getUniqueId()); - event.getWhoClicked().openInventory(qSuperMenu.toInventory(1)); - tracker.put(event.getWhoClicked().getUniqueId(), qSuperMenu); - } else if (event.getSlot() == 14 || event.getSlot() == 15 || event.getSlot() == 16) { - if (qMenuCancel.getOwner().getQuestProgressFile().cancelQuest(qMenuCancel.getQuest())) { - event.getWhoClicked().closeInventory(); - } - } - } - } - } - - private void middleClickQuest(QMenu menu, Quest quest, Player player) { - if (menu.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { - String tracked = menu.getOwner().getQuestProgressFile().getPlayerPreferences().getTrackedQuestId(); - - if (quest.getId().equals(tracked)) { - player.sendMessage(Messages.QUEST_TRACK_STOP.getMessage().replace("{quest}", quest.getDisplayNameStripped())); - menu.getOwner().getQuestProgressFile().trackQuest(null); - } else { - player.sendMessage(Messages.QUEST_TRACK.getMessage().replace("{quest}", quest.getDisplayNameStripped())); - menu.getOwner().getQuestProgressFile().trackQuest(quest); - } - player.closeInventory(); - } - } - - private void rightClickQuest(QMenu menu, Quest quest, Player player) { - if (menu.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { - if (Options.QUEST_AUTOSTART.getBooleanValue()) return; - QMenuCancel qMenuCancel = new QMenuCancel(menu.getOwner(), menu, quest); - buffer.add(player.getUniqueId()); - player.openInventory(qMenuCancel.toInventory(1)); - tracker.put(player.getUniqueId(), qMenuCancel); - } - } - - @EventHandler - public void onEvent(InventoryCloseEvent event) { - // the buffer prevents players being lost from the tracker when changing menus, add to the buffer before - // an anticipated menu change - if (buffer.contains(event.getPlayer().getUniqueId())) { - buffer.remove(event.getPlayer().getUniqueId()); - } else tracker.remove(event.getPlayer().getUniqueId()); - } -} diff --git a/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java b/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java index 5c12770d..143046be 100644 --- a/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java +++ b/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java @@ -1,8 +1,8 @@ package com.leonardobishop.quests.events; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.obj.Messages; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.util.Messages; +import com.leonardobishop.quests.util.Options; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/com/leonardobishop/quests/events/MenuController.java b/src/main/java/com/leonardobishop/quests/events/MenuController.java new file mode 100644 index 00000000..9cc390be --- /dev/null +++ b/src/main/java/com/leonardobishop/quests/events/MenuController.java @@ -0,0 +1,105 @@ +package com.leonardobishop.quests.events; + +import com.leonardobishop.quests.Quests; +import com.leonardobishop.quests.api.enums.QuestStartResult; +import com.leonardobishop.quests.menu.QMenu; +import com.leonardobishop.quests.menu.QMenuCancel; +import com.leonardobishop.quests.menu.QMenuCategory; +import com.leonardobishop.quests.menu.QMenuQuest; +import com.leonardobishop.quests.menu.QMenuStarted; +import com.leonardobishop.quests.util.Messages; +import com.leonardobishop.quests.util.Options; +import com.leonardobishop.quests.quests.Quest; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryType; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.UUID; + +public class MenuController implements Listener { + + private static final HashMap<UUID, QMenu> tracker = new HashMap<>(); + private static final ArrayList<UUID> buffer = new ArrayList<>(); + + private final Quests plugin; + + public MenuController(Quests plugin) { + this.plugin = plugin; + } + + /** + * Add a player to the tracker so the event can watch them in the menu. + * + * @param uuid UUID of player to track + * @param qMenu The menu they have open + */ + public static void track(UUID uuid, QMenu qMenu) { + tracker.put(uuid, qMenu); + } + + public HashMap<UUID, QMenu> getTracker() { + return tracker; + } + + public ArrayList<UUID> getBuffer() { + return buffer; + } + + @EventHandler + public void onEvent(InventoryClickEvent event) { + // check if the player has a quest menu open + if (tracker.containsKey(event.getWhoClicked().getUniqueId())) { + event.setCancelled(true); + if (event.getClickedInventory() == null) + return; //The player clicked outside the inventory + if (event.getClickedInventory().getType() == InventoryType.PLAYER) + return; //The clicked inventory is a player inventory type + + QMenu qMenu = tracker.get(event.getWhoClicked().getUniqueId()); + qMenu.handleClick(event, this); + } + } + + // utility + public void middleClickQuest(QMenu menu, Quest quest, Player player) { + if (menu.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { + String tracked = menu.getOwner().getQuestProgressFile().getPlayerPreferences().getTrackedQuestId(); + + if (quest.getId().equals(tracked)) { + player.sendMessage(Messages.QUEST_TRACK_STOP.getMessage().replace("{quest}", quest.getDisplayNameStripped())); + menu.getOwner().getQuestProgressFile().trackQuest(null); + } else { + player.sendMessage(Messages.QUEST_TRACK.getMessage().replace("{quest}", quest.getDisplayNameStripped())); + menu.getOwner().getQuestProgressFile().trackQuest(quest); + } + player.closeInventory(); + } + } + + // utility + public void rightClickQuest(QMenu menu, Quest quest, Player player) { + if (menu.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { + if (Options.QUEST_AUTOSTART.getBooleanValue()) return; + QMenuCancel qMenuCancel = new QMenuCancel(menu.getOwner(), menu, quest); + buffer.add(player.getUniqueId()); + player.openInventory(qMenuCancel.toInventory(1)); + tracker.put(player.getUniqueId(), qMenuCancel); + } + } + + @EventHandler + public void onEvent(InventoryCloseEvent event) { + // the buffer prevents players being lost from the tracker when changing menus, add to the buffer before + // an anticipated menu change + if (buffer.contains(event.getPlayer().getUniqueId())) { + buffer.remove(event.getPlayer().getUniqueId()); + } else tracker.remove(event.getPlayer().getUniqueId()); + } +} diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QItemStack.java b/src/main/java/com/leonardobishop/quests/menu/QItemStack.java index 1995fffe..4577bd59 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QItemStack.java +++ b/src/main/java/com/leonardobishop/quests/menu/QItemStack.java @@ -1,7 +1,7 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.util.Options; import com.leonardobishop.quests.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile; import com.leonardobishop.quests.quests.Quest; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenu.java b/src/main/java/com/leonardobishop/quests/menu/QMenu.java index a4f1bafb..1efc34e8 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenu.java +++ b/src/main/java/com/leonardobishop/quests/menu/QMenu.java @@ -1,6 +1,8 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; +import com.leonardobishop.quests.events.MenuController; import com.leonardobishop.quests.player.QPlayer; +import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import java.util.HashMap; @@ -10,5 +12,6 @@ public interface QMenu { QPlayer getOwner(); HashMap<?, ?> getSlotsToMenu(); Inventory toInventory(int page); + void handleClick(InventoryClickEvent event, MenuController controller); } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java b/src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java index 1c04d5cc..797223cc 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java +++ b/src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java @@ -1,18 +1,18 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; -import com.leonardobishop.quests.obj.Items; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.events.MenuController; +import com.leonardobishop.quests.util.Items; +import com.leonardobishop.quests.util.Options; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.quests.Quest; import org.bukkit.Bukkit; +import org.bukkit.event.inventory.InventoryClickEvent; 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 { @@ -73,6 +73,20 @@ public class QMenuCancel implements QMenu { return inventory; } + @Override + public void handleClick(InventoryClickEvent event, MenuController controller) { + if (event.getSlot() == 10 || event.getSlot() == 11 || event.getSlot() == 12) { + QMenu qSuperMenu = this.getSuperMenu(); + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().openInventory(qSuperMenu.toInventory(1)); + controller.getTracker().put(event.getWhoClicked().getUniqueId(), qSuperMenu); + } else if (event.getSlot() == 14 || event.getSlot() == 15 || event.getSlot() == 16) { + if (this.getOwner().getQuestProgressFile().cancelQuest(this.getQuest())) { + event.getWhoClicked().closeInventory(); + } + } + } + public QMenu getSuperMenu() { return superMenu; } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java b/src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java index 86f4d57f..f8b4cd8a 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java +++ b/src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java @@ -1,12 +1,15 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.events.MenuController; +import com.leonardobishop.quests.util.Messages; +import com.leonardobishop.quests.util.Options; 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.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -102,6 +105,18 @@ public class QMenuCategory implements QMenu { } + @Override + public void handleClick(InventoryClickEvent event, MenuController controller) { + if (this.getSlotsToMenu().containsKey(event.getSlot())) { + QMenuQuest qMenuQuest = this.getSlotsToMenu().get(event.getSlot()); + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + if (this.getOwner().openCategory(plugin.getQuestManager().getCategoryById(qMenuQuest.getCategoryName()), qMenuQuest) != 0) { + controller.getBuffer().remove(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().sendMessage(Messages.QUEST_CATEGORY_PERMISSION.getMessage()); + } + } + } + public ItemStack replaceItemStack(ItemStack is) { if (plugin.getPlaceholderAPIHook() != null && Options.GUI_USE_PLACEHOLDERAPI.getBooleanValue()) { ItemStack newItemStack = is.clone(); diff --git a/src/main/java/com/leonardobishop/quests/menu/QMenuDaily.java b/src/main/java/com/leonardobishop/quests/menu/QMenuDaily.java new file mode 100644 index 00000000..a89765e4 --- /dev/null +++ b/src/main/java/com/leonardobishop/quests/menu/QMenuDaily.java @@ -0,0 +1,106 @@ +//package com.leonardobishop.quests.menu; +// +//import com.leonardobishop.quests.util.Options; +//import com.leonardobishop.quests.player.QPlayer; +//import com.leonardobishop.quests.quests.Quest; +//import org.bukkit.Bukkit; +//import org.bukkit.inventory.Inventory; +// +//import java.util.HashMap; +//import java.util.List; +// +//public class QMenuDaily implements QMenu { +// +// private final HashMap<Integer, String> slotsToQuestIds = new HashMap<>(); +// private int backButtonLocation = -1; +// private boolean backButtonEnabled = true; +// private final QMenuCategory superMenu; +// private String categoryName; +// private final int pageSize = 45; +// private final QPlayer owner; +// +// public QMenuDaily(QPlayer owner, QMenuCategory superMenu) { +// this.owner = owner; +// this.superMenu = superMenu; +// } +// +// public void populate(List<Quest> quests) { +// int slot = 11; +// for (Quest quest : quests) { +// slotsToQuestIds.put(slot, quest.getId()); +// slot++; +// if (slot == 16) { +// break; +// } +// } +// } +// +// @Override +// public HashMap<Integer, String> getSlotsToMenu() { +// return slotsToQuestIds; +// } +// +// @Override +// public QPlayer getOwner() { +// return owner; +// } +// +// public String getCategoryName() { +// return categoryName; +// } +// +// public Inventory toInventory(int page) { +// int pageMin = pageSize * (page - 1); +// int pageMax = pageSize * page; +// String title = Options.GUITITLE_DAILY_QUESTS.toString(); +// +// // Inventory inventory = Bukkit.createInventory(null, 27, title); +// +// //TODO daily quests +// +//// int invSlot = 11; +//// for (int pointer = pageMin; pointer < pageMax; pointer++) { +//// if (slotsToQuestIds.containsKey(pointer)) { +//// Quest quest = Quests.getQuestManager().getQuestById(slotsToQuestIds.get(pointer)); +//// QuestProgress questProgress = owner.getQuestProgressFile().getQuestProgress(quest); +//// long cooldown = owner.getQuestProgressFile().getCooldownFor(quest); +//// if (!owner.getQuestProgressFile().hasMetRequirements(quest)) { +//// List<String> quests = new ArrayList<>(); +//// for (String requirement : quest.getRequirements()) { +//// quests.add(Quests.getQuestManager().getQuestById(requirement).getDisplayNameStripped()); +//// } +//// Map<String, String> placeholders = new HashMap<>(); +//// placeholders.put("{quest}", quest.getDisplayNameStripped()); +//// placeholders.put("{requirements}", String.join(", ", quests)); +//// ItemStack is = replaceItemStack(Items.QUEST_LOCKED.getItem(), placeholders); +//// inventory.setItem(invSlot, is); +//// } else if (!quest.isRepeatable() && questProgress.isCompletedBefore()) { +//// Map<String, String> placeholders = new HashMap<>(); +//// placeholders.put("{quest}", quest.getDisplayNameStripped()); +//// ItemStack is = replaceItemStack(Items.QUEST_COMPLETED.getItem(), placeholders); +//// inventory.setItem(invSlot, is); +//// } else if (cooldown > 0) { +//// Map<String, String> placeholders = new HashMap<>(); +//// placeholders.put("{time}", Quests.convertToFormat(TimeUnit.MINUTES.convert(cooldown, TimeUnit.MILLISECONDS))); +//// placeholders.put("{quest}", quest.getDisplayNameStripped()); +//// ItemStack is = replaceItemStack(Items.QUEST_COOLDOWN.getItem(), placeholders); +//// inventory.setItem(invSlot, is); +//// } else { +//// inventory.setItem(invSlot, Quests.getQuestManager().getQuestById(quest.getId()).getDisplayItem().toItemStack(questProgress)); +//// } +//// } +//// invSlot++; +//// } +//// return inventory; +// return Bukkit.createInventory(null, 27, title); +// } +// +// //Implement too +// public QMenuCategory getSuperMenu() { +// return this.superMenu; +// } +// +// public int getPageSize() { +// return this.pageSize; +// } +//} diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java b/src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java index dbaf23ff..bdcf20c7 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java +++ b/src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java @@ -1,13 +1,17 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.obj.Items; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.api.enums.QuestStartResult; +import com.leonardobishop.quests.events.MenuController; +import com.leonardobishop.quests.util.Items; +import com.leonardobishop.quests.util.Options; 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.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -203,6 +207,41 @@ public class QMenuQuest implements QMenu { return inventory; } + @Override + public void handleClick(InventoryClickEvent event, MenuController controller) { + if (this.getPagePrevLocation() == event.getSlot()) { + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().openInventory(this.toInventory(this.getCurrentPage() - 1)); + + } else if (this.getPageNextLocation() == event.getSlot()) { + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().openInventory(this.toInventory(this.getCurrentPage() + 1)); + + } else if (Options.CATEGORIES_ENABLED.getBooleanValue() && this.getBackButtonLocation() == event.getSlot()) { + QMenuCategory qMenuCategory = this.getSuperMenu(); + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().openInventory(qMenuCategory.toInventory(1)); + controller.getTracker().put(event.getWhoClicked().getUniqueId(), qMenuCategory); + + } else if (event.getSlot() < this.getPageSize() && this.getSlotsToMenu().containsKey(event.getSlot() + (((this + .getCurrentPage()) - 1) * this.getPageSize()))) { + + String questid = this.getSlotsToMenu().get(event.getSlot() + (((this.getCurrentPage()) - 1) * this.getPageSize())); + Quest quest = plugin.getQuestManager().getQuestById(questid); + if (event.getClick() == ClickType.LEFT) { + if (Options.QUEST_AUTOSTART.getBooleanValue()) return; + if (this.getOwner().getQuestProgressFile().startQuest(quest) == QuestStartResult.QUEST_SUCCESS) { + event.getWhoClicked().closeInventory(); //TODO Option to keep the menu open + } + } else if (event.getClick() == ClickType.MIDDLE && Options.ALLOW_QUEST_TRACK.getBooleanValue()) { + controller.middleClickQuest(this, quest, Bukkit.getPlayer(this.getOwner().getUuid())); + } else if (event.getClick() == ClickType.RIGHT && Options.ALLOW_QUEST_CANCEL.getBooleanValue() + && this.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { + controller.rightClickQuest(this, quest, Bukkit.getPlayer(this.getOwner().getUuid())); + } + } + } + public boolean isBackButtonEnabled() { return backButtonEnabled; } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuStarted.java b/src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java index 88222b57..5faf2b5b 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuStarted.java +++ b/src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java @@ -1,13 +1,16 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.obj.Items; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.events.MenuController; +import com.leonardobishop.quests.util.Items; +import com.leonardobishop.quests.util.Options; 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.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -142,6 +145,31 @@ public class QMenuStarted implements QMenu { return inventory; } + @Override + public void handleClick(InventoryClickEvent event, MenuController controller) { + if (this.getPagePrevLocation() == event.getSlot()) { + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().openInventory(this.toInventory(this.getCurrentPage() - 1)); + + } else if (this.getPageNextLocation() == event.getSlot()) { + controller.getBuffer().add(event.getWhoClicked().getUniqueId()); + event.getWhoClicked().openInventory(this.toInventory(this.getCurrentPage() + 1)); + + } else if (event.getSlot() < this.getPageSize() && this.getSlotsToMenu().containsKey(event.getSlot() + (((this + .getCurrentPage()) - 1) * this.getPageSize()))) { + + // repeat from above + String questid = this.getSlotsToMenu().get(event.getSlot() + (((this.getCurrentPage()) - 1) * this.getPageSize())); + Quest quest = plugin.getQuestManager().getQuestById(questid); + if (event.getClick() == ClickType.MIDDLE && Options.ALLOW_QUEST_TRACK.getBooleanValue()) { + controller.middleClickQuest(this, quest, Bukkit.getPlayer(this.getOwner().getUuid())); + } else if (event.getClick() == ClickType.RIGHT && Options.ALLOW_QUEST_CANCEL.getBooleanValue() + && this.getOwner().getQuestProgressFile().hasStartedQuest(quest)) { + controller.rightClickQuest(this, quest, Bukkit.getPlayer(this.getOwner().getUuid())); + } + } + } + public ItemStack replaceItemStack(ItemStack is) { return replaceItemStack(is, Collections.emptyMap()); } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QuestSortWrapper.java b/src/main/java/com/leonardobishop/quests/menu/QuestSortWrapper.java index 40cd563d..a742e6e8 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QuestSortWrapper.java +++ b/src/main/java/com/leonardobishop/quests/menu/QuestSortWrapper.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.obj.misc; +package com.leonardobishop.quests.menu; import com.leonardobishop.quests.Quests; import com.leonardobishop.quests.quests.Category; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java deleted file mode 100644 index 0e0cc132..00000000 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.leonardobishop.quests.obj.misc; - -import com.leonardobishop.quests.obj.Options; -import com.leonardobishop.quests.player.QPlayer; -import com.leonardobishop.quests.quests.Quest; -import org.bukkit.Bukkit; -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 QMenuDaily implements QMenu { - - private final HashMap<Integer, String> slotsToQuestIds = new HashMap<>(); - private int backButtonLocation = -1; - private boolean backButtonEnabled = true; - private final QMenuCategory superMenu; - private String categoryName; - private final int pageSize = 45; - private final QPlayer owner; - - public QMenuDaily(QPlayer owner, QMenuCategory superMenu) { - this.owner = owner; - this.superMenu = superMenu; - } - - public void populate(List<Quest> quests) { - int slot = 11; - for (Quest quest : quests) { - slotsToQuestIds.put(slot, quest.getId()); - slot++; - if (slot == 16) { - break; - } - } - } - - @Override - public HashMap<Integer, String> getSlotsToMenu() { - return slotsToQuestIds; - } - - @Override - public QPlayer getOwner() { - return owner; - } - - public String getCategoryName() { - return categoryName; - } - - public Inventory toInventory(int page) { - int pageMin = pageSize * (page - 1); - int pageMax = pageSize * page; - String title = Options.GUITITLE_DAILY_QUESTS.toString(); - - // Inventory inventory = Bukkit.createInventory(null, 27, title); - - //TODO daily quests - -// int invSlot = 11; -// for (int pointer = pageMin; pointer < pageMax; pointer++) { -// if (slotsToQuestIds.containsKey(pointer)) { -// Quest quest = Quests.getQuestManager().getQuestById(slotsToQuestIds.get(pointer)); -// QuestProgress questProgress = owner.getQuestProgressFile().getQuestProgress(quest); -// long cooldown = owner.getQuestProgressFile().getCooldownFor(quest); -// if (!owner.getQuestProgressFile().hasMetRequirements(quest)) { -// List<String> quests = new ArrayList<>(); -// for (String requirement : quest.getRequirements()) { -// quests.add(Quests.getQuestManager().getQuestById(requirement).getDisplayNameStripped()); -// } -// Map<String, String> placeholders = new HashMap<>(); -// placeholders.put("{quest}", quest.getDisplayNameStripped()); -// placeholders.put("{requirements}", String.join(", ", quests)); -// ItemStack is = replaceItemStack(Items.QUEST_LOCKED.getItem(), placeholders); -// inventory.setItem(invSlot, is); -// } else if (!quest.isRepeatable() && questProgress.isCompletedBefore()) { -// Map<String, String> placeholders = new HashMap<>(); -// placeholders.put("{quest}", quest.getDisplayNameStripped()); -// ItemStack is = replaceItemStack(Items.QUEST_COMPLETED.getItem(), placeholders); -// inventory.setItem(invSlot, is); -// } else if (cooldown > 0) { -// Map<String, String> placeholders = new HashMap<>(); -// placeholders.put("{time}", Quests.convertToFormat(TimeUnit.MINUTES.convert(cooldown, TimeUnit.MILLISECONDS))); -// placeholders.put("{quest}", quest.getDisplayNameStripped()); -// ItemStack is = replaceItemStack(Items.QUEST_COOLDOWN.getItem(), placeholders); -// inventory.setItem(invSlot, is); -// } else { -// inventory.setItem(invSlot, Quests.getQuestManager().getQuestById(quest.getId()).getDisplayItem().toItemStack(questProgress)); -// } -// } -// invSlot++; -// } -// return inventory; - return Bukkit.createInventory(null, 27, title); - } - - //Implement too - public QMenuCategory getSuperMenu() { - return this.superMenu; - } - - public int getPageSize() { - return this.pageSize; - } -} diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java b/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java deleted file mode 100644 index a8800d54..00000000 --- a/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java +++ /dev/null @@ -1,71 +0,0 @@ -//package com.leonardobishop.quests.obj.misc.creator; -// -//import com.leonardobishop.quests.obj.misc.QMenu; -//import com.leonardobishop.quests.player.QPlayer; -//import org.bukkit.Bukkit; -//import org.bukkit.ChatColor; -//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; -// -//public class QMenuCreator implements QMenu { -// -// private final QPlayer owner; -// -// public QMenuCreator(QPlayer owner) { -// this.owner = owner; -// } -// -// @Override -// public HashMap<Integer, String> getSlotsToMenu() { -// return null; -// } -// -// @Override -// public QPlayer getOwner() { -// return owner; -// } -// -// public Inventory toInventory(int page) { -// String title = "Quest Creator"; -// -// Inventory inventory = Bukkit.createInventory(null, 9, title); -// -// ItemStack newQuest = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5); -// ItemMeta newQuestM = newQuest.getItemMeta(); -// List<String> newQuestL = new ArrayList<>(); -// newQuestM.setDisplayName(ChatColor.GREEN.toString() + ChatColor.BOLD + "New Quest"); -// newQuestL.add(ChatColor.GRAY + "Click to make a new quest."); -// newQuestM.setLore(newQuestL); -// newQuest.setItemMeta(newQuestM); -// -// ItemStack editQuest = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 1); -// ItemMeta editQuestM = editQuest.getItemMeta(); -// List<String> editQuestL = new ArrayList<>(); -// editQuestM.setDisplayName(ChatColor.GREEN.toString() + ChatColor.BOLD + "Edit Quest"); -// editQuestL.add(ChatColor.GRAY + "Click to edit an existing quest."); -// editQuestM.setLore(editQuestL); -// editQuest.setItemMeta(editQuestM); -// -// ItemStack removeQuest = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14); -// ItemMeta removeQuestM = removeQuest.getItemMeta(); -// List<String> removeQuestL = new ArrayList<>(); -// removeQuestM.setDisplayName(ChatColor.GREEN.toString() + ChatColor.BOLD + "Delete Quest"); -// removeQuestL.add(ChatColor.GRAY + "Click to delete an existing quest."); -// removeQuestM.setLore(removeQuestL); -// removeQuest.setItemMeta(removeQuestM); -// -// inventory.setItem(2, newQuest); -// inventory.setItem(4, editQuest); -// inventory.setItem(6, removeQuest); -// return inventory; -// -// return Bukkit.createInventory(null, 9, title); -// } -// -//} diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayer.java b/src/main/java/com/leonardobishop/quests/player/QPlayer.java index 45d58012..d5d5b66a 100644 --- a/src/main/java/com/leonardobishop/quests/player/QPlayer.java +++ b/src/main/java/com/leonardobishop/quests/player/QPlayer.java @@ -1,12 +1,12 @@ package com.leonardobishop.quests.player; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.events.EventInventory; -import com.leonardobishop.quests.obj.Options; -import com.leonardobishop.quests.obj.misc.QMenuCategory; -import com.leonardobishop.quests.obj.misc.QMenuQuest; -import com.leonardobishop.quests.obj.misc.QMenuStarted; -import com.leonardobishop.quests.obj.misc.QuestSortWrapper; +import com.leonardobishop.quests.events.MenuController; +import com.leonardobishop.quests.util.Options; +import com.leonardobishop.quests.menu.QMenuCategory; +import com.leonardobishop.quests.menu.QMenuQuest; +import com.leonardobishop.quests.menu.QMenuStarted; +import com.leonardobishop.quests.menu.QuestSortWrapper; import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile; import com.leonardobishop.quests.quests.Category; import com.leonardobishop.quests.quests.Quest; @@ -75,7 +75,7 @@ public class QPlayer { } player.openInventory(qMenuQuest.toInventory(1)); - EventInventory.track(this.uuid, qMenuQuest); + MenuController.track(this.uuid, qMenuQuest); return 0; } @@ -106,7 +106,7 @@ public class QPlayer { qMenuCategory.populate(questMenus); player.openInventory(qMenuCategory.toInventory(1)); - EventInventory.track(player.getUniqueId(), qMenuCategory); + MenuController.track(player.getUniqueId(), qMenuCategory); } else { QMenuQuest qMenuQuest = new QMenuQuest(plugin, plugin.getPlayerManager().getPlayer(player.getUniqueId()), "", null); List<Quest> quests = new ArrayList<>(); @@ -117,7 +117,7 @@ public class QPlayer { qMenuQuest.setBackButtonEnabled(false); player.openInventory(qMenuQuest.toInventory(1)); - EventInventory.track(player.getUniqueId(), qMenuQuest); + MenuController.track(player.getUniqueId(), qMenuQuest); } } @@ -138,7 +138,7 @@ public class QPlayer { qMenuStarted.populate(quests); player.openInventory(qMenuStarted.toInventory(1)); - EventInventory.track(player.getUniqueId(), qMenuStarted); + MenuController.track(player.getUniqueId(), qMenuStarted); } public QuestProgressFile getQuestProgressFile() { diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java index ba942978..cc33b0ff 100644 --- a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java +++ b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java @@ -2,7 +2,7 @@ package com.leonardobishop.quests.player; import com.leonardobishop.quests.Quests; import com.leonardobishop.quests.QuestsLogger; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.util.Options; import com.leonardobishop.quests.player.questprogressfile.QPlayerPreferences; import com.leonardobishop.quests.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile; @@ -12,7 +12,6 @@ import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.util.Collection; -import java.util.HashMap; import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java b/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java index b2596079..e7a77853 100644 --- a/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java +++ b/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java @@ -9,8 +9,8 @@ import com.leonardobishop.quests.api.events.PlayerStartQuestEvent; import com.leonardobishop.quests.api.events.PlayerStartTrackQuestEvent; import com.leonardobishop.quests.api.events.PlayerStopTrackQuestEvent; import com.leonardobishop.quests.api.events.PreStartQuestEvent; -import com.leonardobishop.quests.obj.Messages; -import com.leonardobishop.quests.obj.Options; +import com.leonardobishop.quests.util.Messages; +import com.leonardobishop.quests.util.Options; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.quests.Quest; import com.leonardobishop.quests.quests.Task; diff --git a/src/main/java/com/leonardobishop/quests/quests/Quest.java b/src/main/java/com/leonardobishop/quests/quests/Quest.java index 76aaefcf..eddeaa8b 100644 --- a/src/main/java/com/leonardobishop/quests/quests/Quest.java +++ b/src/main/java/com/leonardobishop/quests/quests/Quest.java @@ -1,6 +1,6 @@ package com.leonardobishop.quests.quests; -import com.leonardobishop.quests.obj.misc.QItemStack; +import com.leonardobishop.quests.menu.QItemStack; import org.bukkit.ChatColor; import java.util.*; diff --git a/src/main/java/com/leonardobishop/quests/updater/Updater.java b/src/main/java/com/leonardobishop/quests/updater/Updater.java index 6c197b88..5fa1a7e5 100644 --- a/src/main/java/com/leonardobishop/quests/updater/Updater.java +++ b/src/main/java/com/leonardobishop/quests/updater/Updater.java @@ -1,7 +1,7 @@ package com.leonardobishop.quests.updater; import com.leonardobishop.quests.Quests; -import com.leonardobishop.quests.obj.Messages; +import com.leonardobishop.quests.util.Messages; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/com/leonardobishop/quests/obj/Items.java b/src/main/java/com/leonardobishop/quests/util/Items.java index 9725459a..a6af8cd5 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Items.java +++ b/src/main/java/com/leonardobishop/quests/util/Items.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.obj; +package com.leonardobishop.quests.util; import com.leonardobishop.quests.Quests; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/com/leonardobishop/quests/obj/Messages.java b/src/main/java/com/leonardobishop/quests/util/Messages.java index 44d82f07..fc9fb976 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Messages.java +++ b/src/main/java/com/leonardobishop/quests/util/Messages.java @@ -1,4 +1,4 @@ -package com.leonardobishop.quests.obj; +package com.leonardobishop.quests.util; import com.leonardobishop.quests.Quests; import org.bukkit.ChatColor; diff --git a/src/main/java/com/leonardobishop/quests/obj/Options.java b/src/main/java/com/leonardobishop/quests/util/Options.java index 0d8fdc2c..e1737f4b 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Options.java +++ b/src/main/java/com/leonardobishop/quests/util/Options.java @@ -1,10 +1,9 @@ -package com.leonardobishop.quests.obj; +package com.leonardobishop.quests.util; import com.leonardobishop.quests.Quests; import org.bukkit.ChatColor; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; |
