Описание
# Apugli Fixer
A lightweight mixin compatibility shim for **Minecraft 1.20.1 (Fabric)** that fixes a crash when using [Apugli](https://modrinth.com/mod/apugli) 2.10.x with [Origins](https://modrinth.com/mod/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:
1. The **original logic** (entity_on_block bientity condition), fully preserved
2. **No-op calls** to `EnchantmentHelper.getLevel()` and `EnchantmentHelper.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
```
## License
[MIT](LICENSE)