diff --git a/build.gradle.kts b/build.gradle.kts index 044244e..5d017ec 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" repositories { // EcoEnchants diff --git a/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt b/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt index 2c358b1..87e4bae 100644 --- a/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt +++ b/src/main/kotlin/io/delilaheve/util/EnchantmentUtil.kt @@ -39,6 +39,7 @@ object EnchantmentUtil { // Get max level or 255 if player can bypass val maxLevel = if (bypassLevel) { 255 } else { ConfigOptions.enchantLimit(enchantment) } + CustomAnvil.verboseLog("Max level of ${enchantment.key} is $maxLevel (bypassLevel is $bypassLevel)") val cappedLevel = min(level, maxLevel) @@ -89,7 +90,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 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