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) {