From e003a23af1359ba0475ff7938ec252e1ea77bcd6 Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:36:16 +0100 Subject: [PATCH] Fix big issue with enchantment level not being checked and relying on server implementation --- .../xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt index fbc603d..6622767 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt @@ -52,6 +52,11 @@ class AnvilResultListener: Listener { val leftItem = inventory.getItem(ANVIL_INPUT_LEFT) ?: return val rightItem = inventory.getItem(ANVIL_INPUT_RIGHT) + if(!GameMode.CREATIVE.equals(player.gameMode) && inventory.repairCost >= inventory.maximumRepairCost) { + event.result = Event.Result.DENY + return + } + // Test custom recipe val recipe = CustomRecipeUtil.getCustomRecipe(leftItem, rightItem) if(recipe != null){ @@ -107,6 +112,7 @@ class AnvilResultListener: Listener { val amount = CustomRecipeUtil.getCustomRecipeAmount(recipe, leftItem, rightItem) val xpCost = amount * recipe.xpCostPerCraft + CustomAnvil.log("gamemode: ${player.gameMode != GameMode.CREATIVE}, cost: $xpCost, level: ${player.level}, result: ${player.level < xpCost}") if ((player.gameMode != GameMode.CREATIVE) && (player.level < xpCost)) return // We give the item manually