- Added dynamic target selector support and @Desc
target selector - Added pattern target selector
- Added more expressive quantifier support to explicit target
selectors - Facelift and overall improvements to javadoc
- Hotfix for supporting ModLauncher 7.0
- Fix critical issue with resolving obfuscated members in inherited
interfaces - Updated to ASM 7.2
- Updated to ASM 6.2
- Support for
ModLauncher - Added recognition for Java 9 and 10
- Support for ForgeGradle 3+ tsrg obfuscation tables
- Configs can now inherit from other configs
- @Invoke can now be used to expose constructors
- Dramatically improved context reporting of unexpected applicator
and preprocessor exceptions, making it easier to diagnose when an
agent chokes on a specific opcode - Bug fixes for
- Calling members of accessor mixins from inside mixin code
- Incorrect handling of spaces in explicit target declarations
- Unexpected behaviour when attempting to redirect a ctor
- Properly detect incompatible accessor overlap and ignore valid
ones (don’t warn) - Interface static accessors now correctly conform target if
interface is classloaded before target class - Staticness mismatch for accessor correctly detected and
reported instead of causing crash - Fixed generator and injector errors relating to double-word
operands on the stack needing DUP2 - Fixed issue in LVT generator folded in from FabricMC
- Fail-fast when a final method is accidentally hidden
by a mixin - Fix the appearance of stray CallbackInfo instances in
local capture injector LVTs
- Apache Commons-IO Dependency removed
- Renamed shaded ASM removed
- Improved resolution of local variables for local variable capture
injections - @Coerce on callback injectors and redirects can now
resolve super interfaces including mixed-in interfaces
- Fixes for 3 minor bugs: handling of maxShiftBy fixed, improved
BeforeInvoke permissive search, disable generic signature merging
unless decompiler is active.
- Log an error when a mixin class is subject to classloader restrictions
- Allow certain injectors to target mixin methods.
- Bug fixes for member declaration validation, non-wild ctor redirects,
and internal errors in Args subclass generator
- Fixes for handling of log message triggers for INIT phase and error
when running with unexpected logger configurations - Add warnings for invalid slice points and narrowing conversion in
ModifyConstant handlers
- Fix inheritance for string system properties
- Add support for @Coerce on redirect injectors.
- Added @Dynamic annotation for decorating mixin
elements with dynamically-injected targets.
- Internal changes to provide for support modlauncher and java 9
- Add profiler for inspecting mixin performance.
- Fixes and improvements to the Mixin AP, fixing handling of multi-
dimensional arrays and resolving methods in superclasses of derived
types of obfuscated classes - Add runtime refmap remapping to support using deobfCompile
dependencies with different mapping versions.
- All official binaries are now signed
- Upgrade to ASM 5.2
- Add support for inner classes in Mixins
- Injectors can now have multiple explicit targets
- @At annotations can now have their own id
- Add support for using @Overwrite on non-obfuscated
methods as a way of verifying that an overwrite target exists - Improve support for synthetic bridges, detect conflicting bridge
methods - Detect and warn of excessive At.Shift.BY values
- ModifyConstant can now support multiple slices
- Add allow to injectors to detect over-injection
- Add support for multiple constants in ModifyConstant
- Add CONSTANT as general-purpose injection point
- Add support for redirecting array length access in field
redirectors
- Add support for using @Coerce on reference types in
Callback Injectors to support derived types.
- Add support for conforming visibility of overwrite methods to
match target class. Fixes issues where a target class method has been
modified by an Access Transformer to have higher visibility
- Add slice argument to @ModifyConstant
- Add @ModifyArgs injector which can change multiple
method call arguments with a single handler.
- Fix handling of @Unique when the same unique method
exists in more than one mixin targetting the same class - Fix handling of merged lambdas so that lambdas from mixins are
applied correctly when lambdas already exist in the target class (both
in the original class and when applied by earlier mixins)
- (0.6.9) Minor fix to remove dependence on deprecated helper
- Respect remap on Mixin for contained @At
- Require redirectors which occur before call to superctor to be static
- Allow @ModifyConstant to hook implicit zero in comparisons
- Add support for @Redirect on array access
- Allow static methods in accessor mixins in Java 8 and above
- Add support for injector slices
- Allow descriptors on NEW injection points
- SourceDebugExtension support
- Add support for @Pseudo (virtual target) mixins
- Process soft-implements annotations in the AP
- Accessor Mixin support
- Allow @Redirect injectors to target NEW opcodes for
constructor redirection
- Annotation Processor improvements. Support shadows and overrides
in multi-target mixins - Support pluggable obfuscation environments in AP
- Add async decompilation support
- Add alternative strategy for injecting field initialisers
- Support @Unique on fields
- Hard fail if a required mixin target was already transformed
- Support constraints on injectors
- Add @Unique annotation
- Environment changes, support environment via agents
- Add @ModifyConstant injector
- Add @Debug annotation
- Allow static @ModifyArg handlers in instance methods
- Error handlers also receive mixin prepare errors
- Conform injectors
- Enable hotswapper automatically if agent is active
- Fix multiple issues with generics in Annotation Processors
- Support ID on injectors
- Support priority for injectors
- Overhaul injectors, injectors from all mixins now scan before any
injectors are actually processed. Makes injectors more deterministic.
- Add support for @Redirect on fields as well as methods
- Add @ModifyLocal injector
- Support ExtraSRGs in Annotation Processor
- Include constructors in reference map
- Add @Mutable annotation to suppress @Final warnings
- Include soft targets in refmap
- Add support for interface mixins
- Add @Final annotation
- Add support for injector grouping and config-wide require value
- Runtime remapping support using RemapperChain
- Ignore class transformers decorated with @Resource
- Support @reason and @author validation on overwrites
- Annotation Processor improved to support
MixinGradle
- Support multiple target obfuscation environments in refmaps
- Add INIT phase for handling early FML startup
- Add support for lambdas in mixins
- Add support for hot code replacement in mixins
- Improve Java 8 feature support
- Add constraints for overwrites
- Add INVOKE_ASSIGN injection point
- Support injector callbacks without args
- Support coercion of covariant parameter types in callbacks
- Support truncating local-capturing injector handlers
- Runtime decompilation of exported classes using fernflower
- Add export filter
- Shade relocated ASM package and use throughout
- Error handler support
- Annotation Merging
- Allow Overwrite methods to be aliased
- Implemented Environments
- Intrinsic method support
- Enabled local variable capture
- Alias support
- Added supermixin support (mixins inheriting from other mixins)
- Basic Mixin Support
- Basic Injector Support
- Annotation Processor