Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Apugli Fixer
A lightweight mixin compatibility shim for Minecraft 1.20.1 (Fabric) that fixes a crash when using Apugli 2.10.x with Origins 1.10.2 (Apoli 2.9.2).
The Problem
Apugli 2.10.4's EntityConditionsMixin uses @Redirect to intercept EnchantmentHelper.getLevel() and EnchantmentHelper.getEquipmentLevel() calls inside Apoli's EntityConditions.lambda$register$47. However, in Apoli 2.9.2, those calls live in lambda$register$45 instead. Lambda method numbers are compiler-generated and shift between Apoli versions, so the redirect finds 0 targets and crashes:
InjectionError: Critical injection failure: Redirector apugli$useModifiedEnchantmentLevelSum
in apugli.fabric.mixins.json:common.EntityConditionsMixin from mod apugli failed injection
check, (0/1) succeeded. Scanned 0 target(s).
The Fix
This mod uses a single @Overwrite mixin (priority 100, applied before Apugli's redirect at priority 1000) to replace lambda$register$47 with:
- The original logic (entity_on_block bientity condition), fully preserved
- No-op calls to
EnchantmentHelper.getLevel()andEnchantmentHelper.getEquipmentLevel(), which Apugli's redirect intercepts and replaces with its modified enchantment level system
The result: Apugli's redirect finds its targets, the game launches, and enchantment-based origin powers work correctly.
Requirements
| Dependency | Version |
|---|---|
| Minecraft | 1.20.1 |
| Fabric Loader | >= 0.14.0 |
| Origins | 1.10.2 (Apoli 2.9.2) |
| Apugli | 2.10.0+ |
How It Works
Mixin priority order when EntityConditions class loads:
100 [Apugli Fixer] @Overwrite lambda$register$47
-> original logic + EnchantmentHelper calls
1000 [Apugli] @Redirect on those calls
-> replaces with ModifyEnchantmentLevelPowerFactory
Result: redirect finds targets, no crash, modified enchantment levels work

