Welcome to the Mixin Javadoc
Mixin is a trait/mixin framework for Java using ASM and hooking into the runtime class-loading process via Mojang's LegacyLauncher system. The main documentation for Mixin can be found in the Wiki.
This Javadoc contains documentation for individual features and
annotations. For additional help use the channel
#mixin
on the Sponge Discord Server.
Packages
Package
Description
Classes which support environment-agnostic launch logic for the Mixin
subsystem and base classes and interfaces for environment-specific adapters.
Base classes for environment-specific adapters and default platform-agnostic
handlers for environment and mixin containers.
Default (platform-agnostic) container handles
Centrallised logging so that all logging can be delegated to a logging
adapter supplied by the mixin service
Primary interaction points (
@Mixin
and
@MixinEnvironment
)
and annotations (eg.
@Mixin
,
@Shadow
) for mixin consumers.See
IMixinConnector
Interfaces for internal Mixin objects which provide extensibility for mixin
consumers.
Injectors are class postprocessors which search for annotated methods merged
by mixins and perform weaving operations as requested.
Implementation of callback injector functionality provided by
@#64;Inject
.Common base classes for injector implementations.
Implementation of injectors which primarily mutate method invocations.
Support classes for
@ModifyArgs
which handle argument bundles
(Args
).Utility classes for invoke injectors.
Implementation of variable modifier injector specified by
@ModifyVariable
Built-in
injection point
classes.Target selectors are consumed by injectors and injection points when
identifying target members in a class or inside a method, see
ITargetSelector
.Dynamic target selectors provide custom logic for selecting injector targets.
Internal data bundles used by injectors during application.
Refmaps are data bundles which map string references to obfuscated
counterparts at runtime, see
ReferenceMapper
.Internal data bundles used by mixin during application.
Internal mixin transformation pipeline classes.
Internal mixin transformation pipeline extension interface and registry of
active extensions.
Internal mixin transformation pipeline extensions.
Meta annotations applied by the mixin processor to fingerprint mixin actions.
Obfuscation-related structs for interoperability with the annotation
processor and runtime obfuscation utilities.
Interface for structs for method and field mappings.
Structs for method and field mappings.
Structs for method and field mappings with specific behaviour for MCP
Mixin service interface, with base classes for all the moving parts of the
Mixin transformation pipeline and supporting infrastructure.
Specialised ASM utility and base classes used by the mixin processor.
Utility classes used by the entire Mixin pipeline, including utilities for
working with bytecode as well as general-purpose tools and parsers.
Utilities, abstractions and specialised subclasses used by Mixin for
interacting with ASM.
Logging abstraction to provide a unified logging interface for classes which
operate both at runtime and in the AP.
Performance profiling for Mixin.
Base package for the Mixin Annotation Processor.