From 23e82e0ae252863533b735b7b2d0f0b7288b8f4c Mon Sep 17 00:00:00 2001 From: Felix Cravic Date: Thu, 13 Aug 2020 19:12:16 +0200 Subject: [PATCH] Added ItemStack#onInventoryClick --- .../inventory/click/InventoryClickProcessor.java | 6 ++++++ .../java/net/minestom/server/item/ItemStack.java | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java b/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java index ab5c42e3f..321d474f3 100644 --- a/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java +++ b/src/main/java/net/minestom/server/inventory/click/InventoryClickProcessor.java @@ -508,6 +508,12 @@ public class InventoryClickProcessor { slot = slot - inventorySlot + PlayerInventoryUtils.OFFSET; } + { + if (clicked != null) { + clicked.onInventoryClick(player, clickType, slot, isPlayerInventory); + } + } + // Reset the didCloseInventory field // Wait for inventory conditions + events to possibly close the inventory player.UNSAFE_changeDidCloseInventory(false); diff --git a/src/main/java/net/minestom/server/item/ItemStack.java b/src/main/java/net/minestom/server/item/ItemStack.java index ffb17503d..80feffcba 100644 --- a/src/main/java/net/minestom/server/item/ItemStack.java +++ b/src/main/java/net/minestom/server/item/ItemStack.java @@ -4,6 +4,7 @@ import net.minestom.server.chat.ColoredText; import net.minestom.server.data.Data; import net.minestom.server.data.DataContainer; import net.minestom.server.entity.Player; +import net.minestom.server.inventory.click.ClickType; import net.minestom.server.item.attribute.ItemAttribute; import net.minestom.server.item.metadata.*; import net.minestom.server.item.rule.VanillaStackingRule; @@ -649,4 +650,18 @@ public class ItemStack implements DataContainer { public boolean onUseOnBlock(Player player, Player.Hand hand, BlockPosition position, Direction blockFace) { return false; } + + /** + * Called when the player click on this item on an inventory + *

+ * Executed before any events + * + * @param player + * @param clickType + * @param slot + * @param playerInventory + */ + public void onInventoryClick(Player player, ClickType clickType, int slot, boolean playerInventory) { + + } }