- Версия(и) Minecraft
- 1.7.10, 1.12.2
Представляю вашему вниманию шаблон среды для разработки модов на стареньких версиях Minecraft с поддержкой всех актуальных возможностей. Среда базируется на плагине RetroFuturaGradle от GTNH. Ему пока уделено недостаточно внимания на просторах данного форума. Считаю, надо это исправлять.
Шаблон состоит из множества мелких файлов. Предполагается что вы НЕ будете вносить никаких изменения в файл build.gradle для удобства его обновления из шаблона в будущем.
Версия Forge изменится автоматически вместе с версией игры. Она прописана хардкодом 
Можно также посмотреть пример конфигурации в официальном репозитории: RetroFuturaGradle/example/build.gradle.kts at master · GTNewHorizons/RetroFuturaGradle
Из интересных фич:
- Поддержка современных версий Gradle и Java
- Улучшенные маппинги для 1.7.10 с дженериками.
- Поддержка Mixins из коробки

- Наличие деобфуксатора зависимостей
rfg.deobf()
- Отказ от копирования всего исходного файла только для того чтобы заменить в нём строки вроде
@VERSION@. Вместо этого плагин автоматически генерирует класс тегов с нужными константами, на который может ссылаться ваш код.
Начало работы
Скопируйте шаблон проекта: GitHub - CleanroomMC/TemplateDevEnv: Template workspace for modding Minecraft 1.12.2 [1.12.2]Шаблон состоит из множества мелких файлов. Предполагается что вы НЕ будете вносить никаких изменения в файл build.gradle для удобства его обновления из шаблона в будущем.
- Базовые параметры проекта задаются в gradle.properties
- Подключение дополнительных библиотек осуществляется в gradle/scripts/dependencies.gradle
- Дополнительные задачи и вспомогательных код прописываются в gradle/scripts/extra.gradle и gradle/scripts/helpers.gradle
А где Minecraft 1.7.10?
Версия игры меняется буквально изменением всего двух строчек в главном файле конфигурации
build.gradle:
minecraft {
mcVersion = '1.7.10'
// MCP Mappings
mcpMappingChannel = 'stable'
mcpMappingVersion = '12'
// ...
}
Можно также посмотреть пример конфигурации в официальном репозитории: RetroFuturaGradle/example/build.gradle.kts at master · GTNewHorizons/RetroFuturaGradle
Особенности работы
- Имена некоторых тасков Gradle отличаются. Например, не получится отключить создание Jar архива с суффиксом dev. Его генерирует таск
jar, а уже из него таскreobfделает релизную версию мода. - Нельзя изменить рабочую директорию игры run – прописана хардкодом.
- Исходный код Minecraft подключается как SourceSet, а не библиотека. Из-за этого возникают проблемы со сменой версии игры – оно не происходит при переключении веток Git. Приходится удалять папку build/rfg и ждать пока Minecraft скомпилируется заново. Я пока не нашёл способа сделать разные пути в зависимости от версии Minecraft.