MixinBooter — библиотека Mixin, совместимая с версиями Minecraft от 1.8 до 1.12.2.
Описание
MixinBooter позволяет использовать любые mixin-модификации, которые работают с другими модами, на версиях Minecraft от 1.8 до 1.12.2 без дополнительных сложностей. В одной сборке реализована поддержка всех указанных версий.
Основные возможности
- Использует CleanMix 0.2.9 — форк SpongePowered/Fabric Mixin 0.8.7;
- Включена поддержка MixinExtras версии 0.5.4;
- Обеспечивается совместимость с SpongeForge;
- Поддержка старой аннотации MixinLoader для версий 1.8.x;
- Встроенный конфигурационный файл
config/mixinbooter.cfgдля управления черным списком конфигураций и параметрами отладки; - Отдельный лог-файл
logs/mixinbooter.logс возможностью подробного отслеживания загрузки классов; - Улучшенный механизм обнаружения модов и проверки их загрузки;
- Подавление предупреждений Forge о повреждённых zip-архивах;
- Упрощение системы фаз mixin;
- Поддержка традиционных атрибутов манифеста
MixinConfigиMixinConnectorдля регистрации конфигураций.
Установка и использование для разработчиков
repositories { maven { url '' }
} dependencies { def mixin = 'zone.rong:mixinbooter:11.0' implementation(mixin) { transitive = false } annotationProcessor mixin // Для генерации refmap используйте: modUtils.enableMixins(mixin) // Или с указанием имени refmap (необязательно): // modUtils.enableMixins(mixin, 'mod_id.mixins.refmap.json')
}
- Выберите способ регистрации ваших mixin-конфигураций. MixinBooter поддерживает несколько вариантов:
- Атрибут
MixinConfigsв манифесте: укажите список файлов конфигураций через пробел, и они будут автоматически зарегистрированы без необходимости создавать класс загрузчика. - Атрибут
MixinConnectorв манифесте: укажите класс, реализующий интерфейсorg.spongepowered.asm.mixin.connect.IMixinConnector. Его методconnect()вызовется при запуске, где можно программно зарегистрировать конфигурации черезMixins.addConfiguration(...).
jar { manifest { attributes( 'MixinConfigs': 'mixins.mymod.json', 'MixinConnector': 'com.example.mymod.MyMixinConnector' ) }
}
public class MyMixinConnector implements IMixinConnector { @Override public void connect() { // Можно проверить, загружен ли мод, перед регистрацией // Используйте zone.rong.mixinbooter.service.ModDiscoverer.isModPresent(String modId) Mixins.addConfiguration("mixins.mymod.json"); }
}





