
FermiumBooter
FermiumBooter - утилита для разработчиков модов на Minecraft, позволяющая загружать миксины как рано, так и поздно. Это упрощает модификацию классов, которые обычно недоступны для изменений, и добавляет гибкие настройки совместимости.
FermiumBooter - это утилита для разработчиков модов на Майнкрафт, которая решает одну из главных проблем при создании модификаций: ограничения по времени загрузки миксинов. В ванильной игре или с Forge некоторые классы просто нельзя изменить стандартными методами из-за порядка их инициализации. Этот мод позволяет загружать миксины как на ранних этапах запуска игры, так и на поздних, открывая доступ к тем классам, которые обычно остаются "закрытыми" для модификаций.
Что это даёт
Если вы разрабатываете моды для Minecraft, то наверняка сталкивались с ситуацией, когда нужный класс загружается слишком рано или слишком поздно, и ваш миксин просто не срабатывает. FermiumBooter решает эту проблему через систему очередей - вы просто указываете, когда именно нужно применить миксин, и утилита сама всё разруливает.
Основные возможности
- Ранняя и поздняя загрузка миксинов - можно изменять как ванильные/Forge-классы, так и классы других модов.
- Аннотация @MixinConfig - расширяет стандартную систему @Config от Forge. Позволяет автоматически включать/выключать миксины в зависимости от настроек в конфиге.
- Проверка совместимости - можно указать обязательные или несовместимые моды для конкретных миксинов. Если что-то не подходит, система выдаст предупреждение в лог.
- Принудительное отключение - если миксин не проходит проверку совместимости, его можно полностью отключить (опционально).
- Визуальные предупреждения в игре - когда миксины с конфиг-аннотациями не проходят проверку, в интерфейсе появляется уведомление (его можно отключить).
- Гибкий контроль через Supplier - позволяет разработчику решать, какие миксины применять до их загрузки.
- Утилита проверки ModID - аналог
Loader.isModLoaded(), но работает на этапе очереди миксинов, когда стандартный метод ещё недоступен. - Запрет на другие миксины - можно отключить все остальные миксины из FermiumBooter для тестирования или отладки.
Для разработчиков
Всё, что нужно сделать в вашем IFMLLoadingPlugin - вместо Mixins.addConfiguration("mixinConfigName") написать FermiumRegistryAPI.enqueueMixin("mixinConfigName"). Если миксин должен загружаться поздно - добавьте true первым аргументом: FermiumRegistryAPI.enqueueMixin(true, "mixinConfigName"). Дальше FermiumBooter всё сделает сам.
Все дополнительные утилиты и их использование описаны прямо в коде с комментариями.
Технические детали
FermiumBooter включает в себя тени (shadows) от Mixin 0.8.7 и MixinExtras 0.4.1, так что вам не придётся тащить их отдельно.
Важно знать
Если у вас возникли проблемы или есть предложения - лучше всего писать в issue-трекер на GitHub (ссылка выше). Это не для игроков, а чисто для разработчиков модов. Если вы собираете сервер или модпак - скорее всего, этот инструмент вам не понадобится напрямую, но он может быть полезен как зависимость для других модов.
Скачайте FermiumBooter для Minecraft и упростите себе разработку модов!
