Туториал [Forge] [BinPatch] Модифицируем Minecraft без изменения {VERSION}.jar

  1. Устанавливаем JDK, Git и Gradle.
  2. Настраиваем переменные среды.
  3. В произвольной папке вводим команду git clone --recursive https://github.com/MinecraftForge/MinecraftForge.git.
  4. Вводим команду cd MinecraftForge.
  5. В файле build.gradle выставляем параметру version следующее значение:
    Код:
    '<Версия MC>-<Версия Forge>'
    Например:
    Код:
    version = '1.7.10-10.13.0.1187'
  6. Вводим команду gradle setupForge eclipse.
  7. Запускаем Eclipse указав в качестве рабочей среды папку MinecraftForge/eclipse.
  8. Вносим все необходимые изменения в исходный код проекта Forge.
  9. В классе net.minecraftforge.common.ForgeVersion указываем версию Forge.
  10. Сохраняем все изменения и закрываем Eclipse.
  11. Вводим команду gradle genPatches.
  12. Вводим команду gradle build.
  13. В файле build/distributions/forge-<Версия MC>-<Версия Forge>-universal.jar/fmlversion.properties указываем версию FML.
  14. Убираем у файла forge-<Версия MC>-<Версия Forge>-universal.jar приставку -universal.
  15. Копируем forge-<Версия MC>-<Версия Forge>.jar в libraries/net/minecraftforge/forge/<Версия MC>-<Версия Forge> с заменой.

+ Вам не нужно добавлять какие-либо JVM флаги, отключающие проверки валидности классов.
+ У вас больше шансов избежать проблем с модами, вносящими изменения в ванильные классы.
+ Нехорошим людям будет гораздо сложнее получить исходный код клиента.

- Приходится долго ждать, пока ForgeGradle проводит сборку.

Чтобы использовать исходники старых версий MC, необходимо на 3 шаге использовать одну из этих команд:
 
Последнее редактирование:
У меня выбивает с ошибкой "Java Heap Size" на ":retroMapClean", замучался уже, не знаю, что делать...
 
Здравствуйте. Я нифига в этом не шарю, но раз уж для вас это как "2+2", можете мне оказать услугу? Скажите как затереть надпись про "+X Damage Attack" под мечями и инструментами? Я просто делаю предметы через ItemLoreStat, эта надпись там не в тему...
z2dl6-fQnv4.jpg
 
Выделил, но не помогло, пришлось модифицировать классы в ручную и просто выполнить "build".
P.S. (Offtop) Народ, как исправить глюку с запуском майна с модами через сашка?
На рабочем столе моды свои папки создают, gameDir вроде как указан в Game.java (Версия клиента 1.7.10).
 
Выделил, но не помогло, пришлось модифицировать классы в ручную и просто выполнить "build".
P.S. (Offtop) Народ, как исправить глюку с запуском майна с модами через сашка?
На рабочем столе моды свои папки создают, gameDir вроде как указан в Game.java (Версия клиента 1.7.10).
Процесс директорию невозможно сменить, она назначается только при запуске лаунчера.
 
Понятия не имею, как чинить NEI.
Я тут понял, что он юзает библиотеку asm от forge, так-что одной декомпиляцией тут не обойдёшься...
Ладно, примусь за дело, если что-либо получится - поделюсь на форуме =)
Блин, гугль просто убивает, сейчас в интернете нет ничего полезного, кроме гайдов "как скачьят моди для миникруфт"
 
Я тут понял, что он юзает библиотеку asm от forge, так-что одной декомпиляцией тут не обойдёшься...
Почему? Байт-код относительно просто читается, посмотрите документацию JVM, чтобы найти описание разных команд.
P.S. ASM используется только, чтобы подредактировать классы самого Minecraft, всё остальное - нормальный код.
 
Ну с... Займусь исправлением =)
 
  1. Устанавливаем JDK, Git и Gradle.
  2. Настраиваем переменные среды.
  3. В произвольной папке вводим команду git clone --recursive https://github.com/MinecraftForge/MinecraftForge.git.
  4. Вводим команду cd MinecraftForge.
  5. В файле build.gradle выставляем параметру version следующее значение:
    Код:
    '<Версия MC>-<Версия Forge>'
    Например:
    Код:
    version = '1.7.10-10.13.0.1187'
  6. Вводим команду gradle setupForge eclipse.
  7. Запускаем Eclipse указав в качестве рабочей среды папку MinecraftForge/eclipse.
  8. Вносим все необходимые изменения в исходный код проекта Forge.
  9. В классе net.minecraftforge.common.ForgeVersion указываем версию Forge.
  10. Сохраняем все изменения и закрываем Eclipse.
  11. Вводим команду gradle genPatches.
  12. Вводим команду gradle build.
  13. В файле build/distributions/forge-<Версия MC>-<Версия Forge>-universal.jar/fmlversion.properties указываем версию FML.
  14. Убираем у файла forge-<Версия MC>-<Версия Forge>-universal.jar приставку -universal.
  15. Копируем forge-<Версия MC>-<Версия Forge>.jar в libraries/net/minecraftforge/forge/<Версия MC>-<Версия Forge> с заменой.

+ Вам не нужно добавлять какие-либо JVM флаги, отключающие проверки валидности классов.
+ У вас больше шансов избежать проблем с модами, вносящими изменения в ванильные классы.
+ Нехорошим людям будет гораздо сложнее получить исходный код клиента.

- Приходится долго ждать, пока ForgeGradle проводит сборку.

Чтобы использовать исходники старых версий MC, необходимо на 3 шаге использовать одну из этих команд:
Использую версию 1.6.4, выводит ошибку :genJavadocs FAILED. С чем это может быть связано?
 
У меня при билде тоже её пишет, но файлы генятся нормально вроде...
Раньше launch4j ошибку выбивало, не понимаю даже, зачем он там 😕
До сих пор не разобрался с Java Heap Space, 2 гига выделил яве :C
 
У меня при билде тоже её пишет, но файлы генятся нормально вроде...
Раньше launch4j ошибку выбивало, не понимаю даже, зачем он там 😕
До сих пор не разобрался с Java Heap Space, 2 гига выделил яве :C
У меня до сих пор выбивает ошибку launch4j
Можете помочь с билдом?

https://github.com/MinecraftForge/MinecraftForge/issues/1460
 
Пытаюсь портировать Cauldron до версии форджа 10.13.2.1230
Подскажите, файлы patches как то можно через редактор генерировать/редактировать или только вручную.
 
Пытаюсь портировать Cauldron до версии форджа 10.13.2.1230
Подскажите, файлы patches как то можно через редактор генерировать/редактировать или только вручную.
В папке eclipse есть папки Cauldron и Clean. У обоих структура файлов одинакова, в Clean нужно закинуть чистые исходнки (Vanilla или Vanilla + Forge). А далее запустить gradlew genPatches
На основе различий между файлаги и генерируются патчи.
 
В папке eclipse есть папки Cauldron и Clean. У обоих структура файлов одинакова, в Clean нужно закинуть чистые исходнки (Vanilla или Vanilla + Forge). А далее запустить gradlew genPatches
На основе различий между файлаги и генерируются патчи.
Благодарю
 
Назад
Верх Низ