Releases: LlamaLad7/MixinExtras
Releases · LlamaLad7/MixinExtras
0.5.0
- New: Expressions
- A huge new injection point which allows you to target things more specifically and provides the possibility to modify lots of new things. You can use expressions with any injector, but they give notable new capabilities to @ModifyExpressionValueand@WrapOperationin particular.
- @ModifyExpressionValuecan now modify array element gets, array literals, array- .length, arithmetic and bitwise operations (- +,- &, etc), method and constructor references (- thing::method,- Type::new, etc), casts,- instanceofchecks, class literals, comparisons, local variable loads, and string concatenations.
- @WrapOperationcan now wrap comparisons, array element gets and sets, array- .length, and object casts.
 
- A huge new injection point which allows you to target things more specifically and provides the possibility to modify lots of new things. You can use expressions with any injector, but they give notable new capabilities to 
- New/Fix: Support @Coercein every injector.
- Improvement: Informative error for attempted @WrapMethodon<(cl)init>.
- Fix: Proper error when Operation#callis called with the wrong number of arguments and one of them isnull.
- Fix: Resolve issues with shipping betas on Forge and NeoForge.
0.5.0-rc.4
- Fix: Resolve NPE on ASM 5.2 when matching against a primitive int-like comparison.
- Fix: Resolve crash when using @ModifyExpressionValueon anint-like@Expressionwhich had previously been replaced.
0.5.0-rc.2
If you are using a pre-release on Forge 1.18.2, please update to this one.
This release only affects Forge.
- Improvement: Make mixinextras-forgea library rather than a mod.
- Fix: Resolve crashes on Forge 1.18.2 if a pre-release is used together with a stable version.
0.5.0-rc.1
MixinExtras 0.5.0 has now entered the release candidate phase, meaning no more changes are planned unless bugs come up.
Changes since the last beta:
- Fix: Give a proper error when @WrapMethodis attempted on<init>or<clinit>. These do not make sense to support.
- Fix: Support @Coerced return types properly on all our injectors and adapt to their usage on vanilla injectors.
- Fix: Resolve an issue that prevented @WrapOperationon an integer comparison if either side was boxed.
Changes since 0.4.1:
- New: @Expressions.
 This is a huge feature which allows you to target almost any sequence of instructions to make@Ats both much more flexible and much more wide-reaching than before.
 Additionally@ModifyExpressionValuelets you modify the result of any such expression, and@WrapOperationalso gains support for many new things, such as array accesses, comparisons and casts.
- Fix: Properly support @Coerceon all injectors
- Fix: Give a proper error when @WrapMethodis attempted on<init>or<clinit>. These do not make sense to support.
- Fix: Handle the case where nullis passed toOperation#calland the number of arguments is incorrect.
0.5.0-beta.5
- Fix: Resolve issues when targeting a string concat with exactly 2 components.
- Improvement: Prevent direct targeting of expanded string concat code.
- Improvement: Handle synthetic String.valueOfcalls on concat components as of Java 19.
- Fix: Proper error when incorrect argument count for Operation::callwith null arguments.
- Fix: Resolve INSTANCEOFandCHECKCASTbeing treated as class constants.
- Fix: Allow @ModifyExpressionValueon casts and instanceofs without@Expressions.
- Fix: Allow @Coerceon@WrapMethodparams.
- Change: Prefer new style of minVersion declaration.
 example.mixins.json:
{
    ...
    "mixinextras": {
        "minVersion": "..."
    }
    ...
}0.5.0-beta.4
- Fix: Set a module name on NeoForge. This resolves crashes due to both the beta and the bundled version being loaded.
- Fix: Fix slim jar manifest being empty.
0.5.0-beta.3
- Fix not being able to @ModifyExpressionValueexpanded unary comparisons (int comparisons with 0 or object comparisons with null)
0.4.1
0.5.0-beta.2
- Fix: Parse mixin configs leniently when scanning for minMixinExtrasVersion, to match Mixin's own handling.
- Fix: Resolve @ModifyReceivers not working after a static@Redirecthas been applied to the call.
0.5.0-beta.1
New: @Expressions.
This is a huge feature which allows you to target almost any sequence of instructions to make @Ats both much more flexible and much more wide-reaching than before.
Additionally @ModifyExpressionValue lets you modify the result of any such expression, and @WrapOperation also gains support for many new things, such as array accesses, comparisons and casts.