Preloading Tricks
Инструмент разработчика для раннего доступа к загрузчику, трансформации классов и хаков предзагрузки.
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 407 тыс.
- Подписчиков на Modrinth
- 21
- версий
- 88
- Обновлён
- 29 июня 202629 июн.
- Опубликован
- в 2023
Коротко о моде
Работает и в игре, и на сервере — ставьте, где нужен
Обзор
Preloading Tricks — это мод только для разработчиков, который позволяет выполнять продвинутые операции на самом раннем этапе работы загрузчика модов. Он предоставляет ранние хуки, преобразование классов на основе Java Instrumentation и SPI-колбэки для расширения загрузчика.
Поддерживаемые окружения:
- Fabric – 1.20.1, 1.21+
- Forge (LexForge) – 1.20.1
- NeoForge – 1.20.6, 1.21+
Вы можете протестировать на других версиях, так как это зависит от версии загрузчика, а не от версии Minecraft.
Возможности
Ранняя точка входа загрузчика через
PreloadingEntrypoint(на основе SPI)Регистрируйте колбэки с помощью событий
PreloadingTricksCallbacks:SETUP_LANGUAGE_ADAPTER– ранний этап настройки языкового адаптераCOLLECT_MOD_CANDIDATES– динамическое добавление путей кандидатов модов до их обнаруженияSETUP_MODS– изменение списка модов (добавление/удаление/запрос через APIModManager)
ClassTransformна основе Instrumentation Может преобразовывать уже загруженные классы, включая классы ядра Java и загрузчика классов. Настраивается черезMANIFEST.MFна всех платформах (см. ниже).Определение варианта Forge (только для Forge-подобных)
- Доступ к
ForgeVariantsдля определения конкретных версий Forge/NeoForge во время выполнения
- Доступ к
Использование (Gradle)
Добавьте Maven-репозиторий и зависимость в вашу сборку:
Kotlin DSL:
repositories {
maven("https://raw.githubusercontent.com/settingdust/maven/main/repository/")
}
dependencies {
// Рекомендуется: использовать базовый артефакт (без классификатора).
// Gradle variant matching / cloche автоматически подберёт правильный артефакт платформы.
implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION")
// Опционально: зафиксировать конкретный классификатор, если вы хотите избежать случайного
// использования API с других платформ.
// implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:fabric")
// implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:forge-service")
// implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:neoforge-modlauncher")
// implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:neoforge-fancy-mod-loader")
}Замените VERSION на последний релиз (например, 3.5.9).
Если вы используете cloche, соответствующий вариант выбирается автоматически на основе атрибутов загрузчика/Minecraft.
Настройка ClassTransform
Для всех платформ добавьте следующий атрибут в ваш MANIFEST.MF:
ClassTransformConfig: xxxx.classtransform.jsonМожно указать несколько конфигов через запятую:
ClassTransformConfig: first.classtransform.json,second.classtransform.jsonПример конфига (xxxx.classtransform.json):
{
"package": "settingdust.preloading_tricks.neoforge.transformer",
"transformers": [
"mod_setup_hook.FMLLoaderTransformer"
]
}Определение варианта Forge (только для Forge-подобных)
Позволяет моду загружаться только на определённом варианте Forge-подобного загрузчика. Это даёт возможность объединить JAR-файлы LexForge и NeoForge вместе через jar-in-jar в одном файле мода.
Настройка:
Укажите целевой вариант вашего мода в MANIFEST.MF:
ForgeVariant: LexForgeили
ForgeVariant: NeoForgeМоды с указанным ForgeVariant будут загружаться только при работе на соответствующем варианте загрузчика, что обеспечивает безопасное сосуществование реализаций для разных вариантов.
Для разработчиков, которым нужно добраться до самых ранних моментов процесса загрузки Minecraft.
Частые вопросы
Как установить Preloading Tricks?
Установите Fabric под свою версию Minecraft, скачайте Preloading Tricks под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Preloading Tricks?
У Preloading Tricks есть сборки для Minecraft 1.16.5, 1.18–26.1.2.
Нужен ли Preloading Tricks на сервере?
Работает и в игре, и на сервере — ставьте, где нужен