MixinBooter avatar

MixinBooter [1.12.2] [1.11.2] [1.10.2]

MixinBooter

Позволяет любым миксинам, работающим с модами, без усилий функционировать на версиях 1.8 – 1.12.2

Псевдо-список изменений:

  • Начиная с версии 4.2, API MixinBooter изменился, и все моды, использующие миксины, обязаны зависеть от MixinBooter, даже те, что внедряются в классы ванильной игры, Forge или библиотек. Это необходимо для предотвращения несоответствий версий миксинов, приводящих к вылетам при попытке реализации модифицированных миксинов (смотрим на вас, VanillaFix). Спасибо @embeddedt за рекомендацию и помощь во внедрении этого изменения!

  • Начиная с версии 5.0, MixinExtras от @LlamaLad7 включен в сборку. Доступен для использования разработчиками.

  • Начиная с версии 8.0, MixinBooter работает на версиях от 1.8 до 1.12.2. Одна сборка работает со всеми этими версиями! (TODO: поддержка LiteLoader?)

  • Начиная с версии 8.4, MixinBooter активно пытается быть совместимым с SpongeForge

  • Начиная с версии 9.2, MixinBooter восстанавливает старую аннотацию MixinLoader для использования на 1.8.x.

  • Начиная с версии 10.0, MixinBooter следует за Mixin 0.8.7

  • Начиная с версии 11.0, MixinBooter построен на CleanMix. В рамках усилий по созданию унифицированного бэкенда с Cleanroom.

    • Больше не нужно самостоятельно объявлять зависимости для процессора аннотаций.
    • Также добавлен конфигурационный файл (config/mixinbooter.cfg) для внесения конфигураций миксинов в черный список и переключения опций отладки.
    • Выделенный журнал миксинов logs/mixinbooter.log с возможностью отслеживания загрузки классов для точной отладки.
    • Позволяет традиционным записям манифеста MixinConfig + MixinConnector полностью участвовать в экосистеме.
    • Обнаружение модов для владельцев миксинов, улучшенные проверки isModLoaded.
    • Подавляет предупреждения Forge о поврежденном zip.
    • Поэтапно отказались от "фаз" миксинов.

Для разработчиков ~ Начало работы:

  1. Добавьте репозиторий CleanroomMC и укажите зависимость от Maven-артефакта MixinBooter:
repositories {
    maven {
        url 'https://maven.cleanroommc.com'
    }
}

dependencies {
    def mixin = 'zone.rong:mixinbooter:11.0'

    implementation (mixin) {
        transitive = false
    }
    annotationProcessor mixin

    // RetroFuturaGradle для генерации refmap:
    modUtils.enableMixins(mixin)
    // modUtils.enableMixins(mixin, 'mod_id.mixins.refmap.json') << добавьте имя refmap вторым аргументом (необязательно)
}
  1. Выберите способ регистрации ваших конфигураций миксинов. MixinBooter поддерживает множество подходов:

(Начиная с версии 11.0, разделение на ранние/поздние загрузчики отсутствует, поэтому IEarly/ILateMixinLoaders устарели)

  • Атрибут манифеста MixinConfigs: класс загрузчика не требуется. Добавьте разделенный пробелами список имен ваших конфигурационных файлов миксинов в манифест вашего jar-файла. MixinBooter считывает их непосредственно из манифеста jar и регистрирует.
  • Атрибут манифеста MixinConnector: регистрация конфигураций программно. Укажите класс, реализующий org.spongepowered.asm.mixin.connect.IMixinConnector. Его метод connect() вызывается во время загрузки, где вы самостоятельно вызываете Mixins.addConfiguration(...).

Оба атрибута манифеста устанавливаются в вашей задаче jar:

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");
    }

}

Скачать MixinBooter

 
Тип Скачать Версия Загрузчик Обновлено Размер
ReleaseMixinBooter 11.181.8+23 Forge12 октября 20262,3 МБ
ReleaseMixinBooter 11.171.8+23 Forge3 сентября 20262,3 МБ
ReleaseMixinBooter 11.161.8+23 Forge3 сентября 20262,3 МБ
ReleaseMixinBooter 11.151.8+23 Forge21 августа 20262,3 МБ
ReleaseMixinBooter 11.141.8+23 Forge18 августа 20262,3 МБ
ReleaseMixinBooter 11.131.8+23 Forge5 августа 20262,3 МБ
ReleaseMixinBooter 11.121.8+23 Forge28 июля 20262,4 МБ
ReleaseMixinBooter 11.111.8+23 Forge27 июля 20262,4 МБ
BetaMixinBooter 11.101.8+23 Forge27 июля 20262,4 МБ
BetaMixinBooter 11.91.8+23 Forge26 июля 20262,3 МБ