Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Туториал [FDW]. Убираем Копирайты Forge, Делаем кнопку на свой сайт! 1.7.2/1.7.10|+

Ты печенька?

  • Да я печенька...

    124 голосов 40,8%
  • Нет! Я хлебушек!

    82 голосов 27,0%
  • Идите вы! Я бублик!

    98 голосов 32,2%

skoniks

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
skoniks
Приветствую вас посетители русского сообщества Bukkit!​
В данном "не мини" туториале я покажу вам как установить и как пользоваться Forge Decomp Workspace (альтернативой MCP) на примере MineCraft 1.7.2/1.7.9/1.7.10​
Что нам потребуется:
  1. Forge src (версии которая нам нужна. PS я использую 1.7.2) Скачать
  2. Eclipse (я использую стандартный) Офц.Сайт
  3. Minecraft Coder Pack (аналогично нужной версии)
  4. Bearded Octo Nemesis (Деобфускатор\Реобфускатор)
  5. Java JDK 7.
У нас есть три этапа:
Скачиваем Eclipse(если нету)
Скачиваем Forge Decomp Workspace
1.PNG
На данном этапе нам больше ничего не понадобиться!
Выбираем папку в которую мы будем все устанавливать.
Не должно быть русских букв в пути к папке SRC.:whistle:
Я выбираю директорию "C:\172"
"172" - папка, в неё извлекаем наш архив с SRC.
В Пуске в поиске вводим "cmd" (командная строка).
Она показывается в результатах поиска, жмем по cmd правой кнопкой мыши и Запускаем от имени Администратора!:lol:
3.PNG
Далее первое что отображается в Ком.Строке - путь до System32 (нам нужно это изменить)
Вводим команду: cd "путь до папки"(если путь большой его можно скопировать)
У меня лично такая команда:
Код:
cd C:\172
далее пишем в этой же консоли команду, которая установит Forge Decomp Workspace:
Если хотите установить с дальнейшим использованием Eclipse то пишите:
Код:
gradlew setupDecompWorkspace eclipse
Если без Eclipse (просто с блокнотом сидеть):
Код:
gradlew setupDecompWorkspace
5.PNG
И пойдет загрузка чистого майнкрафта... и установка... длительный процесс!
После этого консоль не закрываем!
Потом открываем сам Eclipse и выбираем как рабочую папку - "ваш_путь\ваша_папка\eclipse"
У меня это:
6.PNG
И когда Eclipse запускается - мы видим наш проект под названием "Minecraft"
7.PNG
Все! Установка завершена!
Не зря этот гавнюк час качал файлы чистого майнкрафта.... мы прямо в Eclipse можем запустить майн с Форджем и увидеть изменения!
8.png
В каталоге "src/main/java" создаем пакет "net.minecraft.client.gui"
9.PNG
Аналогично в нем создаем класс "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);
            }
        }
и нам нужно просто закомментировать их или удалить:ninja:
Код:
        /*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);
            }
        }*/
Все! копирайты форджа убраны... теперь меняем копирайты майнкрафта на свои!:cute:
Ищем в 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");
        }
Запускаем, вуаля!
Потом можно закрыть Eclipse
Совет:
Если вы что то меняете в классах, то никогда не пишите по русски! Проблема в чем... Крякозябры! Лучше написать по английски и потом через InClassTranslator изменить надписи!
PS - это касается туториала выше :)
Далее нам потребуется MCP и BON
Берем прям.... открываем нашу ненаглядную консольку :)
пишем в нее такой код
Код:
gradlew build
И далее следуем в дирректорию- \наша_папку\build\libs\
И там видим файлик modid-1.0.jar (по сути это мод и его можно запихнуть в папку mods на мы идем по другому пути)
Берем этот файлик и копируем его на рабочий стол или в какое другое удобное место!
Дальше самое сложное!:nerd:
Нам нужно извлечь MCP в какую либо папку! Берем.... и извлекаем :cool:
Потом открываем BON и... настраиваем:
  • Imput file - наш файлик modid-1.0.jar
  • Output file - файл с любым названием(в нем будут лежать наши классы)!
  • MCP folder - путь до папки, куда мы извлекли MCP
  • Side - Без разницы (Universal/client)
  • Operation - Reobfuscate Mod
  • Наживаем Go:lol:
12.PNG
Там куда мы все это сохранили появился файл... название вы сами выбирали!
Из него достаем файлы (именно классы!) и кидаем их в наш MineCraft.jar или в 1.7.2-forge.jar
Удаляем Meta-inf
При запуска майнкрафт через лиц. и др. лаунчеры не забываем прописывать аргументы:
Код:
-Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
Запускаем майн:lol: (если не забыли запихнуть сам Forge)
Радуемя крякозябрам :eek:
Все! Туториал завершен!:coffee:
Жаль что лайков нет... :cry:думаю ... кому-то я все-таки помог!
Удачи ребят! Дерзайте майн!:good:

Так-же вам пригодиться:
Если вы что то меняете в классах, то никогда не пишите по русски! Проблема в чем... Крякозябры! Лучше написать по английски и потом через InClassTranslator изменить надписи!
Нужно использовать юникод-маски. Вот сайт: http://unicode-table.com/ru/tools/decoder/ . В правом окне пишешь по-русски, в левом появляется юникод-маска. Берешь ее и вставляешь в нужное место в коде. PROFIT.
@MrGiperCreeper
Просто нужно использовать нормальную кодировку исходников (это касается абсолютно всех проектов java).
Открываем настройки проекта (Project -> Properties) и ставим выделенное, как на скриншоте.
3087978970.png

Того, что я написал оказалось недостаточно. Ещё также пришлось править конфиг gradle.
В build.gradle перед строчкой apply plugin: 'forge' нужно добавить:
Код:
tasks.withType(JavaCompile) {
  options.encoding = "UTF-8"
   sourceCompatibility = "1.7"
   targetCompatibility = "1.7"
}
Это указывает компилятору кодировку исходников, а также переключает компиляцию под Java 7 (по умолчанию древняя Java 6).
@saharin94
Внимание! Если у кого-либо при выполнении команды
Код:
gradlew setupDecompWorkspace eclipse
необходимо сделать следующее:
1. В консоли пишем следующую команду:
Код:
set JAVA_HOME=ПУТЬ_ДО_JDK
где ПУТЬ_ДО_JDK - путь к месту установки JDK, например у меня - D:\Program Files\Java\jdk1.8.0_5
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
Большинство остальных ошибок можно решить просто полным удалением клиента GRadle или переустановкой Java до более ранней версии
 

Вложения:

  • 2.PNG
    2.PNG
    Размер файла
    408,1 КБ
    Просмотров
    3.107
  • 10.png
    10.png
    Размер файла
    21,7 КБ
    Просмотров
    2.081
Последнее редактирование:
После всех манипуляций:
Код:
[21:16:11 INFO]: Client> [21:16:11] [main/WARN] [LaunchWrapper]: Problem loading class
[21:16:11 INFO]: Client> java.lang.SecurityException: SHA1 digest error for btj.class
[21:16:11 INFO]: Client>     at sun.security.util.ManifestEntryVerifier.verify(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.util.jar.JarVerifier.processEntry(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.util.jar.JarVerifier.update(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.io.FilterInputStream.read(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.LaunchClassLoader.readFully(LaunchClassLoader.java:298) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.LaunchClassLoader.getClassBytes(LaunchClassLoader.java:370) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.patcher.ClassPatchManager.getPatchedResource(ClassPatchManager.java:59) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper.getFieldType(FMLDeobfuscatingRemapper.java:195) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper.parseField(FMLDeobfuscatingRemapper.java:172) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper.setup(FMLDeobfuscatingRemapper.java:141) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.FMLSanityChecker.injectData(FMLSanityChecker.java:179) [FMLSanityChecker.class:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper.injectIntoClassLoader(CoreModManager.java:125) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.Launch.launch(Launch.java:114) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client> [21:16:11] [main/ERROR] [FML]: There is a binary discrepency between the expected input class btj (btj) and the actual class. Checksum on disk is 1, in patch 12c444b4. Things are probably about to go very wrong. Did you put something into the jar file?
[21:16:11 INFO]: Client> [21:16:11] [main/ERROR] [FML]: The game is going to exit, because this is a critical error, and it is very improbable that the modded game will work, please obtain clean jar files.
[21:16:11 ERROR]: Game ended with bad state (exit code 1)
[21:16:11 INFO]: Ignoring visibility rule and showing launcher due to a game crash
[21:16:11 INFO]: Deleting C:\Users\Zeltaz\AppData\Roaming\.minecraft\versions\1.7.2-Forge10.12.2.1121\1.7.2-Forge10.12.2.1121-natives-14224936681197
 
После всех манипуляций:
Код:
[21:16:11 INFO]: Client> [21:16:11] [main/WARN] [LaunchWrapper]: Problem loading class
[21:16:11 INFO]: Client> java.lang.SecurityException: SHA1 digest error for btj.class
[21:16:11 INFO]: Client>     at sun.security.util.ManifestEntryVerifier.verify(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.util.jar.JarVerifier.processEntry(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.util.jar.JarVerifier.update(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at java.io.FilterInputStream.read(Unknown Source) ~[?:1.7.0_60]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.LaunchClassLoader.readFully(LaunchClassLoader.java:298) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.LaunchClassLoader.getClassBytes(LaunchClassLoader.java:370) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.patcher.ClassPatchManager.getPatchedResource(ClassPatchManager.java:59) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper.getFieldType(FMLDeobfuscatingRemapper.java:195) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper.parseField(FMLDeobfuscatingRemapper.java:172) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper.setup(FMLDeobfuscatingRemapper.java:141) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.common.asm.FMLSanityChecker.injectData(FMLSanityChecker.java:179) [FMLSanityChecker.class:?]
[21:16:11 INFO]: Client>     at cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper.injectIntoClassLoader(CoreModManager.java:125) [forge-1.7.2-10.12.2.1121.jar:?]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.Launch.launch(Launch.java:114) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client>     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
[21:16:11 INFO]: Client> [21:16:11] [main/ERROR] [FML]: There is a binary discrepency between the expected input class btj (btj) and the actual class. Checksum on disk is 1, in patch 12c444b4. Things are probably about to go very wrong. Did you put something into the jar file?
[21:16:11 INFO]: Client> [21:16:11] [main/ERROR] [FML]: The game is going to exit, because this is a critical error, and it is very improbable that the modded game will work, please obtain clean jar files.
[21:16:11 ERROR]: Game ended with bad state (exit code 1)
[21:16:11 INFO]: Ignoring visibility rule and showing launcher due to a game crash
[21:16:11 INFO]: Deleting C:\Users\Zeltaz\AppData\Roaming\.minecraft\versions\1.7.2-Forge10.12.2.1121\1.7.2-Forge10.12.2.1121-natives-14224936681197
папку META-INF удали
 
несколько раз убирал копирайты, после установки классов в versions/1.7.2/1.7.2.jar перестали работаь языки, только английский по дефолту, остальные тупо не включаются.
 
это зависит от Assets
несколько раз убирал копирайты, после установки классов в versions/1.7.2/1.7.2.jar перестали работаь языки, только английский по дефолту, остальные тупо не включаются.
 
Ам.. подскажите пожалуйста после того как прописал команду "gradlew setupDecompWorkspace eclipse" напротив downloadClient, downloadServer & mergeJars желтыми буквами написано "SKIPPED" - это нормально ?
просто я не нахожу в Minecraft/Referenced Libraries - "forgeSRC..."
у меня есть только "forgeBin-1.7.0...", а в нем в пакета файлы.class исходный код которых никак непросмотреть!
Ам.. подскажите пожалуйста после того как прописал команду "gradlew setupDecompWorkspace eclipse" напротив downloadClient, downloadServer & mergeJars желтыми буквами написано "SKIPPED" - это нормально ?
просто я не нахожу в Minecraft/Referenced Libraries - "forgeSRC..."
у меня есть только "forgeBin-1.7.0...", а в нем в пакета файлы.class исходный код которых никак непросмотреть!
кстати версия 1.7.10,версия src рекомендованная
 

Поделиться этой страницей

Назад
Верх