▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Preloading Tricks
Preloading Tricks

Preloading Tricks

Preloading Tricks - утилита для разработчиков, дающая доступ к ранней загрузке, трансформации классов и перехватчикам загрузчика. Поддержка Fabric, Forge, NeoForge.

Оцените первым
287.0K
13

Preloading Tricks - это инструментальный мод для разработчиков, который открывает доступ к самым ранним стадиям загрузки мод-лоадера в Minecraft. Если ты когда-нибудь сталкивался с тем, что не успеваешь перехватить инициализацию, подменить классы или добавить свои обработчики до того, как всё уже запущено - этот проект как раз для таких случаев.

По сути, Preloading Tricks даёт возможность делать следующие вещи:

  • Ранние хуки через PreloadingEntrypoint (на основе SPI)
  • Трансформацию классов с помощью Java Instrumentation - можно менять даже уже загруженные классы, включая системные и класслоадерные
  • Определение варианта Forge/NeoForge для гибкой совместимости

Поддерживаемые окружения

Мод работает на Fabric (1.20.1, 1.21+), Forge (LexForge, 1.20.1), NeoForge (1.20.6, 1.21+). В действительности может работать и на других версиях, потому что привязка идёт к версии загрузчика, а не к версии Minecraft.

Основные возможности

Ранние точки входа

Реализуй PreloadingEntrypoint (SPI), и твой код выполнится ещё до того, как моды начнут загружаться. Доступные события: SETUP_LANGUAGE_ADAPTER - настройка адаптера языка, COLLECT_MOD_CANDIDATES - добавление путей к модам до их обнаружения, SETUP_MODS - изменение списка модов (добавление/удаление/запрос через ModManager API).

Трансформация классов

Через ClassTransform можно менять уже загруженные классы, конфигурация задаётся в MANIFEST.MF.

Определение варианта Forge

Если твой мод должен работать по-разному на LexForge и NeoForge, можно указать в MANIFEST.MF параметр ForgeVariant: LexForge или ForgeVariant: NeoForge. Тогда мод загрузится только на нужном варианте.

Подключение через Gradle

Если ты разрабатываешь мод и хочешь использовать Preloading Tricks, добавь репозиторий и зависимость:

repositories {
    maven("https://raw.githubusercontent.com/settingdust/maven/main/repository/")
}

dependencies {
    implementation("settingdust.preloading_tricks:PreloadingTricks:3.5.9")
}

Можно указать конкретный классификатор - fabric, forge-service, neoforge-modlauncher, neoforge-fancy-mod-loader, но обычно достаточно базовой зависимости, Gradle сам подтянет нужный вариант.

Настройка ClassTransform

В MANIFEST.MF пропиши:

ClassTransformConfig: xxxx.classtransform.json

Несколько конфигов через запятую.

Пример xxxx.classtransform.json:

{
  "package": "settingdust.preloading_tricks.neoforge.transformer",
  "transformers": [
    "mod_setup_hook.FMLLoaderTransformer"
  ]
}

Зачем это нужно?

В обычной разработке модов ты ограничен тем, что твой код запускается только после инициализации загрузчика. Preloading Tricks ломает эти рамки: можно подменять классы до того, как Minecraft вообще начнёт думать о мире, блоках или мобах. Это критично для:

  • оптимизаций на уровне байткода
  • внедрения прокси-классов
  • модификации системных вызовов
  • раннего логирования и профилирования

Для обычного игрока мод бесполезен, но для разработчика - это мощный низкоуровневый инструмент. Если ты пишешь сложные моды, которые должны работать на стыке загрузчиков, Preloading Tricks реально упрощает задачу. Скачивай, разбирайся, тестируй.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x1.18.x1.16.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки


Создатели

Детали

Лицензия:
Опубликован:2 года назад
Обновлён:2 недели назад
Главная