Skip to content

Latest commit

 

History

History
69 lines (57 loc) · 4.25 KB

README.md

File metadata and controls

69 lines (57 loc) · 4.25 KB

logo

DepATs - Dependency Access Transformers

Плагин для minecraft-моддеров, позволяющий искать Access-трансформеры в зависимостях машего проекта, а затем объединяет их в один файл.

Download

Что такое Access-трансформеры?

В узком смысле, это подход, который использует Minecraft Forge, чтобы моддеры могли получать доступ к приватным полям и методам без необходимости модифицировать minecraft.jar. А в широком - процес изменения модификаторов доступа классов на этапе их загрузки.

Подбробнее о транформерах вы можете узнать тут

Зачем?

Несмотря на то, что команда MincraftForge не оказывает поддержку устаревшим версиям игры, они все еще развиваются и используются. К сожалению, ForgeGradle для старых версий не умеет извлекать access-трансформеры из модов-зависимостей (такое появилось тольков 2.0). Из-за чего подключать моды через Gradle становится очень неудобно, т.к. вручную приходилсь переписывать все трансформеры в файл. Но с этим плагином вам больше не придется беспокоиться о трансформерах в ваших зависимостях!

Старт всего за 3 шага

  1. Подключите репозиторий с плагином к вашему билдскрипту:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'ru.rarescrap:depATs:1.0.0'
    }
}
  1. Подключите плагин: (лучше сделать это после включения forge-плагина)
apply plugin: 'DepATs'
  1. Добавьте в блок настроек minecraft {} всего одну строку:
minecraft {
    // ...
    at(DepATs.getDepATs())
}

Теперь запустите gradlew setupDecompWorkspace и наслаждайтесь примененными трансформерами.

Настройки плагина

  1. Трансформеры из зависимостей по умолчанию хранятся в build/dependencies_at.cfg, но вы можете указать любой файл, какой пожелаете:
DepATs {
    depATs = file("myCustomDepATsFile_at.cfg")
}

Теперь транформеры будут хранится в корне проекта в файле myCustomDepATsFile_at.cfg

  1. Вы можете игнорировать cfg-файлы с определенным именем или crf-файлы только для определенной зависимости:
DepATs {
    ignoredATs = [
    'ignoreThisFile_at.cfg', // Этот файл будет игнорироваться для всех зависимостей
    'ignoreThoseFile_at.cfg:dependency.jar'] // Файл с этим именем будет игнорироваться только для зависимости dependency.jar
}

По умолчанию игнорируются "forge_at.cfg" и "fml_at.cfg", т.к. они применяются и так.

У меня не рабоает/я нашел баг/у меня есть идея

Вы можете высказать все это на багтрекере