- Версия(и) Minecraft
- 1.7+
Bon2Gradle
Плагин для Minecraft проектов, что позволяет использовать BON2 как аналог fg.reobf из ForgeGradle.
Использование
Зависимости
- Gradle 6.8+ (минимальная версия на которой проводились тесты).
- Тесты настроены на следующие версии:
6.8
,6.9.4
,7.5.1
,7.6.4
,8.5
.
- Тесты настроены на следующие версии:
- Kotlin + Java 8+ (лямбды и потоки).
Подключение плагина к проекту
Gradle (Groovy):
buildscript {
repositories {
// Добавьте JitPack.io в ваши репозитории сборки
maven { url 'https://jitpack.io' }
// Вещи для ForgeGradle
maven {
name 'forge'
url 'https://maven.minecraftforge.net/'
}
}
dependencies {
// Вещи для ForgeGradle (форк anatawa12)
classpath('com.anatawa12.forge:ForgeGradle:1.2-1.1.+') {
changing = true
}
// Добавьте плагин в зависимости, можете использовать "master-SNAPSHOT" как версию, чтобы
// использовать последний коммит.
classpath 'com.github.MJaroslav:Bon2Gradle:0.5.0' // Смотрите последний релиз на GH
}
}
apply plugin: 'bon2gradle' // Подключение плагина
Настройка плагина
Gradle (Groovy):
// Расширение для настройки BON2
// опция = значение по умолчанию // описание
bon2 {
useParallelDeobfuscation = false // Если зависимость состоит из нескольких файлов,
// они будут деобфусцированны параллельно.
force = false // Принудительно использовать маппинги предоставленные параметрам "mappingsName" или "csv".
mappingsName = "" // Имя "чистых" маппингов в формате "{канал}_{версия}-{версия_игры}"
// "чистые" маппинги имеют больший приоритет чем "грязные". Пример: stable_12-1.7.10
// Оставьте значение пустым, чтобы использовать следующий параметр.
csv = files() // Список файлов в формате CSV с "грязными" маппингами.
dirty = false // Принудительно сохранять деобфусцированные артефакты в папке build проекта как "грязные".
resolve = true // Автоматически деобфусцировать все созданные с помощью функции bon2.deobf
// артефакты после конфигурации проекта.
providerClass = 'io.github.mjaroslav.bon2gradle.api.impl.FG12Provider'
// Реализация интерфейса 'io.github.mjaroslav.bon2gradle.api.MappingProvider'
// для получения маппингов из вашего плагина Minecraft разработки.
}
Деобфускация зависимостей
Просто оберните строку-идентификатор зависимости в метод
bon2.deobf
:
Gradle (Groovy):
repositories {
mavenCentral()
maven {
url "https://cursemaven.com/"
content {
includeGroup "curse.maven"
}
}
}
dependencies {
// Мод HEE из репозитория cursemaven просто для примера
// Все деобфусцированные jar'ы будут сохранены в специальной директории внутри build директории проекта.
implementation bon2.deobf("curse.maven:hardcore-ender-expansion-228015:2316923")
}
Вы также можете использовать Closure вторым аргументов для конфигурации "чистой" зависимости.
Поддердиваемые версии Minecraft проектов
- Плагин написан и протестирован с форком ForgeGradle-1.2 от anatawa12.
- На данный момент рекомендую очевидно указывать версию маппингов в FG, так как я не совсем правильно реализовал их получение в случае, если их не указать.
- В теории, если я не использовал код FG где-либо вне его MappingProvider'а, вы сможете использовать плагин с любым проектом.
Building
Просто клонируйте репозиторий, переключитесь на
master
ветку и выполните ./gradlew build
. Это запустит сборку и выполнение unit тестов, если вы хотите выполнить и функциональные тесты тоже, то запускайте с переменной окружений CI
равной true
или с помощью задачи functionalTest
.Минимальная версия JDK для сборки
8
.Постскриптум
- Не до конца уверен с выбором категории ресурса, эта была ближе всех...
- Я изначально писал это в markdown и на английском для README, поэтому могут быть странные речевые обороты, ошибки и опечатки в тексте, не стесняйтесь исправлять меня