Bon2Gradle

Bon2Gradle

Версия(и) Minecraft
1.7+

Bon2Gradle​


Плагин для Minecraft проектов, что позволяет использовать BON2 как аналог fg.reobf из ForgeGradle.

GitHub issues GitHub forks GitHub stars GitHub license JitPack JitCI GitHub CI test status

Использование​


Зависимости​

  • 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, поэтому могут быть странные речевые обороты, ошибки и опечатки в тексте, не стесняйтесь исправлять меня :)
  • Like
Реакции: Garik и hohserg
Автор
MJaroslav
Просмотры
873
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя MJaroslav

Последние обновления

  1. 0.5.0

    0.5.0 - 2024-03-18 Добавлено Вариант функции deobf со вторым параметром типа Closure для...
  2. 0.4.0

    0.4.0 - 2022-10-17 Изменено Резкий и полный переход на kotlin, в том числе и в скриптах сборки.
  3. 0.3.1

    0.3.1 - 2022-10-16 Исправлено Ошибка конфигурации проекта с указанием на абстрактность класса...
Сверху