From 99d2d16312241420f39b8c2798e71e5bb19f3b34 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sun, 3 Aug 2025 23:15:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=86=E8=A7=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/recipe/RecipeEventListener.java | 22 ++++++++++++++----- gradle.properties | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java index 8c2d8f75a..328ff1000 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java @@ -647,9 +647,14 @@ public class RecipeEventListener implements Listener { event.setResult(null); return; } - Player player = InventoryUtils.getPlayerFromInventoryEvent(event); - ItemStack result = smithingTrimRecipe.assemble(getSmithingInput(inventory), new ItemBuildContext(this.plugin.adapt(player), ContextHolder.EMPTY)); - event.setResult(result); + SmithingInput input = getSmithingInput(inventory); + if (smithingTrimRecipe.matches(input)) { + Player player = InventoryUtils.getPlayerFromInventoryEvent(event); + ItemStack result = smithingTrimRecipe.assemble(getSmithingInput(inventory), new ItemBuildContext(this.plugin.adapt(player), ContextHolder.EMPTY)); + event.setResult(result); + } else { + event.setResult(null); + } } @EventHandler(ignoreCancelled = true) @@ -666,9 +671,14 @@ public class RecipeEventListener implements Listener { event.setResult(null); return; } - Player player = InventoryUtils.getPlayerFromInventoryEvent(event); - ItemStack processed = smithingTransformRecipe.assemble(getSmithingInput(inventory), new ItemBuildContext(this.plugin.adapt(player), ContextHolder.EMPTY)); - event.setResult(processed); + SmithingInput input = getSmithingInput(inventory); + if (smithingTransformRecipe.matches(input)) { + Player player = InventoryUtils.getPlayerFromInventoryEvent(event); + ItemStack processed = smithingTransformRecipe.assemble(input, new ItemBuildContext(this.plugin.adapt(player), ContextHolder.EMPTY)); + event.setResult(processed); + } else { + event.setResult(null); + } } private SmithingInput getSmithingInput(SmithingInventory inventory) { diff --git a/gradle.properties b/gradle.properties index 5ac011f68..458b1627b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -50,7 +50,7 @@ byte_buddy_version=1.17.5 ahocorasick_version=0.6.3 snake_yaml_version=2.4 anti_grief_version=0.18 -nms_helper_version=1.0.51 +nms_helper_version=1.0.52 evalex_version=3.5.0 reactive_streams_version=1.0.4 amazon_awssdk_version=2.31.23