diff --git a/gradle.properties b/gradle.properties index 8f8eca8..866b17a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.21.10 yarn_mappings=1.21.10+build.2 loader_version=0.17.3 # Mod Properties -mod_version=1.6 +mod_version=1.7 maven_group=com.kasetoatz archives_base_name=SuperEnchants # Dependencies diff --git a/src/main/java/com/kasetoatz/superenchants/config/Config.java b/src/main/java/com/kasetoatz/superenchants/config/Config.java index b35b40b..3e901b7 100644 --- a/src/main/java/com/kasetoatz/superenchants/config/Config.java +++ b/src/main/java/com/kasetoatz/superenchants/config/Config.java @@ -65,7 +65,7 @@ public class Config Map.entry(Identifier.of("minecraft:impaling"), 10), Map.entry(Identifier.of("minecraft:loyalty"), 5), Map.entry(Identifier.of("minecraft:riptide"), 5), - Map.entry(Identifier.of("minecraft:quick_charge"), 5), + Map.entry(Identifier.of("minecraft:quick_charge"), 3), Map.entry(Identifier.of("minecraft:piercing"), 10) )); diff --git a/src/main/java/com/kasetoatz/superenchants/mixin/AnvilScreenHandlerMixin.java b/src/main/java/com/kasetoatz/superenchants/mixin/AnvilScreenHandlerMixin.java new file mode 100644 index 0000000..d16fa2a --- /dev/null +++ b/src/main/java/com/kasetoatz/superenchants/mixin/AnvilScreenHandlerMixin.java @@ -0,0 +1,20 @@ +package com.kasetoatz.superenchants.mixin; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.screen.AnvilScreenHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import static com.kasetoatz.superenchants.util.Util.getCustomLevel; + +@Mixin(AnvilScreenHandler.class) +public class AnvilScreenHandlerMixin +{ + @Redirect(method="updateResult", at=@At(value="INVOKE", target="Lnet/minecraft/enchantment/Enchantment;getMaxLevel()I")) + public int getMaxLevel(Enchantment enchant) + { + int custom = getCustomLevel(enchant); + return (custom > 0) ? custom : enchant.getMaxLevel(); + } +} diff --git a/src/main/java/com/kasetoatz/superenchants/mixin/EnchantmentMixin.java b/src/main/java/com/kasetoatz/superenchants/mixin/EnchantmentMixin.java index 1a66b52..b5a80e6 100644 --- a/src/main/java/com/kasetoatz/superenchants/mixin/EnchantmentMixin.java +++ b/src/main/java/com/kasetoatz/superenchants/mixin/EnchantmentMixin.java @@ -51,13 +51,8 @@ public class EnchantmentMixin @ModifyReturnValue(method="getMaxLevel", at=@At("RETURN")) public int getMaxLevel(int original) { - Enchantment enchantment = (Enchantment)(Object)this; - int level = getCustomLevel(enchantment); - if (level > 0) - { - return level; - } - return original; + int level = getCustomLevel((Enchantment)(Object)this); + return (CUSTOM_LEVELS_IN_LOOT_TABLE && level > 0) ? level : original; } @Unique diff --git a/src/main/resources/superenchants.mixins.json b/src/main/resources/superenchants.mixins.json index cb9b9c7..78cf8a3 100644 --- a/src/main/resources/superenchants.mixins.json +++ b/src/main/resources/superenchants.mixins.json @@ -4,9 +4,10 @@ "package": "com.kasetoatz.superenchants.mixin", "compatibilityLevel": "JAVA_21", "mixins": [ - "ComponentHolderMixin", + "AnvilScreenHandlerMixin", "BowItemMixin", "ChangeItemDamageEnchantmentEffectMixin", + "ComponentHolderMixin", "CrossbowItemMixin", "EnchantmentMixin", "MerchantEntityMixin",