diff --git a/build.gradle.kts b/build.gradle.kts index b138f3a..3b521b1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ val nexusUser = providers.gradleProperty("alttdSnapshotUsername").orNull ?: Syst val nexusPass = providers.gradleProperty("alttdSnapshotPassword").orNull ?: System.getenv("NEXUS_PASSWORD") group = "com.alttd.inventory_gui" -version = "1.1.2-SNAPSHOT" +version = "1.1.3-SNAPSHOT" repositories { mavenCentral() diff --git a/src/main/java/com/alttd/inventory_gui/gui/GuiListener.java b/src/main/java/com/alttd/inventory_gui/gui/GuiListener.java index b7f245f..d38dc65 100644 --- a/src/main/java/com/alttd/inventory_gui/gui/GuiListener.java +++ b/src/main/java/com/alttd/inventory_gui/gui/GuiListener.java @@ -5,7 +5,8 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.*; import org.bukkit.inventory.Inventory; -import org.jetbrains.annotations.Nullable; + +import java.util.Optional; /** * The {@code GuiListener} class implements the {@code Listener} interface to handle @@ -22,14 +23,10 @@ import org.jetbrains.annotations.Nullable; @SuppressWarnings("ClassCanBeRecord") public final class GuiListener implements Listener { - private final String ownerPluginName; - /** * Constructs a new {@code GuiListener} instance. - * @param ownerPluginName the name of the plugin that owns the GUI instances to which this listener should be attached */ - public GuiListener(String ownerPluginName) { - this.ownerPluginName = ownerPluginName; + public GuiListener() { } /** @@ -46,14 +43,14 @@ public final class GuiListener implements Listener { return; } - GuiSession.Entry entry = getEntry(player, event.getInventory()); - if (entry == null) { + Optional optionalEntry = getEntry(player, event.getInventory()); + if (optionalEntry.isEmpty()) { return; } event.setCancelled(true); if (event instanceof InventoryClickEvent inventoryClickEvent) { - entry.gui().handleClick(inventoryClickEvent); + optionalEntry.get().gui().handleClick(inventoryClickEvent); } } @@ -67,26 +64,20 @@ public final class GuiListener implements Listener { return; } - GuiSession.Entry entry = getEntry(player, event.getInventory()); - if (entry == null) { + Optional optionalEntry = getEntry(player, event.getInventory()); + if (optionalEntry.isEmpty()) { return; } - entry.gui().handleClose(player); + optionalEntry.get().gui().handleClose(player); GuiSession.clear(player.getUniqueId()); } - private GuiSession.@Nullable Entry getEntry(Player player, Inventory event) { + private Optional getEntry(Player player, Inventory event) { GuiSession.Entry entry = GuiSession.get(player.getUniqueId()); if (entry == null) { - return null; + return Optional.empty(); } - if (!entry.ownerPluginName().equals(ownerPluginName)) { - return null; - } - if (event != entry.inv()) {//FIXME: does this equality check fail, and is it necessary? - return null; - } - return entry; + return Optional.of(entry); } } diff --git a/src/main/java/com/alttd/inventory_gui/gui/InventoryGuiLib.java b/src/main/java/com/alttd/inventory_gui/gui/InventoryGuiLib.java index a2e62db..101fb83 100644 --- a/src/main/java/com/alttd/inventory_gui/gui/InventoryGuiLib.java +++ b/src/main/java/com/alttd/inventory_gui/gui/InventoryGuiLib.java @@ -28,7 +28,7 @@ public final class InventoryGuiLib { Objects.requireNonNull(plugin, "plugin cannot be null"); REGISTRATIONS.computeIfAbsent(plugin.getName(), name -> { - Listener listener = new GuiListener(name); + Listener listener = new GuiListener(); plugin.getServer().getPluginManager().registerEvents(listener, plugin); return new Registration(plugin, listener); });