From fa91b320cb5ddbd19ac54b8504834270feb0f75a Mon Sep 17 00:00:00 2001 From: fatpigsarefat Date: Sun, 15 Apr 2018 20:03:06 +0100 Subject: Initial commit --- .../quests/events/EventInventory.java | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/me/fatpigsarefat/quests/events/EventInventory.java (limited to 'src/me/fatpigsarefat/quests/events/EventInventory.java') diff --git a/src/me/fatpigsarefat/quests/events/EventInventory.java b/src/me/fatpigsarefat/quests/events/EventInventory.java new file mode 100644 index 00000000..fae87623 --- /dev/null +++ b/src/me/fatpigsarefat/quests/events/EventInventory.java @@ -0,0 +1,73 @@ +package me.fatpigsarefat.quests.events; + +import me.fatpigsarefat.quests.Quests; +import me.fatpigsarefat.quests.obj.Options; +import me.fatpigsarefat.quests.obj.misc.QMenu; +import me.fatpigsarefat.quests.obj.misc.QMenuCategory; +import me.fatpigsarefat.quests.obj.misc.QMenuQuest; +import me.fatpigsarefat.quests.quests.Quest; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.UUID; + +public class EventInventory implements Listener { + + private static HashMap tracker = new HashMap<>(); + private ArrayList buffer = new ArrayList<>(); + + public static void track(UUID uuid, QMenu qMenu) { + tracker.put(uuid, qMenu); + } + + @EventHandler + public void onEvent(InventoryClickEvent event) { + if (tracker.containsKey(event.getWhoClicked().getUniqueId())) { + event.setCancelled(true); + QMenu qMenu = tracker.get(event.getWhoClicked().getUniqueId()); + + if (qMenu instanceof QMenuQuest) { + QMenuQuest qMenuQuest = (QMenuQuest) qMenu; + + //TODO check page clicks + + 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); + + } else if (qMenuQuest.getSlotsToMenu().containsKey(event.getSlot())) { + String questid = qMenuQuest.getSlotsToMenu().get(event.getSlot()); + Quest quest = Quests.getQuestManager().getQuestById(questid); + if (qMenuQuest.getOwner().getQuestProgressFile().startQuest(quest)) { + event.getWhoClicked().closeInventory(); + } + } + } 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()); + event.getWhoClicked().openInventory(qMenuQuest.toInventory(1)); + tracker.put(event.getWhoClicked().getUniqueId(), qMenuQuest); + } + } + } + } + + @EventHandler + public void onEvent(InventoryCloseEvent event) { + if (buffer.contains(event.getPlayer().getUniqueId())) { + buffer.remove(event.getPlayer().getUniqueId()); + } else if (tracker.containsKey(event.getPlayer().getUniqueId())) { + tracker.remove(event.getPlayer().getUniqueId()); + } + } + +} -- cgit v1.2.3-70-g09d2