/Mixin

Mixin is a trait/mixin framework for Java using ASM

Primary LanguageJavaMIT LicenseMIT

Build Status

Mixin Logo

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.

Building Mixin

Mixin uses the Gradle build automation system. To perform a build simply execute

gradle

from within the project root directory. (If you do not have Gradle installed on your system you can instead run the supplied Gradle wrapper gradlew)

Integration with Eclipse IDE

The Mixin project can be integrated easily with Eclipse using the Gradle Plugin. Simply choose Import -> Gradle Project and follow the prompts.

When developing using Mixin, you can use the Mixin Annotation Processor within Eclipse to provide context-sensitive errors and warnings to help you more easily troubleshoot your mixins. To do so:

  1. Run the gradle build command to generate the mixin jar
  2. Open the properties of your eclipse project and navigate to Java Compiler -> Annotation Processing -> Factory Path
  3. Check the Enable project specific settings checkbox
  4. Click the Add External JARs button and select the generated mixin jar with the suffix -processor (hint: it should be in Mixin/build/libs)
  5. Navigate up one level to Java Compiler -> Annotation Processing
  6. Check the Enable project specific settings checkbox
  7. Check the Enable annotation processing checkbox
  8. Click the New... button next to the Processor options box
  • Set Key to reobfSrgFile
  • Set Value to the fully-qualified path to the mcp-srg.srg file (for Sponge this can be found in Sponge/build/srgs/mcp-srg.srg)
  1. Click OK to apply the changes

Version History

Version Features / Changes Date
0.1
  • Basic Mixin Support
  • Basic Injector Support
  • Annotation Processor
January 2015
0.2
  • Added supermixin support (mixins inheriting from other mixins)
March 2015
0.3
  • Implemented Environments
  • Intrinsic method support
  • Enabled local variable capture
  • Alias support
March 2015