diff --git a/build.gradle b/build.gradle index 9f438f8..35a6699 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ allprojects { group = 'com.focamacho' - version = '1.0.2' + version = '1.0.3' } subprojects { diff --git a/sealmenus-bukkit/src/main/java/com/focamacho/sealmenus/bukkit/ChestMenu.java b/sealmenus-bukkit/src/main/java/com/focamacho/sealmenus/bukkit/ChestMenu.java index c57a230..792f3aa 100644 --- a/sealmenus-bukkit/src/main/java/com/focamacho/sealmenus/bukkit/ChestMenu.java +++ b/sealmenus-bukkit/src/main/java/com/focamacho/sealmenus/bukkit/ChestMenu.java @@ -11,6 +11,7 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryOpenEvent; @@ -328,6 +329,9 @@ static class Listener implements org.bukkit.event.Listener { public void onClick(InventoryClickEvent ce) { for (ChestMenu chestMenu : chestMenus) { if(chestMenu.getInventory().equals(ce.getInventory())) { + // Prevent inventory double clicks from stealing items from the menu + if(ce.getClick() == ClickType.DOUBLE_CLICK) ce.setCancelled(true); + int slot = ce.getSlot(); if (slot < 9 * chestMenu.getRows()) { ce.setCancelled(true); diff --git a/sealmenus-sponge/src/main/java/com/focamacho/sealmenus/sponge/ChestMenu.java b/sealmenus-sponge/src/main/java/com/focamacho/sealmenus/sponge/ChestMenu.java index 4fb3a3a..54f4b45 100644 --- a/sealmenus-sponge/src/main/java/com/focamacho/sealmenus/sponge/ChestMenu.java +++ b/sealmenus-sponge/src/main/java/com/focamacho/sealmenus/sponge/ChestMenu.java @@ -195,6 +195,9 @@ public void update() { .property(InventoryTitle.of(Text.of(this.title))) .property(InventoryDimension.of(this.rows, 9)) .listener(ClickInventoryEvent.class, ce -> { + // Prevent inventory double clicks from stealing items from the menu + if(ce instanceof ClickInventoryEvent.Double) ce.setCancelled(true); + if(ce.getSlot().isPresent()) { Integer slot = ce.getSlot().get().getInventoryProperty(SlotIndex.class).get().getValue(); if(slot == null) slot = -1;