MixinExtras
MixinExtras copied to clipboard
Companion library to SpongePowered Mixin with many custom injectors for a more expressive experience.
Mention that you can use a method reference in your ``fabric.mod.json`` to initialize mixin extras. This may or may not need some rewording
If targeting a non static method call with ModifyExpressionValue, it would be great if it was possible to get a reference to the object the method being called belongs to,...
In a regular Java conditional, if you do something like this: ```java if (cheapCheck() && expensiveCheck()) ``` `expensiveCheck()` will only run if `cheapCheck()` evaluates to `true` (and with `||` only...
**What it does** Like a `@ModifyArgs` is for multiple `@ModifyArg`s, a `@ModifyVariables` should be for multiple `@ModifyVariable`s. Quite simple (unless you need to do hacks with the LVT) and should...
`throw` statements should possibly be supported in `@WrapWithCondition`, and maybe in a separate replace-style injector too. Possibly a dedicated injection point, or maybe just expect people to use `INVOKE` targeting...
- `@WrapWithCondition` is now able to wrap method exiting instructions, if they are safe to remove. Method exiting instructions are safe to remove, if they're always followed by another method...
Hi, a new `@WrapMethod` injector, which would work similar to WrapOperation, except wrapping the entire method instead of just a single call. I am currently working on a project which...
a `@Share` is unique to a mixin, which is very good for compatibility, but that behavior can occasionally be desired. For Porting Lib, I need to wrap a parameter as...
This would wrap the entire left-hand or right-hand side of a comparison, which could be chained by multiple mixins. Example: ```java @ModifyComparisonArg( method = "targetMethod", comparison = "LESS_THAN_OR_EQUAL", argument =...
Add an annotation (say, `@Conflict`), that can be added to an injector to mark it as conflicting with other injectors that target the same instruction. This tells MixinExtras to fail...