Как мне отредактировать файлы Minecraft Mod Class?
Я пытаюсь отредактировать одну строку в модуле Pam Harvestcraft. Причина в том, что в игре эти «сады» внутри мод появляются слишком часто. Для этого мода есть файл конфигурации, однако минимально возможное значение для rarity = 1 все еще слишком велико. Эта редкость — это int, и я хочу изменить ее на float внутри этого файла.class Mod jar, чтобы я мог использовать 0.5 или что-то меньшее, чем 1, чтобы уменьшить вероятность появления этих садов.
Я копирую и вставляю файл.class в intelliJ, но он доступен только для чтения. Написание собственного текстового файла и изменение расширения на.class, очевидно, искажает файл.
В прошлый час я пытался ответить Google. Люди говорят, что вам может понадобиться настроить среду моддинга, декомпилировать код и затем перекомпилировать его после изменений. Это кажется очень затянутым для простой линии редактирования кода.
Редактировать: Я еще не понял. Что-то добавить: я загрузил этот редактор файлов классов http://dirty-joe.com/ Он разрешил мне редактировать поле с int, чтобы плавать. Однако есть две проблемы:
1, мне также нужно отредактировать метод getInt() для getFloat(), который я не могу сделать.
2. Когда я сохраняю новый отредактированный файл класса, попробуйте снова открыть его с помощью этого редактора JOE. ДАВАЙТЕ МЕНЯ ОШИБКА ФАЙЛА. Это указывало на то, что если я отредактирую файл класса, он все равно его развращает.
2 ответа
Вы технически можете это сделать, но это будет боль. Если бы это просто изменение переменной, это могло бы быть простым, но теперь вы также говорите об изменении типа поля.
Есть несколько способов сделать это, и я не вижу, чтобы кто-то из них перечислял, поэтому я упомянул об этом.
Во-первых, вы можете декомпилировать/перекомпилировать. Я пробовал делать это раньше, и это действительно не работает. В результате перекомпиляции было много ошибок, потому что это не совсем точная декомпиляция.
Второй вариант, и это было бы самым простым, если бы не изменение типа поля, — редактирование машинного кода. Java компилируется в код сборки, который специально используется JVM. Вы найдете инструкцию, измените значение, и вы будете золотыми. (Я говорю проще, но если вы никогда не видели собрания раньше, все это будет выглядеть как греческий).
Назад к вопросу: Вы говорите об изменении типа данных. Этого будет недостаточно. Вам не только потребуется изменить тип данных, но и все точки, в которых используется тип данных, и вызывается метод get . Каждое место, которое получает getter, ожидает ожидаемое значение int. Если это float входящий в int , он просто будет автоматически преобразован в int .
Так вот как вы это сделаете, но это не стоит вашего времени. Просто попросите разработчика сделать обновление для вас. На самом деле, если это мода, о котором вы говорите, это уже открытый источник, и вы можете внести изменения самостоятельно.
Пойдите, сделайте проблему или запрос Pull на странице HarvestCraft GitHub.
Кроме того, вы можете скачать источник оттуда, внести изменения и скомпилировать версию, которую вы можете использовать для себя. Вам, конечно же, придется создать среду разработки Forge, но это тоже не очень сложно:
Как мне редактировать файлы классов модов Minecraft?
Я пытаюсь отредактировать одну строку в моде Pam’s Harvestcraft. Причина в том, что в игре эти «сады» внутри мода появляются слишком часто. Для этого мода есть файл конфигурации, однако минимально возможное значение для редкости = 1 все еще слишком велико. Эта редкость — int, и я хочу изменить его на float внутри файла .class jar этого мода, чтобы я мог использовать 0,5 или что-то меньшее, чем 1, чтобы уменьшить вероятность появления этих садов.
Я копирую и вставляю файл .class в intelliJ, но он доступен только для чтения. Написание собственного текстового файла и изменение расширения на .class, очевидно, повреждают файл.
Последний час я пытался найти ответ в Google. Люди говорят, что вам, возможно, потребуется настроить среду моддинга, декомпилировать код, а затем перекомпилировать его после изменений. Это кажется слишком длинным для простой строки редактирования кода.
Изменить: я еще не понял этого. Кое-что добавить: я загрузил этот редактор файлов классов http://dirty-joe.com/, он позволяет мне редактировать поле с int, чтобы оно было плавающим. Однако с этим есть 2 проблемы;
1, мне также нужно отредактировать метод, который getInt () для getFloat (), что я не могу сделать.
2, Когда я сохраняю недавно отредактированный файл класса, затем пытаюсь снова открыть его с помощью этого редактора JOE, ЭТО ВЫДАЕТ МНЕ ОШИБКУ ФАЙЛА. Это показало мне, что если я отредактирую файл класса, он все равно его повредит.
Технически вы можете это сделать, но это будет неприятно. Если бы это было просто изменение переменной, это могло бы быть просто, но теперь вы также говорите об изменении типа поля.
Есть несколько способов сделать это, и я не вижу один из них указан, поэтому я упомяну об этом.
Во-первых, вы можете декомпилировать/перекомпилировать. Я пробовал делать это однажды раньше, и это действительно не работает. В результате перекомпиляции возникло множество ошибок, потому что это не будет полностью точной декомпиляцией.
Второй вариант, и он был бы самым простым, если бы не нужно было изменять тип поля, редактирует машинный код. Java компилируется в ассемблерный код, который специально используется JVM. Вы найдете инструкцию, измените значение, и вы станете золотым. (Я говорю самый простой, но если вы никогда раньше не видели сборки, для вас все будет похоже на греческое.)
Вернемся к проблеме: вы говорите об изменении типа данных. Этого будет недостаточно. Вам нужно будет изменить не только тип данных, но и каждое место , где используется этот тип данных и вызывается его метод get . Каждое место, которое вызывается геттером, ожидает возвращаемого значения типа int. Если это float , переходящий в int , он будет автоматически преобразован в int .
Вот как бы вы это сделали, но на самом деле это не стоит вашего времени. Просто попросите разработчика сделать для вас обновление. Фактически, если это мод, о котором вы говорите, он уже имеет открытый исходный код, и вы можете вносить изменения самостоятельно.
Отправьте запрос или запрос на включение на странице HarvestCraft на GitHub.
Кроме того, вы можете скачать исходный код оттуда, внести изменения и скомпилировать версию, которую вы можете использовать для себя. Для этого вам, конечно же, придется настроить среду разработки Forge, но это тоже не так сложно:
Как редактировать class файлы minecraft

Как пользоваться InClassTranslator:
How do I edit Minecraft Mod Class files?
I’m trying to edit a single line in Pam’s Harvestcraft mod. The reason is that in the game these «gardens» inside the mod spawn too often. There is a config file for this mod, however the lowest possible value for rarity = 1 is still too high. This rarity is an int, and I want to change it to a float inside this Mod’s jar’s .class file, so that I may be able to use 0.5 or something less than 1 to decrease the chance of these gardens spawning.
I copy and pasted the .class file into intelliJ, but it is readable only. Writing my own text file and changing the extension to .class obviously corrupts the file.
For the past hour I’ve been trying to Google the answer. People say that you might need to set up a modding environment, decompile the code, then recompile it after the changes. This seems very long-winded for a simple line of code editing.
Edit: I haven’t figured it out yet. Something to add: I downloaded this class file editor http://dirty-joe.com/ It let’s me edit the field with the int to float. However there are 2 problems with this;
1, I also need to edit a method that getInt() to getFloat() which I cannot do.
2, When I save the newly edited class file, then try to reopen it using this JOE editor IT IS GIVING ME A FILE ERROR. This indicated to me that if I edit the class file it corrupts it anyways.
![]()
2 Answers 2
You technically can do this, but it’s going to be a pain. If it were just changing a variable, that might be simple, but now you’re also talking about changing a field’s type.
There are a couple ways to do this, and I don’t see one of them listed, so I’ll mention that.
First, you can decompile/recompile. I’ve tried doing this once before, and it really doesn’t work well. There were plenty of errors resulting from the recompilation, because it’s not going to be a completely accurate decompilation.
The second option, and this would be the easiest if not for needing to change a field type, is editing the machine code. Java is compiled into assembly code that is specifically used by the JVM. You would find the instruction, change the value, and you would be golden. (I say easiest, but if you’ve never seen assembly before, it’ll all look like Greek to you.)
Back to the issue: You’re talking about changing a data type. That won’t be enough. You not only would need to change the data type, but every spot that data type is used and its get method is called. Every spot that getter is called, its expecting an int return value. If it’s a float going into an int , it’ll just be automatically converted to an int .
So that is how you would do it, but it’s not really worth your time. Simply ask the developer to make an update for you. In fact, if this is the mod you’re talking about, it’s already open source and you can make the changes yourself.
Как изменить клиент minecraft
Update: По многочисленным просьбам обновил битые ссылки (14.01.2018)!
Все файлы (class, src и т д тут) >>
https://www.dropbox.com/s/auui4xqclweqh4f/rubukkit-all-files-src-class.zip
Приветствую вас дорогие форумчане!
Как я и обещал, выкладываю видео уроки «Как сделать достойный клиент на 3 версии minecraft»
Материал собирался с rubukkit, затем я разбирался и научился делать все сам, за это я благодарю тех, кто выкладывает все это на этот форум.Вы научитесь делать клиент minecraft, а именно:
* Научитесь пользоваться MPC.
* Убирать копирайты forge ( для 1.5.2 ) ( для 1.6.2 )
* Переименовывать копирайты mojang ( для 1.5.2 ) ( для 1.6.2 )
* Удалять/выключать кнопку текстурпак ( для 1.5.2 ) ( для 1.6.2 )
* Убрать лишние кнопки из раздела «сетевая игра» ( для 1.5.2 ) ( для 1.6.2 )
* Убрать сообщение о том, что вышло обновление 1.6 и нужно обновится ( для 1.5.2 )
* Как убрать FML окошко Hello с обновлением lib файлов ( для 1.5.2 )
* Как изменить/удалить/cделать цветными кнопки в меню ( для 1.5.2 )
* Как сделать цветные копирайты mojang и forge ( для 1.5.2 )* Убираем кнопку mods и кнопку «языки» ( для 1.5.2 )Ну и конечно же:
* Редактирование привязки сервер-клиент ( для 1.5.2 ) ( для 1.6.2 )
* Редактирование папок к скинам/плащам ( для 1.5.2 ) ( для 1.6.2 )1.5.2
1.6.2
https://minecraft-ru.gamepedia.com/Minecraft_Coder_Pack — Отсюда качаем MCP
http://files.minecraftforge.net/ — Тут мы качаем Forge
https://notepad-plus-plus.org/ — Качаем Notepad++
https://www.dropbox.com/s/908ag6vut2y2q2k/class162.zip — Качаем готовые class файлы «848 версия forge»
Внимание! Если вы эти класс файлы перенесете в Forge выше/ниже версии 848, то есть вероятность что ваш клиент не запустится, но можете попробовать, попытка не пытка.
https://www.dropbox.com/s/y8awcdryu6uno47/src152.zip — Качаем готовые java файлы «848 версия forge»
Файлы скинул для ознакомления.
6 минута 23 секунда
Редактируем значения для кнопки «сетевая игра»
В поиск нужно ввести слово
На 33 строке в файле ServerList.java мы найдем это значение.
Потом комментируем строчки
38, 40, 41, 42, 43, 45, 47, 48, 49, 50.
Для тех кто не знает, как комментировать строчки: Комментарий в java обозначается // двумя флешами.
7 минута
Добавляем свой сервер
После значения
Вставляем этот метод и редактируем на месте:
В название сервера используйте символ § и цыфру , дабы сделать цветным текст в Сетевой игре.
8 минута 17 секунда
Изменяем кнопки в сетевой игре
В поиске вводим
и мы переходим с вами в фаил GuiMultiplayer.java
Код который нам нужен расположен на строках 123 — 136
Заменяем на это:
10 минута
Убираем «Поиск локальных серверов оОо» в сетевой игре
На 93 строке в файле GuiSlotServer.java мы находим метод
this.func_77249_c(par1, par2, par3, par4, par5Tessellator);
и комментируем его так:
//this.func_77249_c(par1, par2, par3, par4, par5Tessellator);
10 минута 30 секунда
Редактируем надпись mojang
В поиске вводим mojang и мы находим их копирайт на 601 строке в классе GuiMainMenu.java
Редактируем на свое значение.
10 минута 47 секунда
Убираем сообщение forge (сколько модов активно, сколько загружено, стоит у вас optifine или нет).
В поиске набираем:
и находим класс FMLCommonHandler.java
В этом классе мы коммертируем значения от 236 строки до 254.
Тогда отображаться в левом углу forge больше не будет. Только будет надпись «Minecraft 1.6.2«
В прочем слово «Minecraft 1.6.2» вы тоже можете отредактировать в классе GuiMainMenu.java
11 минута 29 секунда
Выключаем или удаляем кнопку «Текстур пак»
На 130 строке есть метод:
Комментируем ее так:
А если хотите вообще удалить кнопку, то вам строка 73:
12 минута 18 секунда
Редактируем joinserver и checkserver
Делаем привязку server=client
Есть простой способ редактирования этих 2 файлов (In Class Translat), НО так как мы работаем через программу MCP, то почему бы нам не сделать все сразу?
PS: сразу скажу, что не знаю какой из них 1 фаил не нужно редактировать , по этому редактирую все 2 (joinserver и checkserver).
Фаил NetClientHandler.java
318 строка:
меняем значение на свое.
Фаил ThreadLoginVerifier.java 25 строка:
меняем значение на свое.
На счет скинов и плащей не делал, но вы можете отредактировать через In Class Translat
Спросите почему я все комментирую?
Потому что я заранее учу вас не удалять, а комментировать.
Вдруг вы не то удалите и у вас возникнут проблемы.
А так вы закомментировали, когда у вас вышла ошибка, сразу же откомметировали и исправили.
Update: По многочисленным просьбам обновил битые ссылки (14.01.2018)!
Все файлы (class, src и т д тут) >>
https://www.dropbox.com/s/auui4xqclweqh4f/rubukkit-all-files-src-class.zip
***************************************************************************
https://minecraft-ru.gamepedia.com/Minecraft_Coder_Pack — Отсюда качаем MCP 751
http://files.minecraftforge.net/ — Тут мы качаем minecraftforge-src-1.5.2-7.8.1.738
https://notepad-plus-plus.org/ — Качаем Notepad++
https://www.dropbox.com/s/vo0j7zgks5ieyfc/class152.zip — Качаем готовые class файлы «848 версия forge»
Внимание! Если вы эти класс файлы перенесете в Forge выше/ниже версии 751, то есть вероятность что ваш клиент не запустится!https://www.dropbox.com/s/y8awcdryu6uno47/src152.zip — Качаем готовые java файлы «751 версии forge»
1 минута 51 секунда
Необходимо скачать lib файлы, если у вас выходит error при инсталяции forge.
https://www.dropbox.com/s/n5oywsfz7rru9er/lib152.zip
3 минута 6 секунда
Убираем использование файла server.dat
В поиск нужно ввести слово
На 33 строке в файле ServerList.java мы найдем это значение.
Комментируем строки: 37,38,41,42,43,44
3 минута 34 секунда
Добавляем свой сервер.
После значения
Вставляем этот метод и редактируем на месте:
В название сервера используйте символ § и цыфру , дабы сделать цветным текст в Сетевой игре.
4 минута 26 секунда
Изменяем кнопки и расположение кнопок в сетевой игре.
В поиске вводим
и мы переходим с вами в фаил GuiMultiplayer.java
Код который нам нужен расположен на строках 123 — 136
Заменяем на это:
5 минута 20 секунда
Убираем «Поиск локальных серверов оОо» в сетевой игре
На 93 строке в файле GuiSlotServer.java мы находим метод
this.func_77249_c(par1, par2, par3, par4, par5Tessellator);
и комментируем его так:
//this.func_77249_c(par1, par2, par3, par4, par5Tessellator);
6 минута 32 секунда
Редактируем надпись mojang
В поиске вводим mojang и мы находим их копирайт на 601 строке в классеGuiMainMenu.java
Редактируем на свое значение.
Используйте символ § и цыфру , дабы сделать цветным текст вашего копирайта.
7 минута 16 секунда
Убираем сообщение forge (сколько модов активно, сколько загружено, стоит у вас optifine или нет).
+ Добавляем свой цветной копирайт в место этого.
В поиске набираем:
и находим класс FMLCommonHandler.java
В этом классе мы коммертируем значения от 236 строки до 254.
Тогда отображаться в левом углу forge больше не будет.
8 минута
Добавляем в место копирайта forge свой цветной копирайт.
На 238 строке заменяем на:
9 минута 10 секунда
Выключаем или удаляем кнопку «Текстур пак»
На 132 строке есть метод:
Комментируем ее так:
А если хотите вообще удалить кнопку, то вам строка 75:
9 минута 54 секунда
Убираем FML окошечко с названием Hello, которое выходит при загрузке клиента.
В поиске вводим:
и мы проходим в фаил FMLRelauncher.java, где мы видим 2 таких значения.
Меняем оба значения на:
11 минута 19 секунда
Убираем сообщение «Notice! Minecraft 1.6 is available for manual download.
Please click here for more information.»
с 19 строки по 51 находиться метод, который мы должны заменить на:
12 минута 14 секунда
Изменяем название окна клиента на свое.
Открываем minecraft.java
На 2316 строке мы найдем:
13 минута
Изменение кнопок «Сетевая игра» «Одиночная игра» и меняем их цвет.
262 — 266 строка
Заменяем на:
Русские слова меняем на свои.
В название кнопок можно применять символ § и цыфру , дабы сделать цветным текст в меню.
13 минута 47 секунда
Убираем кнопку «mods»
GuiMainMenu.java
201 и 202 строку мы увидим:
15 минута 15 секунда
Удаляем кнопку «выбор языка»
GuiMainMenu.java
216 и 217 строку мы увидим:
Потом на 294-297 чтобы убрать кнопку в опциях:
18 минута 12 секунда:
Редактируем Joinserver, checkserver, skins и cloack.
Делаем привязку server=client
Есть простой способ редактирования этих файлов — через (In Class Translat), НО так как мы работаем через программу MCP, то почему бы нам не сделать все сразу?
PS: сразу скажу, что не знаю какой из них 1 фаил не нужно редактировать , по этому редактирую все 2 (joinserver и checkserver).
Фаил NetClientHandler.java
303 строка:
меняем значение на свое.
Фаил ThreadLoginVerifier.java 25 строка:
меняем значение на свое.
На счет скинов и плащей не делал, но вы можете отредактировать через In Class Translat
Видеоурок не готов.
Обновление и что добавлено:
7 оттября 2013 22:56 — Добавлен материал к видеоуроку «Как сделать достойный клиент 1.5.2».
7 октября 2013 — Добавлено новое видео «Как сделать достойный клиент 1.5.2»
По просьбе «Иван Грозный» ник на rubukkit « bounze » Добавлены в видеоурок следующие разделы:
* Как убрать кнопку Mods.
* Как Убрать FML окошко hello c обновлением lib файлов.
* Как изменить цвет копирайтов forge и mojang.
* Как изменить надпись на кнопке одиночная игра и сетевая.
* Как убрать кнопку смены языка (кнопка в виде планеты).
* Как переименовать название окна клиента.
* Как убрать лишние кнопки из раздела «сетевая игра»
* Как убрать сообщение о том, что вышло обновление 1.6 и нужно обновится (для 1.5.2)
Всю ночь обрабатывал видео, пойду спать. Днем выложу туториал к видео.
3 сентября 2013 — Создана тема. Добавлен видеоурок «Как сделать достойный клиент 1.6.2».
Вечером добавлен был туториал к видео.
Выложил class файлы на скачивание.
Hugefort
Старожил
Пользователь
Интересно ….
А и кстати, помоги найти мод на монеты и мод на щиты,кольца,перчатки, ожерелья и т.д.
granisto
Старожил
Пользователь
Монеты и щиты есть в CustomNPC, но этот мод имеет в три раза больше функционала. Кольца, перчатки, ожерелья можно найти в RPGInventory. Но хотя таких модов, вроде достаточно в minecraftforum.
Ну, если все как в описании, то будет круто. Жду.
Тему обновил, днем добавлю видео.
@exsperto1, Ты когда в фордже запускал файлик install у тебя скачалось 175мб, у меня же, буквально за минуту, 16мб и половины папок, что были у тебя, нет.
UPD начал извлекать на декстоп и скачались все 170мб.
Ну что, кому нибудь нужны видеоуроки для 1.4.7 и 1.5.2 ?
MegaAntoxa1
Старожил
Пользователь
Делайте, все равно кому-нибудь понадобятся.
Напиши как сделать норм клиент с нуля )) То есть когда ни чистого майна ни форжы.
Кстати в видео ты сказал что дашь шрифты ))
Но так и не дал.Может выложишь? Заодно с мануалом по установке.
Под видео посмотри, там шрифты лежат.
А можно как-то сделать просто по нажатию на кнопку етевая играа вход на сервер.
В идеале вообще было-бы сделать как на картинке =)
Вложения:

ставлю в клиент и краш..
в чем трабла? вот краш репорт:
Ругается на шрифт.
Может у вас что то стоит в клиенте?
попробуй загрузить мой assets с моего client3
похоже шрифт нужно вставлять еще в assets
лаунчер у меня на сайте.
CarloBLR
Активный участник
Пользователь
Как скоро сможешь сделать видео для 1.5.2 версии?
У меня чистый клиент загруженный лаунчером + установленная в него последняя фордж
up
Скоро будет видеоурок, как я изменяю скины через mcp и ставлю шрифт на клиент с модом «optifine».
bounze
Активный участник
Пользователь
Сделай скорее пожалуйста на 1.5.2 !
Очень прошу!
Обновил тему.
Добавил новое видео «Как сделать достойный клиент 1.5.2»
Поделиться этой страницей
gradlew build и будут тебе обфусцированные классы.
gradlew build и будут тебе обфусцированные классы.
Мне именно нужно оригинальные классы изменять, а ни форджовские.
Вот что у меня получается:

А нужно, чтобы классы из трех буков назывались.
Они и так ориджинал просто с патчами. Если модифицируешь онли майн, то бери mcp, и чего него модифицируй. Там уже выбираешь build и reobfuscate.
это тебе к mcp и ты eula нарушаешь
Они и так ориджинал просто с патчами. Если модифицируешь онли майн, то бери mcp, и чего него модифицируй. Там уже выбираешь build и reobfuscate.
Тоже в этом проблема
1. Еще нет MCP на 1.12.2.
2. Что делать, если мне нужно использовать форджовские методы для гл.меню?
1.Правда что ли? А как по твоему появился forge 1.12.2? Магия? Масоны?
2.Использовать forge mdk? И какие форджевские методы ты собрался использовать в гл. меню?
1.Правда что ли? А как по твоему появился forge 1.12.2? Магия? Масоны?
2.Использовать forge mdk? И какие форджевские методы ты собрался использовать в гл. меню?
1. На modcoderpack.com только есть MCP 1.12
2. Forge MDK использую, но нужно изменять как-то клиент ванильный. Использовать например онлайн сервера на кнопке.
1.Главные цифры 1.12, все остальное это мелкие исправления.
2.Достаешь нужные сорсы, изменяешь что нужно и компилируешь. И ты так и не ответил, что ты будешь от forge использовать в гуиМаинМеню? Онлайн серверов можно получить и через пингер самого майна. Forge тебе в принципе не нужен, если конечно же у тебя не модовый клиент.
Все эти костыли «без форджа», один вопрос зачем?Фордж дает возможность менять все, даже его самого с помощью хуков и/или ивентов
Портирование чутка упрощает.
Хз как ты без форджа на 1.13 будешь все портировать где новый lwjgl завезли. Странно это. Если фич мало то выбор фордж, если много тоже фордж.
Да и без оптифайна чутка туго будет жить, если его классы зацепишь. Он ведь асм юзает. Т.е меняя классы оригинала ты и байткод меняешь. Так можно много чего схватить даже, если получится обфусцировать, лол)
1.Главные цифры 1.12, все остальное это мелкие исправления.
Вот попробывал, в GuiMainMain ничего не менял, только текст в одной кнопке.
META-INF удалил.
> 2018-03-05 22:59:39,789 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
> 2018-03-05 22:59:39,809 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
> [22:59:40] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
> [22:59:40] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
> [22:59:40] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
> [22:59:40] [main/INFO] [FML]: Forge Mod Loader version 14.23.2.2611 for Minecraft 1.12.2 loading
> [22:59:40] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_131, running on Windows 10:amd64:10.0, installed at C:Program FilesJavajre1.8.0_131
> [22:59:40] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
> [22:59:40] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
> [22:59:40] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
> [22:59:40] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
> [22:59:40] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
> 2018-03-05 22:59:42,309 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
> 2018-03-05 22:59:42,336 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
> 2018-03-05 22:59:42,340 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
> [22:59:43] [main/INFO] [FML]: Found valid fingerprint for Minecraft Forge. Certificate fingerprint e3c3d50c7c986df74c645c0ac54639741c90a557
> [22:59:43] [main/ERROR] [FML]: The minecraft jar file:/C:/Users/VENTO/AppData/Roaming/.minecraft/versions/Forge%201.12.2/Forge%201.12.2.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!
> [22:59:43] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem!
> [22:59:43] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/C:/Users/VENTO/AppData/Roaming/.minecraft/versions/Forge%201.12.2/Forge%201.12.2.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it
> [22:59:43] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
> [22:59:43] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
> [22:59:44] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
> [22:59:44] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
> [22:59:44] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft
> [22:59:45] [main/ERROR] [LaunchWrapper]: Unable to launch
> java.lang.reflect.InvocationTargetException: null
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[?:1.8.0_131]
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[?:1.8.0_131]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[?:1.8.0_131]
> at java.lang.reflect.Method.invoke(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
> at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/gui/GuiSleepMP
> at net.minecraft.client.main.Main.main(SourceFile:38)
[Main.class:?]
> … 6 more
> Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.GuiSleepMP
> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
[launchwrapper-1.12.jar:?]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.client.main.Main.main(SourceFile:38)
[Main.class:?]
> … 6 more
> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/gui/GuiChat
> at java.lang.ClassLoader.defineClass1(Native Method)
[?:1.8.0_131]
> at java.lang.ClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at java.security.SecureClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
[launchwrapper-1.12.jar:?]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.client.main.Main.main(SourceFile:38)
[Main.class:?]
> … 6 more
> Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.GuiChat
> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
[launchwrapper-1.12.jar:?]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.defineClass1(Native Method)
[?:1.8.0_131]
> at java.lang.ClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at java.security.SecureClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
[launchwrapper-1.12.jar:?]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.client.main.Main.main(SourceFile:38)
[Main.class:?]
> … 6 more
> Caused by: java.lang.IncompatibleClassChangeError: Implementing class
> at java.lang.ClassLoader.defineClass1(Native Method)
[?:1.8.0_131]
> at java.lang.ClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at java.security.SecureClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
[launchwrapper-1.12.jar:?]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.defineClass1(Native Method)
[?:1.8.0_131]
> at java.lang.ClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at java.security.SecureClassLoader.defineClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
[launchwrapper-1.12.jar:?]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at java.lang.ClassLoader.loadClass(Unknown Source)
[?:1.8.0_131]
> at net.minecraft.client.main.Main.main(SourceFile:38)
[Main.class:?]
> … 6 more
> Exception in thread «main» [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: net.minecraftforge.fml.relauncher.FMLSecurityManager$ExitTrappedException
> [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at net.minecraftforge.fml.relauncher.FMLSecurityManager.checkPermission(FMLSecurityManager.java:49)
> [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at java.lang.SecurityManager.checkExit(Unknown Source)
> [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at java.lang.Runtime.exit(Unknown Source)
> [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at java.lang.System.exit(Unknown Source)
> [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:138)
> [22:59:45] [main/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Сделал recompile и reobfuscate. Теперь не понимаю, почему оно требует другие классы, которые не должны быть в гл.меню.