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 1/2] 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 From 5a2ec92217ffe030957036239d2e1ba3f7da87a5 Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:50:08 +0100 Subject: [PATCH 2/2] add debug print for max before merge disable and debug version --- build.gradle.kts | 2 +- src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 044244e..663fcd1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ plugins { } group = "xyz.alexcrea" -version = "1.6.11" +version = "1.6.12-debug" repositories { // EcoEnchants diff --git a/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt b/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt index 2c358b1..c558c64 100644 --- a/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt +++ b/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt @@ -89,7 +89,11 @@ object EnchantmentUtil { // We test if it is allowed to merge at this level if(!bypassLevel){ val maxBeforeDisabled = ConfigOptions.maxBeforeMergeDisabled(enchantment) - if((maxBeforeDisabled > 0) && (oldLevel >= maxBeforeDisabled)) return@forEach + if((maxBeforeDisabled > 0) && (oldLevel >= maxBeforeDisabled)) { + CustomAnvil.verboseLog( + "Reached max merge before disable for ${enchantment.key}: $oldLevel/$maxBeforeDisabled)") + return@forEach + } } // Now we increase the enchantment level by 1