aboutsummaryrefslogtreecommitdiffhomepage
path: root/Bukkit-Patches/0010-InventoryClickEvent-getClickedInventory.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Bukkit-Patches/0010-InventoryClickEvent-getClickedInventory.patch')
-rw-r--r--Bukkit-Patches/0010-InventoryClickEvent-getClickedInventory.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/Bukkit-Patches/0010-InventoryClickEvent-getClickedInventory.patch b/Bukkit-Patches/0010-InventoryClickEvent-getClickedInventory.patch
new file mode 100644
index 0000000000..19bbf6c596
--- /dev/null
+++ b/Bukkit-Patches/0010-InventoryClickEvent-getClickedInventory.patch
@@ -0,0 +1,54 @@
+From e2cb5a26036e1387fd4d603605fe4c8e7ced3840 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+Date: Sun, 7 Jul 2013 10:32:05 -0400
+Subject: [PATCH] InventoryClickEvent getClickedInventory
+
+Add InventoryClickEvent.getClickedInventory. Adds BUKKIT-4495
+Plugins currently have to do the logic themselves on the raw slot ID
+in order to determine the inventory clicked. This provides the logic for plugins to
+readily identify which inventory was clicked.
+
+diff --git a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
+index 28198b8..3313d91 100644
+--- a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
++++ b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
+@@ -47,6 +47,7 @@ public class InventoryClickEvent extends InventoryInteractEvent {
+ private static final HandlerList handlers = new HandlerList();
+ private final ClickType click;
+ private final InventoryAction action;
++ private final Inventory clickedInventory;
+ private SlotType slot_type;
+ private int whichSlot;
+ private int rawSlot;
+@@ -62,6 +63,13 @@ public class InventoryClickEvent extends InventoryInteractEvent {
+ super(view);
+ this.slot_type = type;
+ this.rawSlot = slot;
++ if (slot < 0) {
++ this.clickedInventory = null;
++ } else if (view.getTopInventory() != null && slot < view.getTopInventory().getSize()) {
++ this.clickedInventory = view.getTopInventory();
++ } else {
++ this.clickedInventory = view.getBottomInventory();
++ }
+ this.whichSlot = view.convertSlot(slot);
+ this.click = click;
+ this.action = action;
+@@ -73,6 +81,14 @@ public class InventoryClickEvent extends InventoryInteractEvent {
+ }
+
+ /**
++ * Gets the inventory that was clicked, or null if outside of window
++ * @return The clicked inventory
++ */
++ public Inventory getClickedInventory() {
++ return clickedInventory;
++ }
++
++ /**
+ * Gets the type of slot that was clicked.
+ *
+ * @return the slot type
+--
+1.9.1
+