- Баллы
- 78
- Имя в Minecraft
- skoniks
Приветствую вас посетители русского сообщества Bukkit!
В данном "не мини" туториале я покажу вам как установить и как пользоваться Forge Decomp Workspace (альтернативой MCP) на примере MineCraft 1.7.2/1.7.9/1.7.10
Что нам потребуется:- Forge src (версии которая нам нужна. PS я использую 1.7.2) Скачать
- Eclipse (я использую стандартный) Офц.Сайт
- Minecraft Coder Pack (аналогично нужной версии)
- Bearded Octo Nemesis (Деобфускатор\Реобфускатор)
- Java JDK 7.
У нас есть три этапа:
Скачиваем Eclipse(если нету)
Скачиваем Forge Decomp Workspace

На данном этапе нам больше ничего не понадобиться!
Выбираем папку в которую мы будем все устанавливать.
Не должно быть русских букв в пути к папке SRC.
Я выбираю директорию "C:\172"
"172" - папка, в неё извлекаем наш архив с SRC.
В Пуске в поиске вводим "cmd" (командная строка).
Она показывается в результатах поиска, жмем по cmd правой кнопкой мыши и Запускаем от имени Администратора!

Далее первое что отображается в Ком.Строке - путь до System32 (нам нужно это изменить)
Вводим команду: cd "путь до папки"(если путь большой его можно скопировать)
У меня лично такая команда:
далее пишем в этой же консоли команду, которая установит Forge Decomp Workspace:
Если хотите установить с дальнейшим использованием Eclipse то пишите:
Если без Eclipse (просто с блокнотом сидеть):

И пойдет загрузка чистого майнкрафта... и установка... длительный процесс!
После этого консоль не закрываем!
Потом открываем сам Eclipse и выбираем как рабочую папку - "ваш_путь\ваша_папка\eclipse"
У меня это:

И когда Eclipse запускается - мы видим наш проект под названием "Minecraft"

Все! Установка завершена!
Скачиваем Forge Decomp Workspace
На данном этапе нам больше ничего не понадобиться!
Выбираем папку в которую мы будем все устанавливать.
Не должно быть русских букв в пути к папке SRC.
Я выбираю директорию "C:\172"
"172" - папка, в неё извлекаем наш архив с SRC.
В Пуске в поиске вводим "cmd" (командная строка).
Она показывается в результатах поиска, жмем по cmd правой кнопкой мыши и Запускаем от имени Администратора!

Далее первое что отображается в Ком.Строке - путь до System32 (нам нужно это изменить)
Вводим команду: cd "путь до папки"(если путь большой его можно скопировать)
У меня лично такая команда:
Код:
cd C:\172
Если хотите установить с дальнейшим использованием Eclipse то пишите:
Код:
gradlew setupDecompWorkspace eclipse
Код:
gradlew setupDecompWorkspace

И пойдет загрузка чистого майнкрафта... и установка... длительный процесс!
После этого консоль не закрываем!
Потом открываем сам Eclipse и выбираем как рабочую папку - "ваш_путь\ваша_папка\eclipse"
У меня это:
C:\172\eclipse

И когда Eclipse запускается - мы видим наш проект под названием "Minecraft"

Все! Установка завершена!
Не зря этот гавнюк час качал файлы чистого майнкрафта.... мы прямо в Eclipse можем запустить майн с Форджем и увидеть изменения!

В каталоге "src/main/java" создаем пакет "net.minecraft.client.gui"

Аналогично в нем создаем класс "GuiMainMenu"
Потом открываем файл по адресу "Minecraft/Referenced Libraries/net.minecraft.client.gui/GuiMainMenu.class"
и копируем все его содержимое в первый "GuiMainMenu.class", который мы создали в "src/main/java"
Класс GuiMainMenu является классом редактирования главного экрана и он понадобиться нам дальше...
Потом можно закрыть Eclipse
Совет:
Если вы что то меняете в классах, то никогда не пишите по русски! Проблема в чем... Крякозябры! Лучше написать по английски и потом через InClassTranslator изменить надписи!
PS - это касается туториала выше

В каталоге "src/main/java" создаем пакет "net.minecraft.client.gui"

Аналогично в нем создаем класс "GuiMainMenu"
Потом открываем файл по адресу "Minecraft/Referenced Libraries/net.minecraft.client.gui/GuiMainMenu.class"
и копируем все его содержимое в первый "GuiMainMenu.class", который мы создали в "src/main/java"
Класс GuiMainMenu является классом редактирования главного экрана и он понадобиться нам дальше...
Сразу ищем в нем строки:
и нам нужно просто закомментировать их или удалить
Все! копирайты форджа убраны... теперь меняем копирайты майнкрафта на свои!
Код:
List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
for (int i = 0; i < brandings.size(); i++)
{
String brd = brandings.get(i);
if (!Strings.isNullOrEmpty(brd))
{
this.drawString(this.fontRendererObj, brd, 2, this.height - ( 10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215);
}
}
Код:
/*List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
for (int i = 0; i < brandings.size(); i++)
{
String brd = brandings.get(i);
if (!Strings.isNullOrEmpty(brd))
{
this.drawString(this.fontRendererObj, brd, 2, this.height - ( 10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215);
}
}*/
Ищем в GuiMainMenu.class такую строку:
И целиком заменяем ее на эту:
Не забываем импорты (показано в видео части)
После строки
Вставляем
Запускаем, вуаля!
Код:
this.buttonList.add(new GuiButton(2, this.width / 2 - 100, par1 + par2 * 1, I18n.format("menu.multiplayer", new Object[0])));
Код:
this.multiplayerButton = new GuiButton(2, this.width / 2 - 100, par1 + par2 * 1, I18n.format("menu.multiplayer", new Object[0]));
this.buttonList.add(multiplayerButton);
multiplayerButton.width = 98;
this.siteButton = new GuiButton(100, this.width / 2 + 2, par1 + par2 * 1, "Наш сайт");
this.buttonList.add(this.siteButton);
siteButton.width = 98;
После строки
Код:
if (p_146284_1_.id == 4)
{
this.mc.shutdown();
}
Код:
if (p_146284_1_.id == 100)
{
Sys.openURL("http://rubukkit.org");
}
Совет:
Если вы что то меняете в классах, то никогда не пишите по русски! Проблема в чем... Крякозябры! Лучше написать по английски и потом через InClassTranslator изменить надписи!
PS - это касается туториала выше

Далее нам потребуется MCP и BON
Берем прям.... открываем нашу ненаглядную консольку
пишем в нее такой код
И далее следуем в дирректорию- \наша_папку\build\libs\
И там видим файлик modid-1.0.jar (по сути это мод и его можно запихнуть в папку mods на мы идем по другому пути)
Берем этот файлик и копируем его на рабочий стол или в какое другое удобное место!
Дальше самое сложное!
Нам нужно извлечь MCP в какую либо папку! Берем.... и извлекаем
Потом открываем BON и... настраиваем:

Там куда мы все это сохранили появился файл... название вы сами выбирали!
Из него достаем файлы (именно классы!) и кидаем их в наш MineCraft.jar или в 1.7.2-forge.jar
Удаляем Meta-inf
При запуска майнкрафт через лиц. и др. лаунчеры не забываем прописывать аргументы:
Запускаем майн
(если не забыли запихнуть сам Forge)
Радуемя крякозябрам
Берем прям.... открываем нашу ненаглядную консольку

пишем в нее такой код
Код:
gradlew build
И там видим файлик modid-1.0.jar (по сути это мод и его можно запихнуть в папку mods на мы идем по другому пути)
Берем этот файлик и копируем его на рабочий стол или в какое другое удобное место!
Дальше самое сложное!
Нам нужно извлечь MCP в какую либо папку! Берем.... и извлекаем

Потом открываем BON и... настраиваем:
- Imput file - наш файлик modid-1.0.jar
- Output file - файл с любым названием(в нем будут лежать наши классы)!
- MCP folder - путь до папки, куда мы извлекли MCP
- Side - Без разницы (Universal/client)
- Operation - Reobfuscate Mod
- Наживаем Go

Там куда мы все это сохранили появился файл... название вы сами выбирали!
Из него достаем файлы (именно классы!) и кидаем их в наш MineCraft.jar или в 1.7.2-forge.jar
Удаляем Meta-inf
При запуска майнкрафт через лиц. и др. лаунчеры не забываем прописывать аргументы:
Код:
-Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
Радуемя крякозябрам

Жаль что лайков нет...
Удачи ребят! Дерзайте майн!
Так-же вам пригодиться:
- Делаем кнопки "Зайти на сервер", "Обновить" и отображение кол-ва игроков в гл. меню. @gamerforEA
- Красивые прозрачные кнопки в Minecraft. @EvilEnginer
- Изменяем меню мультиплеера! @Raptor2108
Если вы что то меняете в классах, то никогда не пишите по русски! Проблема в чем... Крякозябры! Лучше написать по английски и потом через InClassTranslator изменить надписи!
Нужно использовать юникод-маски. Вот сайт: http://unicode-table.com/ru/tools/decoder/ . В правом окне пишешь по-русски, в левом появляется юникод-маска. Берешь ее и вставляешь в нужное место в коде. PROFIT.
@MrGiperCreeper
@MrGiperCreeper
Просто нужно использовать нормальную кодировку исходников (это касается абсолютно всех проектов java).
Открываем настройки проекта (Project -> Properties) и ставим выделенное, как на скриншоте.
Того, что я написал оказалось недостаточно. Ещё также пришлось править конфиг gradle.
В build.gradle перед строчкой apply plugin: 'forge' нужно добавить:
Это указывает компилятору кодировку исходников, а также переключает компиляцию под Java 7 (по умолчанию древняя Java 6).
@saharin94
Открываем настройки проекта (Project -> Properties) и ставим выделенное, как на скриншоте.
Того, что я написал оказалось недостаточно. Ещё также пришлось править конфиг gradle.
В build.gradle перед строчкой apply plugin: 'forge' нужно добавить:
Код:
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
@saharin94
Внимание! Если у кого-либо при выполнении команды
необходимо сделать следующее:
1. В консоли пишем следующую команду:
где ПУТЬ_ДО_JDK - путь к месту установки JDK, например у меня - D:\Program Files\Java\jdk1.8.0_5
2. Пишем еще одну команду:
Все, теперь можно спокойно писать
и все пройдет успешно!
Код:
gradlew setupDecompWorkspace eclipse
1. В консоли пишем следующую команду:
Код:
set JAVA_HOME=ПУТЬ_ДО_JDK
2. Пишем еще одну команду:
Код:
set PATH=%JAVA_HOME%\bin;%PATH%
Код:
gradlew setupDecompWorkspace eclipse
Если у вас вылезла такая ошибка - удаляйте все java которые имеете на компе, и устанавливайте JDK7
Код:
:makeStart FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':makeStart'.
> Cannot find System Java Compiler. Ensure that you have installed a JDK (not ju
st a JRE) and configured your JAVA_HOME system variable to point to the accordin
g directory.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.
BUILD FAILED
Вложения:
Последнее редактирование:
