Твікери класу 26.1.2
Дізнайтеся, що таке твікери класу та як їх налаштувати.
Твікери класу, раніше відомі як розширювачі доступу, перш ніж отримати подальшу функціональність, надають інструменти трансформації, що доповнюють маніпуляції байт-кодом міксина. Вони також дозволяють зробити деякі модифікації середовища виконання доступними в середовищі розробки.
WARNING
Твікери класу не є специфічними для певної версії Minecraft, але доступні лише починаючи з 0.18.0 Завантажувача Fabric та Loom 1.12, і можуть націлюватися лише на класи стандартного Minecraft.
Налаштування
Формат файлу
Файли твікерів класу зазвичай називаються як ваш ID мода, example-mod.classtweaker, щоб допомогти плаґінам IDE їх розпізнати. Їх слід зберігати в resources.
У першому рядку файлу має бути такий заголовок:
classtweaker
classTweaker v1 official1
Для деяких функцій може знадобитися версія вище, ніж v1 — про це буде згадано на відповідних сторінках.
Файли налаштування класу можуть містити порожні рядки та коментарі, що починаються з #. Коментарі можуть починатися в кінці рядка.
Синтаксис може відрізнятися залежно від використовуваної функції, але кожна модифікація оголошується як «записи» в окремих рядках і починається з «директиви», яка визначає тип модифікації, яку слід застосувати. Елементи запису можна відокремлювати будь-якими пробілами, включаючи Tab.
Транзитивні записи
Щоб зробити ваші зміни в декомпільованому початковому коді видимими для модів, які залежать від вашого, додайте префікс директиви transitive-:
classtweaker
# Transitive Access Widening directives
transitive-accessible
transitive-extendable
transitive-mutable
# Transitive Interface Injection directive
transitive-inject-interface
# Transitive Enum Extension directive
transitive-extend-enumУказівка розташування файлу
Розташування файлу твікера класу має бути вказано у ваших файлах build.gradle і fabric.mod.json. Пам’ятайте, що ви також повинні залежати від 0.18.0 Завантажувача Fabric або новішої версії, щоб використовувати твікери класу.
Специфікації все ще називаються на честь розширювачів доступу, щоб зберегти зворотну сумісність.
build.gradle
gradle
loom {
accessWidenerPath = file("src/main/resources/example-mod.classtweaker")
}fabric.mod.json
json
...
"accessWidener": "example-mod.classtweaker",
...Після вказівки розташування файлу у файлі build.gradle перезавантажте проєкт Gradle в IDE.
Перевірка файлу
Усталено твікер класу ігноруватиме записи, що посилаються на цілі модифікації, які неможливо знайти. Щоб перевірити, чи всі класи, поля та методи, указані у файлі, дійсні, запустіть завдання Gradle validateAccessWidener.
Помилки вказуватимуть на будь-який недійсний запис, але вони можуть не вказувати, яка частина запису недійсна.




