Завантажувач Fabric 26.1.2
Легкий завантажувач модів, який підтримує проєкт Fabric.
Завантажувач Fabric — це легкий завантажувач модів від Fabric. Він надає необхідні інструменти для створення на будь-якій версії Minecraft. З іншого боку, хуки, що стосуються гри та версії, належать до Fabric API.
INFO
Хоча Завантажувач в основному використовується для Minecraft, можна створити постачальника ігор для інших програм Java (наприклад, таких ігор, як Slay the Spire або Hytale).
Він має служби, які дозволяють модам виконувати код під час ініціалізації, трансформувати класи, оголошувати та надавати залежності модів, і все це в різних середовищах.
Javadocs для останньої версії Завантажувача Fabric можна знайти на сайті розробки.
Поточний екземпляр Завантажувача Fabric можна отримати за допомогою FabricLoader.getInstance(). Як приклад, FabricLoader.getInstance().isModLoaded можна використовувати, щоб перевірити, чи запущений інший мод.
Моди
Мод — це jar із файлом метаданих fabric.mod.json у корені, в якому зазначено, як його слід завантажувати. Цей файл містить ID мода, номер версії, точки входу та налаштування міксинів.
ID мода ідентифікує мод, і будь-які два моди з однаковим ID вважаються одним модом. Одночасно можна завантажити лише одну версію мода.
Мод також може оголошувати, від яких інших модів він залежить або з якими конфліктує. Завантажувач Fabric спробує задовольнити залежності та завантажити відповідні версії модів; якщо не вдасться, то не вдасться запустити гру.
Завантажувач Fabric робить усі моди однаково здатними змінювати гру. Як приклад, усе, що робить Fabric API, можна зробити будь-яким іншим модом.
Моди завантажуються як зі шляху класів, так і з каталогу mods. Цей каталог можна змінити за допомогою системної властивості fabric.modsFolder.
Укладені JAR
INFO
Використання опції include Fabric Loom автоматично оброблятиме вкладення JAR, включаючи генерацію fabric.mod.json для JAR не модів.
Укладені JAR дозволяють моду створювати власні залежності, тож Завантажувач Fabric може знайти найкращу версію, намагаючись задовольнити залежності, замість того, щоб вимагати їх окремого встановлення.
Укладені JAR діють як будь-які інші моди, маючи власний файл метаданих, але містяться в батьківському JAR-файлі. Зауважте, що вкладені моди можуть самі вбудовувати інших дочірніх таким же чином.
Укладені JAR витягуються на носій під час запуску гри. Шляхи до вкладених JAR мають бути оголошені відносно кореня JAR, що їх містить.
Точки входу
Завантажувач Fabric використовує систему на основі точок входу, яка використовується для надання певного коду Завантажувачу Fabric для ініціалізації або інших модів.
Ініціалізатори завантажуються та викликаються на початку завантаження гри, і це дозволяє моду вносити свої зміни за допомогою коду. Ці точки входу зазвичай використовуються для завантаження модів шляхом реєстрації об'єктів реєстру, слухачів подій та інших зворотних викликів для подальших дій.
Міксин
Міксини дозволяють модам трансформувати класи Minecraft і навіть класи інших модів, і це єдиний тип трансформації класів, який офіційно підтримує Завантажувач Fabric. Мод може оголосити власне налаштування міксинів, що дозволяє використовувати міксини.
Завантажувач Fabric використовує модифікований форк оригінального Sponge Mixin. Однак вікі-версія міксинів все ще здебільшого дійсна.
Серед модифікацій Fabric є: дозвіл усіх усталених точок ін'єкцій у конструкторах, оптимізація невикористаної інформації зворотного виклику, надання виправлень для зворотної сумісності, виправлення статичних тіней, дозвіл ін'єкторів в інтерфейсах тощо.
Мапінги
INFO
Мапінги актуальні лише під час використання Завантажувача Fabric в обфускованих іграх, включаючи версії Minecraft до 26.1.
Завантажувач Fabric надає API MappingResolver для визначення імен класів, полів і методів щодо різних середовищ, у які можна завантажувати моди. Це можна використовувати для підтримки мапінгів у будь-якому середовищі за умови, що Завантажувач має доступ до мапінгів для визначення імені.
java
FabricLoader.getInstance().getMappingResolver().mapClassName("intermediary", "net.minecraft.class_5421") // Resolves to `RecipeBookType` on named versions of 1.21.111
Під час запуску в середовищі, не пов’язаному з розробкою, в обфускованій грі, Завантажувач Fabric перемаповує файл(и) гри до проміжних імен. Очікується, що моди, розроблені для обфускованих ігор, будуть маповані до проміжних, які будуть сумісні з цим середовищем. Перемаповані jar-файли кешуються та зберігаються в ${gameDir}/.fabric/remappedJars/${minecraftVersion} для повторного використання під час запуску.






