diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java index 9e7405f..46bb1eb 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java @@ -69,9 +69,9 @@ public void onActivation(TimerChangedEvent event) { if (Objects.equals(plugin.getConfig().getString("event.type"), "sammelfieber")) { if (event.isRunning()) { - Material material = SammelFieberSettingsGui.getEventItem(); - if (material != Material.AIR && getHopperLocation() != null) { - setMaterial(material); + ItemStack stack = SammelFieberSettingsGui.getEventItem(); + if (stack != null && getHopperLocation() != null) { + setMaterial(stack.getType()); bossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Es wurden " + ChatUtil.BLUE + count + " " + new ItemStack(getMaterial()).getI18NDisplayName() + ChatUtil.GREEN + " abgegeben. Das sind " + ChatUtil.BLUE + count * SammelFieberSettingsGui.MONEY + " Cubes", BarColor.GREEN, BarStyle.SOLID); bossBar.setVisible(true); for (Player pl : Bukkit.getOnlinePlayers()) { diff --git a/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java b/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java index c50a9ae..b5f1a5a 100644 --- a/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java @@ -19,14 +19,18 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { - if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - ResetGui.createResetGUI((Player) sender); + if (!(sender instanceof Player player)) { + return true; + } + + if (plugin.isEditor(player) || player.hasPermission("Challenges.editor.override")) { + new ResetGui(player).open(); } else if (plugin.getCurrentEditor() != null) { - ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur" + plugin.getCurrentEditor().getName() + " kann die Map zurücksetzen!"); + ChatUtil.sendErrorMessage(player, "Du bist kein Editor! Nur" + plugin.getCurrentEditor().getName() + " kann die Map zurücksetzen!"); return true; } else { - ChatUtil.sendErrorMessage(sender, "Aktuell gibt es keinen Editor!"); - ChatUtil.sendErrorMessage(sender, "Um selbst Editor zu werden musst du dir im Freebuild VIP kaufen!"); + ChatUtil.sendErrorMessage(player, "Aktuell gibt es keinen Editor!"); + ChatUtil.sendErrorMessage(player, "Um selbst Editor zu werden musst du dir im Freebuild VIP kaufen!"); return true; } return true; diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerCommand.java index 3ab4809..b8d8ba4 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerCommand.java @@ -25,7 +25,7 @@ } if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { Player p = (Player) sender; - TimerGui.createTimerGUI(p); + new TimerGui(p).open(); } else if (plugin.getCurrentEditor() != null) { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); return true; diff --git a/src/main/java/de/fanta/challenges/guis/ResetGui.java b/src/main/java/de/fanta/challenges/guis/ResetGui.java index b9242aa..011b6b0 100644 --- a/src/main/java/de/fanta/challenges/guis/ResetGui.java +++ b/src/main/java/de/fanta/challenges/guis/ResetGui.java @@ -2,6 +2,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.guiutils.AbstractWindow; import de.fanta.challenges.utils.guiutils.GUIUtils; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; @@ -14,34 +15,45 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -public class ResetGui implements Listener { +public class ResetGui extends AbstractWindow { private static final Challenges plugin = Challenges.getPlugin(); private static final int RESET_INDEX = 2; public static final int INVENTORY_SIZE = 5; - public static final Inventory RESET_GUI = Bukkit.createInventory(null, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> Reset"); - public static void createResetGUI(Player p) { - RESET_GUI.setItem(RESET_INDEX, GUIUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, ChatUtil.RED + "Server resetten", ChatUtil.RED + "Wenn du denn Server resettest wird", ChatUtil.RED + "der Server komplett zurückgesetzt", ChatUtil.RED + "und du musst von vorne beginnen!")); - for (int i = 0; i < INVENTORY_SIZE; i++) { - ItemStack item = RESET_GUI.getItem(i); - if (item == null || item.getType() == Material.AIR) { - RESET_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - p.openInventory(RESET_GUI); + public ResetGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> Reset")); } - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - if (RESET_GUI.equals(e.getClickedInventory())) { - int slot = e.getRawSlot(); - if (slot == RESET_INDEX) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "reset confirm"); + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + if (slot == RESET_INDEX) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "reset confirm"); + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < INVENTORY_SIZE; i++) { + ItemStack item; + if (i == RESET_INDEX) { + item = GUIUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, ChatUtil.RED + "Server resetten", ChatUtil.RED + "Wenn du denn Server resettest wird", ChatUtil.RED + "der Server komplett zurückgesetzt", ChatUtil.RED + "und du musst von vorne beginnen!"); + } else { + item = GUIUtils.EMPTY_ICON; } - e.setCancelled(true); + this.getInventory().setItem(i, item); } } } diff --git a/src/main/java/de/fanta/challenges/guis/TimerGui.java b/src/main/java/de/fanta/challenges/guis/TimerGui.java index 4b7230f..3002c35 100644 --- a/src/main/java/de/fanta/challenges/guis/TimerGui.java +++ b/src/main/java/de/fanta/challenges/guis/TimerGui.java @@ -3,6 +3,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.ServerType; import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.guiutils.AbstractWindow; import de.fanta.challenges.utils.guiutils.GUIUtils; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; @@ -15,48 +16,58 @@ import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; -public class TimerGui implements Listener { +public class TimerGui extends AbstractWindow { private static final Challenges plugin = Challenges.getPlugin(); public static final int INVENTORY_SIZE = 27; - public static final Inventory TIMER_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Timer"); + private static final int DIRECTION_INDEX = 11; private static final int SHOWTIMER_INDEX = 13; + private static final int START_INDEX = 15; - public static void createTimerGUI(Player p) { - - if (plugin.getTimer().isReverse()) { - TIMER_GUI.setItem(11, GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatUtil.BLUE + "Timer Richtung - rückwärts")); - } else { - TIMER_GUI.setItem(11, GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatUtil.GREEN + "Timer Richtung - vorwärts")); - } - if (plugin.getConfig().getBoolean("showtimer")) { - TIMER_GUI.setItem(SHOWTIMER_INDEX, GUIUtils.createGuiItem(Material.OBSERVER, ChatUtil.GREEN + "Timer wird angezeigt!", true)); - } else { - TIMER_GUI.setItem(SHOWTIMER_INDEX, GUIUtils.createGuiItem(Material.OBSERVER, ChatUtil.RED + "Timer wird nicht angezeigt!", false)); - } - if (plugin.getTimer().isRunning()) { - TIMER_GUI.setItem(15, GUIUtils.createGuiItem(Material.CLOCK, ChatUtil.GREEN + "Timer gestartet", true)); - } else { - TIMER_GUI.setItem(15, GUIUtils.createGuiItem(Material.CLOCK, ChatUtil.RED + "Timer pausiert")); - } - for (int i = 0; i < INVENTORY_SIZE; i++) { - if (TIMER_GUI.getItem(i) == null || TIMER_GUI.getItem(i).getType() == Material.AIR) { - TIMER_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - p.openInventory(TIMER_GUI); + public TimerGui(Player player) { + super(player, Bukkit.createInventory(player, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Timer")); } - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - if (e.getInventory() == TIMER_GUI) { - int slot = e.getRawSlot(); - World world = Bukkit.getWorld("world"); - Player p = (Player) e.getWhoClicked(); - if (slot == 15) { + @Override + public void onItemClicked(InventoryClickEvent event) { + Player player = getPlayer(); + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + switch (slot) { + case DIRECTION_INDEX -> { + if (plugin.getTimer().isReverse()) { + plugin.getTimer().reverseTimer(); + GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt vorwärts.", ChatUtil.GREEN); + } else { + plugin.getTimer().reverseTimer(); + GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt rückwärts.", ChatUtil.BLUE); + } + player.closeInventory(); + } + case SHOWTIMER_INDEX -> { + if (plugin.getConfig().getBoolean("showtimer")) { + GUIUtils.setConfig("showtimer", false); + GUIUtils.sendTitleToAll("Timer", "Der Timer wird jetzt nicht mehr angezeigt!", ChatUtil.RED); + } else { + GUIUtils.setConfig("showtimer", true); + GUIUtils.sendTitleToAll("Timer", "Der Timer wird jetzt wieder angezeigt!", ChatUtil.GREEN); + } + new TimerGui(player).open(); + } + case START_INDEX -> { + World world = Bukkit.getWorld("world"); if (plugin.getTimer().isRunning()) { plugin.getTimer().stopTimer(); if (plugin.getServerType() != ServerType.ADVENTURE) { @@ -70,28 +81,42 @@ } ChatUtil.sendTitleToAll("Timer", ChatUtil.GREEN + "Der Timer wurde gestartet.", ChatUtil.BLUE, 10, 60, 10, true); } - p.closeInventory(); - } else if (slot == 11) { - if (plugin.getTimer().isReverse()) { - plugin.getTimer().reverseTimer(); - GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt vorwärts.", ChatUtil.GREEN); - } else { - plugin.getTimer().reverseTimer(); - GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt rückwärts.", ChatUtil.BLUE); - } - p.closeInventory(); - } else if (slot == SHOWTIMER_INDEX) { - if (plugin.getConfig().getBoolean("showtimer")) { - plugin.getConfig().set("showtimer", false); - GUIUtils.sendTitleToAll("Timer", "Der Timer wird jetzt nicht mehr angezeigt!", ChatUtil.RED); - } else { - plugin.getConfig().set("showtimer", true); - GUIUtils.sendTitleToAll("Timer", "Der Timer wird jetzt wieder angezeigt!", ChatUtil.GREEN); - } - plugin.saveConfig(); - createTimerGUI(p); + player.closeInventory(); } - e.setCancelled(true); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < INVENTORY_SIZE; i++) { + ItemStack item; + switch (i) { + case DIRECTION_INDEX -> { + if (plugin.getTimer().isReverse()) { + item = GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatUtil.BLUE + "Timer Richtung - rückwärts"); + } else { + item = GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatUtil.GREEN + "Timer Richtung - vorwärts"); + } + } + case SHOWTIMER_INDEX -> { + if (plugin.getConfig().getBoolean("showtimer")) { + item = GUIUtils.createGuiItem(Material.OBSERVER, ChatUtil.GREEN + "Timer wird angezeigt!", true); + } else { + item = GUIUtils.createGuiItem(Material.OBSERVER, ChatUtil.RED + "Timer wird nicht angezeigt!", false); + } + } + case START_INDEX -> { + if (plugin.getTimer().isRunning()) { + item = GUIUtils.createGuiItem(Material.CLOCK, ChatUtil.GREEN + "Timer gestartet", true); + } else { + item = GUIUtils.createGuiItem(Material.CLOCK, ChatUtil.RED + "Timer pausiert"); + } + } + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); } } } diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java index 6e23472..ea2ded9 100644 --- a/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java +++ b/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java @@ -150,7 +150,7 @@ switch (slot) { case BINGO_ITEMS_INDEX -> EventItemsGui.openEventGUI(p); - case SAMMEL_FIEBER_SETTINGS_INDEX -> SammelFieberSettingsGui.createSammelFieberSettingsGUI(p); + case SAMMEL_FIEBER_SETTINGS_INDEX -> new SammelFieberSettingsGui(p).open(); case TEAM_INDEX -> TeamSettingsGUI.createTeamSettingsGUI(p); case CLOSE_IDEX -> p.closeInventory(); } diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/SammelFieberSettingsGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/SammelFieberSettingsGui.java index 4065e17..734eb68 100644 --- a/src/main/java/de/fanta/challenges/guis/eventgui/SammelFieberSettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/eventgui/SammelFieberSettingsGui.java @@ -3,6 +3,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.challenges.ChallengeEvents.SammelFieberChallengeEvent; import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.guiutils.AbstractWindow; import de.fanta.challenges.utils.guiutils.GUIUtils; import de.iani.cubesideutils.bukkit.items.CustomHeads; import org.bukkit.Bukkit; @@ -19,98 +20,118 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -public class SammelFieberSettingsGui implements Listener { +public class SammelFieberSettingsGui extends AbstractWindow { public static final int INVENTORY_SIZE = 9; private static final Challenges plugin = Challenges.getPlugin(); public static final Inventory SAMMEL_FIEBER_SETTINGS_GUI = Bukkit.createInventory(null, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Sammel Fieber Settings"); - private static final int MONEY_INDEX = 5; - private static final int ADD_MONEY_INDEX = 2; - private static final int REMOVE_MONEY_INDEX = 8; - private static final int BACK_INDEX = 6; private static final int SET_HOPPER_INDEX = 0; + private static final int ADD_MONEY_INDEX = 2; private static final int ITEM_INDEX = 4; + private static final int MONEY_INDEX = 5; + private static final int BACK_INDEX = 6; + private static final int REMOVE_MONEY_INDEX = 8; public static int MONEY = 100; - public static void createSammelFieberSettingsGUI(Player p) { - SAMMEL_FIEBER_SETTINGS_GUI.setItem(SET_HOPPER_INDEX, GUIUtils.createGuiItem(Material.HOPPER, ChatUtil.GREEN + "Set Hopper", ChatUtil.GREEN + "Du musst auf einen Hopper schauen.")); - SAMMEL_FIEBER_SETTINGS_GUI.setItem(MONEY_INDEX, GUIUtils.createGuiItem(Material.GOLD_INGOT, ChatUtil.GREEN + "Money: " + MONEY)); - SAMMEL_FIEBER_SETTINGS_GUI.setItem(ADD_MONEY_INDEX, CustomHeads.QUARTZ_ARROW_UP.getHead()); - SAMMEL_FIEBER_SETTINGS_GUI.setItem(REMOVE_MONEY_INDEX, CustomHeads.QUARTZ_ARROW_DOWN.getHead()); - SAMMEL_FIEBER_SETTINGS_GUI.setItem(BACK_INDEX, CustomHeads.QUARTZ_ARROW_LEFT.getHead()); - for (int i = 0; i < INVENTORY_SIZE; i++) { - if (i != ITEM_INDEX) { - if (SAMMEL_FIEBER_SETTINGS_GUI.getItem(i) == null || SAMMEL_FIEBER_SETTINGS_GUI.getItem(i).getType() == Material.AIR) { - SAMMEL_FIEBER_SETTINGS_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - } - p.openInventory(SAMMEL_FIEBER_SETTINGS_GUI); + public static ItemStack eventItem; + + public SammelFieberSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Sammel Fieber Settings")); } - public static Material getEventItem() { + @Override + public void onItemClicked(InventoryClickEvent event) { + Player player = getPlayer(); + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + if (!plugin.getConfig().getBoolean("event.enabled")) { + return; + } + + int slot = event.getSlot(); + switch (slot) { + case SET_HOPPER_INDEX -> { + Block block = player.getTargetBlockExact(5, FluidCollisionMode.NEVER); + if (block != null && block.getType() == Material.HOPPER) { + Location loc = block.getLocation(); + SammelFieberChallengeEvent.setHopperLocation(new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); + ChatUtil.sendNormalMessage(player, "Hopper wurde gesetzt."); + } else { + ChatUtil.sendErrorMessage(player, "Du musst auf einen Hopper schauen!"); + } + } + case ADD_MONEY_INDEX -> { + if (!event.isShiftClick()) { + MONEY = MONEY + 10; + } else { + MONEY = MONEY + 1; + } + GUIUtils.setConfig("event.sammelfieber.money", MONEY); + } + case REMOVE_MONEY_INDEX -> { + if (MONEY > 10) { + if (!event.isShiftClick()) { + MONEY = MONEY - 10; + } else { + MONEY = MONEY - 1; + } + } + GUIUtils.setConfig("event.sammelfieber.money", MONEY); + } + } + new SammelFieberSettingsGui(player).open(); + + if (slot == BACK_INDEX) { + EventGui.createEventGUI(player); + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < INVENTORY_SIZE; i++) { + ItemStack item; + switch (i) { + case SET_HOPPER_INDEX -> + item = GUIUtils.createGuiItem(Material.HOPPER, ChatUtil.GREEN + "Set Hopper", ChatUtil.GREEN + "Du musst auf einen Hopper schauen."); + case ADD_MONEY_INDEX -> item = CustomHeads.QUARTZ_ARROW_UP.getHead(); + case MONEY_INDEX -> + item = GUIUtils.createGuiItem(Material.GOLD_INGOT, ChatUtil.GREEN + "Money: " + MONEY); + case BACK_INDEX -> item = CustomHeads.QUARTZ_ARROW_LEFT.getHead(); + case REMOVE_MONEY_INDEX -> item = CustomHeads.QUARTZ_ARROW_DOWN.getHead(); + + default -> { + if (i == ITEM_INDEX) { + item = eventItem; + } else { + item = GUIUtils.EMPTY_ICON; + } + } + } + this.getInventory().setItem(i, item); + } + } + + @Override + public void onInventoryClose(InventoryCloseEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } ItemStack stack = SAMMEL_FIEBER_SETTINGS_GUI.getItem(ITEM_INDEX); if (stack != null) { - return stack.getType(); - } else { - return Material.AIR; + eventItem = stack; + GUIUtils.setConfig("event.sammelfieber.item", stack.getType().name()); } } - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - int slot = e.getRawSlot(); - Player p = (Player) e.getWhoClicked(); - if (SAMMEL_FIEBER_SETTINGS_GUI.equals(e.getClickedInventory()) && slot != ITEM_INDEX) { - if (plugin.getConfig().getBoolean("event.enabled")) { - switch (slot) { - case ADD_MONEY_INDEX -> { - if (!e.isShiftClick()) { - MONEY = MONEY + 10; - } else { - MONEY = MONEY + 1; - } - - } - case REMOVE_MONEY_INDEX -> { - if (MONEY > 10) { - if (!e.isShiftClick()) { - MONEY = MONEY - 10; - } else { - MONEY = MONEY - 1; - } - } - } - case SET_HOPPER_INDEX -> { - Block block = p.getTargetBlockExact(5, FluidCollisionMode.NEVER); - if (block != null && block.getType() == Material.HOPPER) { - Location loc = block.getLocation(); - SammelFieberChallengeEvent.setHopperLocation(new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); - ChatUtil.sendNormalMessage(p, "Hopper wurde gesetzt."); - } else { - ChatUtil.sendErrorMessage(p, "Du musst auf einen Hopper schauen!"); - } - } - } - createSammelFieberSettingsGUI(p); - if (slot == BACK_INDEX) { - EventGui.createEventGUI(p); - } - } - e.setCancelled(true); - } - } - - @EventHandler - public void onInventoryClose(InventoryCloseEvent e) { - Inventory inventory = e.getInventory(); - if (inventory.equals(SAMMEL_FIEBER_SETTINGS_GUI)) { - if (getEventItem() != Material.AIR) { - plugin.getConfig().set("event.sammelfieber.item", getEventItem().name()); - plugin.getConfig().set("event.sammelfieber.money", SammelFieberSettingsGui.MONEY); - plugin.saveConfig(); - } - } + public static ItemStack getEventItem() { + return eventItem; } } diff --git a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java index 11f35c5..1eb65f8 100644 --- a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java +++ b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java @@ -55,9 +55,6 @@ pM.registerEvents(new VoidListener(), plugin); pM.registerEvents(new WindowManager(), plugin); - pM.registerEvents(new TimerGui(), plugin); - pM.registerEvents(new ResetGui(), plugin); - pM.registerEvents(new SammelFieberSettingsGui(), plugin); pM.registerEvents(new EventItemsGui(), plugin); pM.registerEvents(new EventGui(), plugin); pM.registerEvents(new ContainerListener(), plugin); diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/AbstractWindow.java b/src/main/java/de/fanta/challenges/utils/guiutils/AbstractWindow.java index 17e0966..4ae03e5 100644 --- a/src/main/java/de/fanta/challenges/utils/guiutils/AbstractWindow.java +++ b/src/main/java/de/fanta/challenges/utils/guiutils/AbstractWindow.java @@ -3,6 +3,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.inventory.Inventory; @@ -77,6 +78,14 @@ } @Override + public void onInventoryClose(InventoryCloseEvent event) { + } + + protected boolean mayAffectThisInventory(InventoryCloseEvent event) { + return getInventory().equals(event.getInventory()); + } + + @Override public void open() { rebuildInventory(); getPlayer().openInventory(getInventory()); diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/Window.java b/src/main/java/de/fanta/challenges/utils/guiutils/Window.java index c09cf14..95280fd 100644 --- a/src/main/java/de/fanta/challenges/utils/guiutils/Window.java +++ b/src/main/java/de/fanta/challenges/utils/guiutils/Window.java @@ -2,6 +2,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.inventory.Inventory; @@ -27,4 +28,7 @@ event.setCancelled(true); } + public default void onInventoryClose(InventoryCloseEvent event) { + } + }