
MixinBooter
MixinBooter - библиотека миксинов для Minecraft 1.8-1.12.2, которая позволяет модам использовать миксины без конфликтов. Упрощает разработку и совместимость модов на старых версиях.
MixinBooter
Библиотека миксинов для Minecraft 1.8 - 1.12.2
MixinBooter - это мод-библиотека для Майнкрафт, которая решает одну из главных проблем старых версий (1.8 - 1.12.2) - совместимость миксинов между разными модами. Если ты когда-нибудь сталкивался с крашами из-за конфликта версий Mixin (например, тот же VanillaFix), то знаешь, как это бесит. MixinBooter как раз это и чинит.
Что это и зачем нужно
В Minecraft Forge для старых версий (особенно 1.7.10, 1.8, 1.12.2) многие моды используют миксины - штуку, которая позволяет менять код игры на лету, без переписывания ядра. Проблема в том, что разные моды могут тянуть разные версии библиотеки Mixin, и начинается ад: краши, несовместимость, вылеты. MixinBooter унифицирует этот процесс - под капотом у него UniMix 0.15.3 (форк от CleanroomMC, основанный на ветке 0.8.7 от LegacyModdingMC), и он работает на всех версиях от 1.8 до 1.12.2 одним билдом.
Кстати, версия MixinExtra в комплекте - 0.5.0, так что разработчикам не придется подключать её отдельно.
Для разработчиков
Если ты собираешь мод под старые версии Майнкрафт и хочешь использовать миксины без головной боли - MixinBooter твой выбор. Вот как подключить его через Gradle:
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.7') {
transitive = false
}
annotationProcessor ('zone.rong:mixinbooter:10.7') {
transitive = false
}
// RetroFuturaGradle:
String mixinBooter = modUtils.enableMixins('zone.rong:mixinbooter:107')
api (mixinBooter) {
transitive = false
}
annotationProcessor (mixinBooter) {
transitive = false
}
}
Что изменилось по версиям
- С версии 4.2 - API MixinBooter изменился, и теперь все моды, использующие миксины, рекомендуют зависеть от него (даже те, что миксанят ванильные/фордж/библиотечные классы). Это чтобы избежать рассогласования версий Mixin - спасибо embeddedt за идею.
- С версии 5.0 - MixinExtras от LlamaLad7 встроен прямо в библиотеку, доступен разработчикам.
- С версии 8.0 - один билд работает на всех версиях от 1.8 до 1.12.2 (LiteLoader пока в планах).
- С версии 8.4 - активная совместимость с SpongeForge.
- С версии 9.2 - вернули старую аннотацию MixinLoader для версий 1.8.x.
- С версии 10.0 - MixinBooter следует за Mixin 0.8.7.
Важно знать
- IEarlyMixinLoader - для миксинов, которые влияют на ванильные классы, Forge или любые классы, загружаемые очень рано (например, Guava).
- ILateMixinLoader - для миксинов, которые влияют на моды.
- Аннотация
@MixinLoaderпо функционалу похожа наILateMixinLoader. Обе можно использовать одновременно, особенно для версий 1.8.x, где это необходимо.
По факту, если ты собираешь сервер или модпак на старых версиях Minecraft и хочешь избежать крашей из-за миксинов - MixinBooter must-have. На слабом железе он не скажется на производительности, но стабильность поднимет знатно.
