Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cleanroommc/mixinbooter
Allows any mixins that work on mods to work effortlessly. With a single class and an annotation. On 1.12.2.
https://github.com/cleanroommc/mixinbooter
api hook library minecraft mixin
Last synced: about 19 hours ago
JSON representation
Allows any mixins that work on mods to work effortlessly. With a single class and an annotation. On 1.12.2.
- Host: GitHub
- URL: https://github.com/cleanroommc/mixinbooter
- Owner: CleanroomMC
- License: lgpl-2.1
- Created: 2020-11-02T13:43:12.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-15T11:16:06.000Z (11 days ago)
- Last Synced: 2024-12-20T14:55:46.972Z (6 days ago)
- Topics: api, hook, library, minecraft, mixin
- Language: Java
- Size: 351 KB
- Stars: 57
- Watchers: 3
- Forks: 18
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# MixinBooter
### Allows any mixins that work on mods to work effortlessly on 1.8 - 1.12.2- Current Mixin Version: [UniMix 0.15.3 forked by CleanroomMC, derived from 0.8.7 branch by LegacyModdingMC](https://github.com/CleanroomMC/UniMix)
- Current MixinExtra Version: [0.5.0-beta4](https://github.com/LlamaLad7/MixinExtras)
### For Developers:
- Add CleanroomMC's repository and depend on MixinBooter's maven entry:
```groovy
repositories {
maven {
url 'https://maven.cleanroommc.com'
}
}dependencies {
// Common:
annotationProcessor 'org.ow2.asm:asm-debug-all:5.2'
annotationProcessor 'com.google.guava:guava:32.1.2-jre'
annotationProcessor 'com.google.code.gson:gson:2.8.9'// ForgeGradle:
implementation ('zone.rong:mixinbooter:10.2') {
transitive = false
}
annotationProcessor ('zone.rong:mixinbooter:10.2') {
transitive = false
}
// RetroFuturaGradle:
String mixinBooter = modUtils.enableMixins('zone.rong:mixinbooter:10.2')
// modUtils.enableMixins('zone.rong:mixinbooter:10.2', 'mod_id.mixins.refmap.json') << add refmap name as 2nd arg (optional)
api (mixinBooter) {
transitive = false
}
annotationProcessor (mixinBooter) {
transitive = false
}
}
```### Pseudo-Changelog:
- As of 4.2, MixinBooter's API has changed and ***all mods*** that uses mixins are encouraged to depend on MixinBooter, even those that mixin into vanilla/forge/library classes. To avoid mixin version mismatches with mods crashing trying to implement modded mixins (looking at you VanillaFix). Thanks to [@embeddedt](https://github.com/embeddedt) recommending and helping me introduce this change!
- As of 5.0, [MixinExtras by @LlamaLad7](https://github.com/LlamaLad7/MixinExtras) is shaded. Available for developers to use.
- As of 8.0, MixinBooter will now work from 1.8 - 1.12.2. One single build works with all these versions! (TODO: LiteLoader support?)
- As of 8.4, MixinBooter actively attempts to be compatible with [SpongeForge](https://github.com/SpongePowered/SpongeForge)
- As of 9.2, MixinBooter reinstates the older MixinLoader annotation for 1.8.x usages.
- As of 10.0, MixinBooter follows Mixin 0.8.7
### Tidbits:
- Consult `IEarlyMixinLoader` for mixins that affects vanilla, forge, or any classes that is passed to the classloader extremely early (e.g. Guava).
- Consult `ILateMixinLoader` for mixins that affects mods.
- `@MixinLoader` annotation's ~~, as of 4.2, deprecated. The~~ functionality is akin to `ILateMixinLoader`. Both can be used at the same time, especially for 1.8.x versions where it is needed.