🇺🇦 Українська (Ukrainian - Ukraine)
🇺🇦 Українська (Ukrainian - Ukraine)
Зовнішній вигляд
🇺🇦 Українська (Ukrainian - Ukraine)
🇺🇦 Українська (Ukrainian - Ukraine)
Зовнішній вигляд
Ця сторінка написана для версії:
1.21.4
Fabric Loom, або просто Loom, це плаґін Gradle для розробки модів в екосистемі Fabric.
Loom надає утиліти для встановлення Minecraft і модів у середовищі розробки, щоб ви могли зв’язуватися з ними щодо обфускації Minecraft та її відмінностей між дистрибутивами та версіями. Він також надає налаштування запуску для використання з Fabric Loader, обробкою компіляції міксинів та утиліт для системи jar-in-jar Fabric Loader.
Loom підтримує всі версії Minecraft, навіть ті, які офіційно не підтримуються Fabric API, оскільки він не залежить від версії.
Ця сторінка є посиланням на всі опції та функції Loom. Якщо ви тільки починаєте роботу, перегляньте сторінку початок роботи.
Під час налаштування багатопроєктної збірки, яка залежить від іншого проєкту Loom, ви повинні використовувати конфігурацію namedElements
, коли це залежить від іншого проєкту. За замовчуванням «виходи» проєкту переставляються на проміжні назви. Налаштування namedElements
містить вихідні дані проєкту, які не було повторно зіставлено.
dependencies {
implementation project(path: ":name", configuration: "namedElements")
}
Якщо ви використовуєте розділені вихідні набори в збірці з кількома проєктами, вам також потрібно буде додати залежність для клієнтського вихідного набору іншого проєкту.
dependencies {
clientImplementation project(":name").sourceSets.client.output
}
Протягом багатьох років поширеним джерелом збоїв на сервері були моди, які випадково викликали клієнтський код під час встановлення на сервері. Новіші версії Loom і Loader надають можливість вимагати переміщення всього клієнтського коду до власного вихідного набору. Це робиться для того, щоб розв'язати проблему під час компіляції, але збірка все одно призведе до єдиного файлу jar, який працює з обох сторін.
Наступний фрагмент із файлу build.gradle
показує, як можна увімкнути це для свого моду. Оскільки тепер ваш мод буде розділено на два набори джерел, вам потрібно буде використовувати новий DSL, щоб визначити набори джерел вашого мода. Це дозволяє Fabric Loader згрупувати шлях до класів вашого мода. Це також корисно для деяких інших складних налаштувань кількох проєктів.
Minecraft 1.18 (рекомендовано 1.19), Loader 0.14 і Loom 1.0 або новішої версії потрібні для розділення клієнтського та загального коду.
loom {
splitEnvironmentSourceSets()
mods {
modid {
sourceSet sourceSets.main
sourceSet sourceSets.client
}
}
}
Loom і/або Gradle іноді можуть виходити з ладу через пошкоджені файли кешу. Запуск ./gradlew build --refresh-dependencies
змусить Gradle і Loom повторно завантажити та відтворити всі файли. Це може зайняти кілька хвилин, але зазвичай цього достатньо, щоб розв'язати проблеми, пов’язані з кеш-пам’яттю.
Loom розроблено для роботи з коробки(out-of-the-box), просто налаштувавши робочий простір у вашому IDE. Він робить багато речей за лаштунками для створення середовища розробки з Minecraft:
${GRADLE_HOME}/caches/fabric-loom
: Кеш користувача, кеш, спільний для всіх проєктів Loom для користувача. Використовується для кешування ресурсів Minecraft, jar-ів, об’єднаних jar-ів, проміжних jar-ів і показу jar-ів.gradle/loom-cache
: постійний кеш кореневого проєкту, спільний кеш для проєкту та його підпроєктів Використовується для кешу переназначених модів, а також створених включених jar-ів модівminecraft
: визначає версію Minecraft для використання в середовищі розробкиmappings
: визначає зіставлення, які будуть використовуватися в середовищі розробкиmodImplementation
, modApi
і modRuntime
: розширені варіанти implementation
, api
і runtime
для залежностей мода. Буде переназначено, щоб відповідати зіставленням у середовищі розробки, і будь-які вкладені банки буде видаленоinclude
: оголошує залежність, яка має бути включена як jar-in-jar у вивід remapJar
. Це налаштування залежності не є транзитивною. Для залежностей, не пов’язаних із модами, Loom згенерує файл mod jar із fabric.mod.json
, використовуючи ID мода як назву та ту саму версіюjava
, eclipse
eclipse
, яке завершується завданням genEclipseRuns
.idea
існує в кореневому проєкті, завантажує ресурси (якщо вони не оновлені) і встановлює налаштування запуску в .idea/runConfigurations
net.fabricmc:fabric-mixin-compile-extensions
і його залежності з налаштувань залежностей annotationProcessor
remapJar
для виведення JAR-файлу з такою самою назвою, як і виведення завдання jar
, а потім додає класифікатор «dev» до завдання jar
remapSourcesJar
для обробки виводу завдання sourcesJar
, якщо завдання існуєremapJar
і remapSourcesJar
як залежності завдання build
remapJar
і remapSourcesJar
для додавання їхніх результатів як артефактів archives
під час виконанняmaven-publish
) вручну додає залежності до POM для налаштування залежностей мода, за умови, що налаштування залежностей має область MavenУсі конфігурації запуску мають каталог запуску ${projectDir}/run
та аргумент VM -Dfabric.development=true
. Основні класи для конфігурацій запуску зазвичай визначаються файлом fabric-installer.json
у корені JAR-файлу Fabric Loader, якщо він включений як залежність мода, але файл може бути визначений будь-якою залежністю мода. Якщо такий файл не знайдено, основними класами за замовчуванням є net.fabricmc.loader.launch.knot.KnotClient
і net.fabricmc.loader.launch.knot.KnotServer
.