From 8f8561931fbb76ca1d138fead874048ab149d563 Mon Sep 17 00:00:00 2001 From: ChickChicky Date: Sun, 2 Mar 2025 19:36:04 +0100 Subject: [PATCH] Fix event-itemstack for ComplexRecipe --- .../ch/njol/skript/classes/data/BukkitEventValues.java | 7 ++++++- src/main/java/ch/njol/skript/events/EvtItem.java | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java b/src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java index 503baf87877..8a84b6c7595 100644 --- a/src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java +++ b/src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java @@ -486,7 +486,12 @@ else if (hand == EquipmentSlot.OFF_HAND) return null; }); // CraftItemEvent - EventValues.registerEventValue(CraftItemEvent.class, ItemStack.class, event -> event.getRecipe().getResult()); + EventValues.registerEventValue(CraftItemEvent.class, ItemStack.class, event -> { + Recipe recipe = event.getRecipe(); + if (recipe instanceof ComplexRecipe) + return event.getCurrentItem(); + return recipe.getResult(); + }); //InventoryOpenEvent EventValues.registerEventValue(InventoryOpenEvent.class, Player.class, event -> (Player) event.getPlayer()); EventValues.registerEventValue(InventoryOpenEvent.class, Inventory.class, InventoryEvent::getInventory); diff --git a/src/main/java/ch/njol/skript/events/EvtItem.java b/src/main/java/ch/njol/skript/events/EvtItem.java index c648674173b..37ed54d896f 100644 --- a/src/main/java/ch/njol/skript/events/EvtItem.java +++ b/src/main/java/ch/njol/skript/events/EvtItem.java @@ -15,6 +15,7 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.inventory.ComplexRecipe; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.Recipe; import org.jetbrains.annotations.Nullable; @@ -173,7 +174,12 @@ public boolean check(final Event event) { } else if (event instanceof EntityDropItemEvent) { itemStack = ((EntityDropItemEvent) event).getItemDrop().getItemStack(); } else if (event instanceof CraftItemEvent) { - itemStack = ((CraftItemEvent) event).getRecipe().getResult(); + Recipe recipe = ((CraftItemEvent) event).getRecipe(); + if (recipe instanceof ComplexRecipe) { + itemStack = ((CraftItemEvent) event).getCurrentItem(); + } else { + itemStack = ((CraftItemEvent) event).getRecipe().getResult(); + } } else if (hasPrepareCraftEvent && event instanceof PrepareItemCraftEvent) { Recipe recipe = ((PrepareItemCraftEvent) event).getRecipe(); if (recipe != null) {