FermiumBooter
FermiumBooter is a specialized utility for working with the mixin system, providing developers with advanced capabilities for loading mixins at different execution stages. This tool enables access to modifying classes that were previously inaccessible for changes using standard methods.
Key Features
- Flexible Mixin Loading: Ability to apply mixins both at early and late loading stages, allowing modification of both standard Vanilla/Forge classes and classes from other modifications
- Extended Annotation System: Use of @MixinConfig annotation that complements the standard @Config system from Forge and provides automatic mixin queueing based on configuration settings
- Compatibility Management: Built-in compatibility checking system through configuration annotations allows developers to define required and incompatible mods for specific mixins
- Notification System: Automatic logging of warnings during failed compatibility checks for mixins using the configuration annotation system
- Application Control: Ability to forcibly disable mixins during failed compatibility checks through the configuration annotation system
- In-Game Notifications: Display of warnings directly in the game (with disable option) during failed compatibility checks
- Dynamic Management: Enabling and disabling mixins before their application through the use of Supplier, providing developers with full control over optional mixins
- Verification Utilities: Special methods for checking mod presence by their identifiers, similar to Loader.isModLoaded(), but available during mixin queueing and early application
- Mixin Isolation: Ability to block the application of other mixins queued through FermiumBooter for testing and fine-tuning purposes
- Library Compatibility: Built-in support for Mixin 0.8.7 and MixinExtras 0.4.1
Usage for Developers
To integrate FermiumBooter into your project, replace the standard call Mixins.addConfiguration("mixinConfigName") in your IFMLLoadingPlugin's init method with FermiumRegistryAPI.enqueueMixin("mixinConfigName"). For registering mixins with late loading, use FermiumRegistryAPI.enqueueMixin(true, "mixinConfigName"). FermiumBooter will automatically handle all other loading aspects.
All additional utilities and functions are thoroughly documented in the source code with explanations of purpose and usage methods.