Skip to content

Releases: LlamaLad7/MixinExtras

0.5.0

28 Jul 21:08
73e5b74

Choose a tag to compare

  • 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 @ModifyExpressionValue and @WrapOperation in particular.
    • @ModifyExpressionValue can now modify array element gets, array literals, array .length, arithmetic and bitwise operations (+, &, etc), method and constructor references (thing::method, Type::new, etc), casts, instanceof checks, class literals, comparisons, local variable loads, and string concatenations.
    • @WrapOperation can now wrap comparisons, array element gets and sets, array .length, and object casts.
  • New/Fix: Support @Coerce in every injector.
  • Improvement: Informative error for attempted @WrapMethod on <(cl)init>.
  • Fix: Proper error when Operation#call is called with the wrong number of arguments and one of them is null.
  • Fix: Resolve issues with shipping betas on Forge and NeoForge.

0.5.0-rc.4

19 Jul 17:23
2cd1ecd

Choose a tag to compare

0.5.0-rc.4 Pre-release
Pre-release
  • Fix: Resolve NPE on ASM 5.2 when matching against a primitive int-like comparison.
  • Fix: Resolve crash when using @ModifyExpressionValue on an int-like @Expression which had previously been replaced.

0.5.0-rc.2

07 Apr 12:33
c287b0e

Choose a tag to compare

0.5.0-rc.2 Pre-release
Pre-release

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-forge a 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

25 Mar 13:31
cabac9d

Choose a tag to compare

0.5.0-rc.1 Pre-release
Pre-release

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 @WrapMethod is 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 @WrapOperation on 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 @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.
  • Fix: Properly support @Coerce on all injectors
  • Fix: Give a proper error when @WrapMethod is attempted on <init> or <clinit>. These do not make sense to support.
  • Fix: Handle the case where null is passed to Operation#call and the number of arguments is incorrect.

0.5.0-beta.5

19 Jan 00:06
5a27423

Choose a tag to compare

0.5.0-beta.5 Pre-release
Pre-release
  • 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.valueOf calls on concat components as of Java 19.
  • Fix: Proper error when incorrect argument count for Operation::call with null arguments.
  • Fix: Resolve INSTANCEOF and CHECKCAST being treated as class constants.
  • Fix: Allow @ModifyExpressionValue on casts and instanceofs without @Expressions.
  • Fix: Allow @Coerce on @WrapMethod params.
  • Change: Prefer new style of minVersion declaration.
    example.mixins.json:
{
    ...
    "mixinextras": {
        "minVersion": "..."
    }
    ...
}

0.5.0-beta.4

28 Oct 17:06
b2716c2

Choose a tag to compare

0.5.0-beta.4 Pre-release
Pre-release
  • 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

29 Aug 20:44
76a2a0b

Choose a tag to compare

0.5.0-beta.3 Pre-release
Pre-release
  • Fix not being able to @ModifyExpressionValue expanded unary comparisons (int comparisons with 0 or object comparisons with null)

0.4.1

11 Aug 13:14
ca7ec98

Choose a tag to compare

  • Fix: Resolve @ModifyReceivers not working after a static@Redirect has been applied to the call.

0.5.0-beta.2

11 Aug 13:13
44de2a7

Choose a tag to compare

0.5.0-beta.2 Pre-release
Pre-release
  • Fix: Parse mixin configs leniently when scanning for minMixinExtrasVersion, to match Mixin's own handling.
  • Fix: Resolve @ModifyReceivers not working after a static@Redirect has been applied to the call.

0.5.0-beta.1

17 Jul 20:47
0594572

Choose a tag to compare

0.5.0-beta.1 Pre-release
Pre-release

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.