From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Tue, 25 Jun 2024 02:52:32 -0300 Subject: [PATCH] Add CraftItemRecipeEvent Used when a player OR a crafter block crafts an item, as an alternative to PrepareItemCraftEvent and CraftItemEvent, because both events are not triggered when a item is crafted from a crafter diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index d7a52220e9525502163f5ee6afbadf2baaae6190..bbd000e3a3e9112e10a09e5d3ef6851b28e900fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1472,6 +1472,24 @@ public class CraftEventFactory { Bukkit.getPluginManager().callEvent(crafterCraftEvent); return crafterCraftEvent; } + + // SparklyPaper start - add CraftItemRecipeEvent + public static net.sparklypower.sparklypaper.event.inventory.CraftItemRecipeEvent callCraftItemRecipeEvent(net.minecraft.world.inventory.CraftingContainer container, Recipe recipe, ItemStack result) { + org.bukkit.inventory.ItemStack[] matrix = new org.bukkit.inventory.ItemStack[container.getItems().size()]; + int i = 0; + for (ItemStack item : container.getItems()) { + matrix[i] = CraftItemStack.asCraftMirror(item); + i++; + } + org.bukkit.inventory.ItemStack bukkitResult = CraftItemStack.asCraftMirror(result); + + net.sparklypower.sparklypaper.event.inventory.CraftItemRecipeEvent event = new net.sparklypower.sparklypaper.event.inventory.CraftItemRecipeEvent(matrix, recipe, bukkitResult); + Bukkit.getPluginManager().callEvent(event); + + return event; + } + // SparklyPaper end + // Paper start @Deprecated public static com.destroystokyo.paper.event.entity.ProjectileCollideEvent callProjectileCollideEvent(Entity entity, EntityHitResult position) {