-
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 секунда
Редактируем значения для кнопки «сетевая игра»
В поиск нужно ввести словоpublic void loadServerList()
На 33 строке в файле ServerList.java мы найдем это значение.
Потом комментируем строчки
38, 40, 41, 42, 43, 45, 47, 48, 49, 50.
Для тех кто не знает, как комментировать строчки: Комментарий в java обозначается // двумя флешами.7 минута
Добавляем свой сервер
После значенияВставляем этот метод и редактируем на месте:
this.servers.add(new ServerData("Название сервера", "IP сервера"));
В название сервера используйте символ § и цыфру, дабы сделать цветным текст в Сетевой игре.
8 минута 17 секунда
Изменяем кнопки в сетевой игре
В поиске вводими мы переходим с вами в фаил GuiMultiplayer.java
Код который нам нужен расположен на строках 123 — 136
Заменяем на это:public void initGuiControls() { this.buttonList.add(this.field_96289_p = new GuiButton(7, this.width / 2 - 154, this.height - 28, 70, 20, I18n.func_135053_a(""))); this.buttonList.add(this.buttonDelete = new GuiButton(2, this.width / 2 - 74, this.height - 28, 70, 20, I18n.func_135053_a(""))); this.buttonList.add(this.buttonSelect = new GuiButton(1, this.width / 2 - 154, this.height - 52, 308, 20, I18n.func_135053_a("selectServer.select"))); this.buttonList.add(new GuiButton(8, this.width / 2 - 154, this.height - 28, 152, 20, I18n.func_135053_a("selectServer.refresh"))); this.buttonList.add(new GuiButton(0, this.width / 2 + 2, this.height - 28, 152, 20, I18n.func_135053_a("gui.cancel"))); boolean flag = this.selectedServer >= 0 && this.selectedServer < this.serverSlotContainer.getSize(); this.buttonSelect.enabled = flag; this.field_96289_p.enabled = flag; this.buttonDelete.enabled = flag; }
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.java11 минута 29 секунда
Выключаем или удаляем кнопку «Текстур пак»
На 130 строке есть метод:this.mc.displayGuiScreen(new GuiScreenTemporaryResourcePackSelect(this, this.options));
Комментируем ее так:
//this.mc.displayGuiScreen(new GuiScreenTemporaryResourcePackSelect(this, this.options));
А если хотите вообще удалить кнопку, то вам строка 73:
this.buttonList.add(new GuiButton(105, this.width / 2 - 152, this.height / 6 + 144 - 6, 150, 20, I18n.func_135053_a("options.resourcepack")));
Заменяем на:
//this.buttonList.add(new GuiButton(105, this.width / 2 - 152, this.height / 6 + 144 - 6, 150, 20, I18n.func_135053_a("options.resourcepack")));
12 минута 18 секунда
Редактируем joinserver и checkserver
Делаем привязку server=client
Есть простой способ редактирования этих 2 файлов (In Class Translat), НО так как мы работаем через программу MCP, то почему бы нам не сделать все сразу?
PS: сразу скажу, что не знаю какой из них 1 фаил не нужно редактировать, по этому редактирую все 2 (joinserver и checkserver).
Фаил NetClientHandler.java
318 строка:
меняем значение на свое.Пример: http://вашсайт.ru/joinserver.php?user=
Фаил ThreadLoginVerifier.java 25 строка:
меняем значение на свое.Пример: http://вашсайт.ru/checkserver.php?user=
На счет скинов и плащей не делал, но вы можете отредактировать через In Class Translat
Спросите почему я все комментирую?
Потому что я заранее учу вас не удалять, а комментировать.
Вдруг вы не то удалите и у вас возникнут проблемы.
А так вы закомментировали, когда у вас вышла ошибка, сразу же откомметировали и исправили.Продолжение ниже…
Последнее редактирование: 14 янв 2018 -
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.zip3 минута 6 секунда
Убираем использование файла server.dat
В поиск нужно ввести словоpublic void loadServerList()
На 33 строке в файле ServerList.java мы найдем это значение.
Комментируем строки: 37,38,41,42,43,443 минута 34 секунда
Добавляем свой сервер.
После значенияВставляем этот метод и редактируем на месте:
this.servers.add(new ServerData("Название сервера", "IP сервера"));
В название сервера используйте символ § и цыфру, дабы сделать цветным текст в Сетевой игре.
4 минута 26 секунда
Изменяем кнопки и расположение кнопок в сетевой игре.
В поиске вводими мы переходим с вами в фаил GuiMultiplayer.java
Код который нам нужен расположен на строках 123 — 136
Заменяем на это:public void initGuiControls() { StringTranslate stringtranslate = StringTranslate.getInstance(); this.buttonList.add(this.field_96289_p = new GuiButton(7, this.width / 2 - 154, this.height - 28, 70, 20, stringtranslate.translateKey(""))); this.buttonList.add(this.buttonDelete = new GuiButton(2, this.width / 2 - 74, this.height - 28, 70, 20, stringtranslate.translateKey(""))); this.buttonList.add(this.buttonSelect = new GuiButton(1, this.width / 2 - 154, this.height - 52, 308, 20, stringtranslate.translateKey("selectServer.select"))); this.buttonList.add(new GuiButton(8, this.width / 2 - 154, this.height - 28, 152, 20, stringtranslate.translateKey("selectServer.refresh"))); this.buttonList.add(new GuiButton(0, this.width / 2 + 2, this.height - 28, 152, 20, stringtranslate.translateKey("gui.cancel"))); boolean flag = this.selectedServer >= 0 && this.selectedServer < this.serverSlotContainer.getSize(); this.buttonSelect.enabled = flag; this.field_96289_p.enabled = flag; this.buttonDelete.enabled = flag; }
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 строке заменяем на:brd.add("§6сборка §4rubukkit.org");
9 минута 10 секунда
Выключаем или удаляем кнопку «Текстур пак»
На 132 строке есть метод:this.mc.displayGuiScreen(new GuiTexturePacks(this, this.options));
Комментируем ее так:
//this.mc.displayGuiScreen(new GuiTexturePacks(this, this.options));
А если хотите вообще удалить кнопку, то вам строка 75:
this.buttonList.add(new GuiButton(105, this.width / 2 - 152, this.height / 6 + 144 - 6, 150, 20, stringtranslate.translateKey("options.texture.pack")));
Заменяем на:
//this.buttonList.add(new GuiButton(105, this.width / 2 - 152, this.height / 6 + 144 - 6, 150, 20, stringtranslate.translateKey("options.texture.pack")));
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 строке мы найдем:frame.setTitle("minecraft");
заменяем на:
frame.setTitle("Игровой клиент foxycraft.ru");
13 минута
Изменение кнопок «Сетевая игра» «Одиночная игра» и меняем их цвет.
262 — 266 строка
Заменяем на:private void addSingleplayerMultiplayerButtons(int par1, int par2, StringTranslate par3StringTranslate) { this.buttonList.add(new GuiButton(1, this.width / 2 - 100, par1, par3StringTranslate.translateKey("§9Одиночная игра"))); this.buttonList.add(new GuiButton(2, this.width / 2 - 100, par1 + par2 * 1, par3StringTranslate.translateKey("§9Зайти на сервер"))); }
Русские слова меняем на свои.
В название кнопок можно применять символ § и цыфру, дабы сделать цветным текст в меню.13 минута 47 секунда
Убираем кнопку «mods»
GuiMainMenu.java
201 и 202 строку мы увидим:fmlModButton = new GuiButton(6, this.width / 2 - 100, i + 48, "Mods"); this.buttonList.add(fmlModButton);
Комментируем так:
//fmlModButton = new GuiButton(6, this.width / 2 - 100, i + 48, "Mods"); //this.buttonList.add(fmlModButton);
15 минута 15 секунда
Удаляем кнопку «выбор языка»
GuiMainMenu.java
216 и 217 строку мы увидим:this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12)); Object object = this.field_104025_t;
Комментируем так:
//this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12)); //Object object = this.field_104025_t;
Потом на 294-297 чтобы убрать кнопку в опциях:
if (par1GuiButton.id == 5) { this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings)); }
Комментируем так:
//if (par1GuiButton.id == 5) //{ //this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings)); //}
18 минута 12 секунда:
Редактируем Joinserver, checkserver, skins и cloack.
Делаем привязку server=client
Есть простой способ редактирования этих файлов — через (In Class Translat), НО так как мы работаем через программу MCP, то почему бы нам не сделать все сразу?
PS: сразу скажу, что не знаю какой из них 1 фаил не нужно редактировать, по этому редактирую все 2 (joinserver и checkserver).
Фаил NetClientHandler.java
303 строка:
меняем значение на свое.Пример: http://вашсайт.ru/joinserver.php?user=
Фаил ThreadLoginVerifier.java 25 строка:
меняем значение на свое.Пример: http://вашсайт.ru/checkserver.php?user=
На счет скинов и плащей не делал, но вы можете отредактировать через 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 файлы на скачивание.Последнее редактирование: 14 янв 2018 -
Hugefort
Старожил
Пользователь- Баллы:
- 103
- Skype:
- hugefort
- Имя в Minecraft:
- Hugefort
Интересно ….
А и кстати, помоги найти мод на монеты и мод на щиты,кольца,перчатки, ожерелья и т.д.
falleny и Vedroyder нравится это.
-
granisto
Старожил
Пользователь- Баллы:
- 123
- Skype:
- granisto200
- Имя в Minecraft:
- Granisto
Монеты и щиты есть в CustomNPC, но этот мод имеет в три раза больше функционала. Кольца, перчатки, ожерелья можно найти в RPGInventory. Но хотя таких модов, вроде достаточно в minecraftforum.
-
Ну, если все как в описании, то будет круто. Жду.
-
Тему обновил, днем добавлю видео.
falleny и WCRAFT нравится это.
-
@exsperto1, Ты когда в фордже запускал файлик install у тебя скачалось 175мб, у меня же, буквально за минуту, 16мб и половины папок, что были у тебя, нет.
UPD начал извлекать на декстоп и скачались все 170мб.
HeyFOC и falleny нравится это.
-
Ну что, кому нибудь нужны видеоуроки для 1.4.7 и 1.5.2 ?
-
MegaAntoxa1
Старожил
Пользователь- Баллы:
- 173
- Skype:
- antonkretov.ru
- Имя в Minecraft:
- Anton_Kretov
Делайте, все равно кому-нибудь понадобятся.
-
Напиши как сделать норм клиент с нуля )) То есть когда ни чистого майна ни форжы.
-
Кстати в видео ты сказал что дашь шрифты ))
Но так и не дал.Может выложишь? Заодно с мануалом по установке.
-
Под видео посмотри, там шрифты лежат.
-
А можно как-то сделать просто по нажатию на кнопку етевая играа вход на сервер.
В идеале вообще было-бы сделать как на картинке =)Вложения:
-
-
ставлю в клиент и краш..
в чем трабла? вот краш репорт:---- Minecraft Crash Report ---- // Surprise! Haha. Well, this is awkward. Time: 17.09.13 0:52 Description: Initializing game java.lang.SecurityException: SHA1 digest error for assets/minecraft/lang/en_US.lang at sun.security.util.ManifestEntryVerifier.verify(Unknown Source) at java.util.jar.JarVerifier.processEntry(Unknown Source) at java.util.jar.JarVerifier.update(Unknown Source) at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source) at java.io.FilterInputStream.read(Unknown Source) at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) at sun.nio.cs.StreamDecoder.implRead(Unknown Source) at sun.nio.cs.StreamDecoder.read(Unknown Source) at java.io.InputStreamReader.read(Unknown Source) at java.io.BufferedReader.fill(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at org.apache.commons.io.IOUtils.readLines(IOUtils.java:1033) at org.apache.commons.io.IOUtils.readLines(IOUtils.java:987) at net.minecraft.client.resources.Locale.func_135021_a(SourceFile:68) at net.minecraft.client.resources.Locale.func_135028_a(SourceFile:63) at net.minecraft.client.resources.Locale.func_135022_a(SourceFile:35) at net.minecraft.client.resources.LanguageManager.func_110549_a(LanguageManager.java:84) at net.minecraft.client.resources.SimpleReloadableResourceManager.func_110544_b(SourceFile:99) at net.minecraft.client.resources.SimpleReloadableResourceManager.func_110541_a(SourceFile:87) at net.minecraft.client.Minecraft.func_110436_a(Minecraft.java:541) at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:463) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:806) at net.minecraft.client.main.Main.main(SourceFile:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) at net.minecraft.launchwrapper.Launch.main(Launch.java:18) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at sun.security.util.ManifestEntryVerifier.verify(Unknown Source) at java.util.jar.JarVerifier.processEntry(Unknown Source) at java.util.jar.JarVerifier.update(Unknown Source) at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source) at java.io.FilterInputStream.read(Unknown Source) at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) at sun.nio.cs.StreamDecoder.implRead(Unknown Source) at sun.nio.cs.StreamDecoder.read(Unknown Source) at java.io.InputStreamReader.read(Unknown Source) at java.io.BufferedReader.fill(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at org.apache.commons.io.IOUtils.readLines(IOUtils.java:1033) at org.apache.commons.io.IOUtils.readLines(IOUtils.java:987) at net.minecraft.client.resources.Locale.func_135021_a(SourceFile:68) at net.minecraft.client.resources.Locale.func_135028_a(SourceFile:63) at net.minecraft.client.resources.Locale.func_135022_a(SourceFile:35) at net.minecraft.client.resources.LanguageManager.func_110549_a(LanguageManager.java:84) at net.minecraft.client.resources.SimpleReloadableResourceManager.func_110544_b(SourceFile:99) at net.minecraft.client.resources.SimpleReloadableResourceManager.func_110541_a(SourceFile:87) at net.minecraft.client.Minecraft.func_110436_a(Minecraft.java:541) at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:463) -- Initialization -- Details: Stacktrace: at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:806) at net.minecraft.client.main.Main.main(SourceFile:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) at net.minecraft.launchwrapper.Launch.main(Launch.java:18) -- System Details -- Details: Minecraft Version: 1.6.2 Operating System: Windows 7 (x86) version 6.1 Java Version: 1.7.0_25, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode, sharing), Oracle Corporation Memory: 8520840 bytes (8 MB) / 57171968 bytes (54 MB) up to 518979584 bytes (494 MB) JVM Flags: 1 total; -Xmx512M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Suspicious classes: FML and Forge are installed IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: Launched Version: 1.6.2-Forge9.10.1.859 LWJGL: 2.9.0 OpenGL: AMD Radeon HD 6800 Series GL version 4.2.12217 Compatibility Profile Context 12.104.0.0, ATI Technologies Inc. Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Pack: Default Current Language: Русский (Россия) Profiler Position: N/A (disabled) Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
-
Ругается на шрифт.
Может у вас что то стоит в клиенте?
попробуй загрузить мой assets с моего client3
похоже шрифт нужно вставлять еще в assets
лаунчер у меня на сайте.
falleny и WCRAFT нравится это.
-
CarloBLR
Активный участник
Пользователь- Баллы:
- 88
- Имя в Minecraft:
- CarloBLR
Как скоро сможешь сделать видео для 1.5.2 версии?
-
У меня чистый клиент загруженный лаунчером + установленная в него последняя фордж
-
up
Скоро будет видеоурок, как я изменяю скины через mcp и ставлю шрифт на клиент с модом «optifine».
falleny и WCRAFT нравится это.
-
bounze
Активный участник
ПользовательСделай скорее пожалуйста на 1.5.2 !
Очень прошу! -
Обновил тему.
Добавил новое видео «Как сделать достойный клиент 1.5.2»
Поделиться этой страницей
-
#2
gradlew build и будут тебе обфусцированные классы.
-
#3
gradlew build и будут тебе обфусцированные классы.
Мне именно нужно оригинальные классы изменять, а ни форджовские.
Вот что у меня получается:
А нужно, чтобы классы из трех буков назывались.
-
#4
Они и так ориджинал просто с патчами. Если модифицируешь онли майн, то бери mcp, и чего него модифицируй. Там уже выбираешь build и reobfuscate.
-
#5
это тебе к mcp и ты eula нарушаешь
-
#6
Они и так ориджинал просто с патчами. Если модифицируешь онли майн, то бери mcp, и чего него модифицируй. Там уже выбираешь build и reobfuscate.
Тоже в этом проблема
1. Еще нет MCP на 1.12.2.
2. Что делать, если мне нужно использовать форджовские методы для гл.меню?
-
#7
1.Правда что ли? А как по твоему появился forge 1.12.2? Магия? Масоны?
2.Использовать forge mdk? И какие форджевские методы ты собрался использовать в гл. меню?
-
#8
1.Правда что ли? А как по твоему появился forge 1.12.2? Магия? Масоны?
2.Использовать forge mdk? И какие форджевские методы ты собрался использовать в гл. меню?
1. На modcoderpack.com только есть MCP 1.12
2. Forge MDK использую, но нужно изменять как-то клиент ванильный. Использовать например онлайн сервера на кнопке.
-
#9
1.Главные цифры 1.12, все остальное это мелкие исправления.
2.Достаешь нужные сорсы, изменяешь что нужно и компилируешь. И ты так и не ответил, что ты будешь от forge использовать в гуиМаинМеню? Онлайн серверов можно получить и через пингер самого майна. Forge тебе в принципе не нужен, если конечно же у тебя не модовый клиент.
-
#10
Все эти костыли «без форджа», один вопрос зачем?Фордж дает возможность менять все, даже его самого с помощью хуков и/или ивентов
Портирование чутка упрощает.
Хз как ты без форджа на 1.13 будешь все портировать где новый lwjgl завезли. Странно это. Если фич мало то выбор фордж, если много тоже фордж.
Да и без оптифайна чутка туго будет жить, если его классы зацепишь. Он ведь асм юзает. Т.е меняя классы оригинала ты и байткод меняешь. Так можно много чего схватить даже, если получится обфусцировать, лол)
-
#11
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 {net.minecraft.client.main.Main}
> [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. Теперь не понимаю, почему оно требует другие классы, которые не должны быть в гл.меню.
Последнее редактирование: 6 Мар 2018
-
#12
потому что фордж большая библиотека и там все взаимосвязанно и фордж во время загрузки-запуска мейнкласс гуи патчит.(добавление кнопки «моды»)
Он не смог пропатчить и вывалился с такой ошибкой
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!
-
#13
Вот поэтому я пытался использовать исходники Майнкрафта где используется фордж.
Так вот, есть какие-то варианты чтобы решить проблему?
Я ещё в MCP пытался вставить фордж библиотеку, но оно ошибками посыпало меня.
Или на крайняк мне выпиливать патч главного меню?
-
#14
у форджа есть исходники подключенные вроде к mcp, глянь у них на гите
-
#16
На гите форджа есть только фордж.
-
#17
Тогда только таски у гриля менять чтобы он исходники майна компилил, сверху фордж и готово. Но таски к грилю я не писал поэтому хз как что. Предполагаю что за таски у форджа ForgeGradle отвечает.
-
#18
Я ещё в MCP пытался вставить фордж библиотеку, но оно ошибками посыпало меня.
Или на крайняк мне выпиливать патч главного меню?
Что ты городишь?!? Используй Forge 1.12.2 MDK, и будет тебе счастье. Там все есть.
-
#19
@talosdx, нельзя так. Там плагин для граблей форджевский. Ты можешь собрать исходники и реобфусцировать их, в любом другом случаи ему придется лезть в mcp и делать все там. Если бы автор не отказывался от forge, то уже бы давно решил бы данный вопрос.
-
#20
@talosdx, нельзя так. Там плагин для граблей форджевский. Ты можешь собрать исходники и реобфусцировать их, в любом другом случаи ему придется лезть в mcp и делать все там. Если бы автор не отказывался от forge, то уже бы давно решил бы данный вопрос.
Та блин, у меня проблема с реобфускацией. Через BON не проходит она.
Обновлено: 09.02.2023
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Необходимо обновить браузер или попробовать использовать другой.
Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Вы находитесь в русском сообществе Bukkit. Мы — администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
Создание установщика
Для начала русифицируем нашу программу. Берём файл Russian.lng и вставляем его в установленную папку ISS.
Далее открываем файл примера скрипта из архива setup.iss.
Должна открыться программа Inno Script Studio. В меню View меняем язык на Русский
Inno Setup Script
Ставим курсор в конец 6 строки AppId= и нажимаем кнопки Shift+Ctrl+G
После чего в положение курсора должен вставиться уникальный GUID, генерируйте его так каждый раз при создании нового проекта установщика.
Рассмотрим основные строки:
Компоненты
категории и элементы для выборки устанавливаемых модов
Тут мы создаём всё, что хотим сделать опциональным.
Компоненты разделяются на категории/подкатегории обратной косой чертой ( ).
Имя — название компонента.
Описание — то, что будет показано в установщике.
Типы — к какому типу установки принадлежит категория. По умолчанию стоит тип «Full», т.е. полная установка.
Если выставить компоненту тип «Full», то он будет включен по умолчанию. Если ничего не выставлять — выключен по умолчанию.
Флаги — параметр компонента. По умолчанию никаких флагов не установлено.
«fixed» — запрет на изменение вкл./выкл. «exclusive» — сделать компонент уникальным в масштабе данной категории, т.е. будет возможен выбор только одного элемента
В итоге наш пример будет выглядеть так:
Файлы
все файлы, которые будут упакованы в установщик
Пихаем сюда весь наш клиент. Тут начинается самая тяжёлая и долгая часть.
Для начала нажмите ПКМ в любом месте правого окна ( где файлы ), в всплывшем окне нажмите «Настройка представления» и поставьте галочку у «Компоненты»
Рассмотрим основные свойства:
Исходная папка Откуда будет взят данный файл |
Папка назначения Куда будет установлен файл. — путь по умолчанию, который мы указали ранее |
Компоненты Выбранный компонент файлу. Если не выбрать — то файл не будет установлен! |
В свойства файла можно двойным нажатием ЛКМ или через соответствующий пункт через ПКМ. Возможно изменение свойств нескольким выбранным файлам.
Для удобства я разделил «системные» файлы, которые будут установлены в любом случае, выдав им компонент «client»
Все остальные файлы модов и прочего — надо выставить вручную для каждого созданного компонента.
То есть для файла BetterFPS выбираем компонент «modscat1betterfps», который мы создали специально для него.
И подобным образом компоненты выставляются всем файлам, включая файлы конфигов ( из папки config ).
Во время выдачи компонентов файлам — не спешите, если поставите другой компонент, то это сложно будет заметить.
Если вы создали компонент, но не назначили ему файлов, то в установщике не будет указан его размер.
После того, как отмучаетесь с этим — можно компилировать скрипт ( красная рамка ).
В случае успеха там же есть кнопка для запуска установщика ( фиолетовая рамка ).
Подготовка рабочего места
Качаем данный архив с клиентом, примером скрипта, Inno Setup и русификатором к нему.
Распаковываем в любое место и запускаем.
Устанавливаем в любое место, далее -> далее -> далее и т.д., ничего не меняя.
В конце нам предложат запустить программу — любезно отказываемся.
В итоге мы установили 2 программы — Inno Setup и Inno Script Studio
Копируем файл Russian.lng, который был в архиве в
Так мы установили русификатор, к которому мы еще вернёмся
Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL
В данной статье мы научимся создавать портативный установщик для своей сборки.
- Доминирование над сборками в архиве с ручной установкой
- Выбор любой папки для установки
- Выбор устанавливаемых модов
- Принудительный запуск предустановленной 64-битной Java 8 u181 — у скачавших будет меньше проблем с запуском игры
- Привязка к Windows — невозможность запуска на других ОС
- Возможность запуска только на 64-битных системах
Как изменить клиент / как запустить необфусцированный MC
Решил изменить клиент (переписать главное меню, изменить заголовок окна и т.д.), но столкнулся с проблемой, что через BON не получается обфусцировать файлы Minecraft, чтобы они совпадали с оригинальной обфускацией.
Вообщем, такой вопрос, возможно ли как-то изменить оригинальные классы майнкрафт и обфусцировать их?
Еще хотел немного сделать извращенный способ, запустить необфусцированный майнкрафт.
Нашел я файлик с форджем и майнкрафтом тут: C:Users<user>.gradlecachesminecraftnetminecraftforgeforge1.12.2-14.23.2.2624snapshot20171003forgeBin-1.12.2-14.23.2.2624.jar
Поставил его в клиент и перейменовал Forge 1.12.2.jar
С .json файла выпилил Forge 1.12.2 (т.к. он уже есть в джанике выше) и попытался запустить:
Настройки TLauncher
Сейчас мы опишем все настройки, которые можно изменить под себя в лаунчере. Конечно их не сильно много, но некоторые действительно очень полезные, отнеситесь к настройке очень серьёзно и аккуратно, ведь можно вообще сломать лаунчер неправильные установками. Если такое случилось, нажмите на кнопку «По умолчанию», чтобы все настройки вернулись к стандартным значением.
Директория: Если у вас не хватает места на стандартном диске C, то можно изменить местоположение файлов игры.
Можно выбрать стандартное разрешения запускаемой игры или же сразу запускать в полноэкранном режиме
Список версий: В лаунчере есть множество версий игры, если вы хотите некоторые сборки отключить, то используйте эти пункты.
Аргументы: Можно установить некоторые дополнительные аргументы при запуске, например подключение к серверу —server 192.0.0.1
Выделение памяти: Количество оперативной памяти выделяемой игре (Чем больше, тем лучше).
Переключив вкладку на «Настройки TLauncher», там можно увидеть следующие настройки:
Консоль разработчика: установив значение в «Общая», включается специальная консоль, в которую записываются все команды которые выполняет лаунчер. Причём как команды самого лаунчера, так и игры. Переключив в значение «Только Minecraft», включится консоль при запуске игры, в которую записывается всё что происходит в игре.
Качество соединения: Чем лучше соединение вы установите, тем меньше будет количество раз переподключений при загрузке данных игры.
При запуске Minecraft: Скрывать TLauncher, Закрывать TLauncher, нечего не делать — с этим наверное и так всё ясно.
Язык: так же можно установить на каком языке будут все надписи в лаучнере — английский, русский и украинский.
Подготовка клиента игры
Подготавливаем наш клиент для упаковки в установщик. В комплекте идут пара модов на 1.12.2 для примера и 2 предустановленные версии с Forge
Minecraft 1.7.10 | Minecraft 1.12.2 |
Forge 10.13.4.1614 | Forge 14.23.4.2759 |
Удалите лишний по усмотрению.
В клиенте для примера находятся 11 модов для различных примеров, итоговый вид папки Minecraft :
ЧЕМ МЕНЬШЕ ФАЙЛОВ — ТЕМ ВАМ БУДЕТ ЛЕГЧЕ
Поэтому познавайте дзен очищения сборок от лишних файлов
Настройки лаунчера ( configuration.cfg ) и профили хранятся в папке
Предустановленная Java хранится в
По умолчанию в лаунчере выставлено 2 Гб выделенной памяти без дополнительных аргументов, всё в ваших руках.
Читайте также:
- Wow скрипты как писать
- Комикс спанч боб как питаются морские звезды
- Как сделать fnf в скретч
- Что такое невада в маднесс комбат
- Как в anno 1404 захватить чужой остров
Работа с игровым клиентом
Клиенты, ресурсы и другие файлы для загрузки лаунчером хранятся в виде субдиректорий в директории updates, а профили, в которых указываются имя директорий, адрес сервера для автозахода, исключения при обновлении и другие сведения, необходимые для запуска клиента хранятся в директории profiles
Уязвимость в Minecraft
ВНИМАНИЕ
В декабре 2021 была обнаружена критическая уязвимость в библиотеке apache log4j2, которую Minecraft использует для логгирования. С помощью найденного эксплоита можно не только убивать сервера, но и ВЫПОЛНЯТЬ ПРОИЗВОЛЬНЫЙ КОД (!!!) как на клиенте, так и на сервере.
Читать подробнее…open in new window
Поддерживаемые версии
На данный момент лаунчер может запускать все версии с 1.7.10 по актуальную версию Minecraft, кроме Forge +1.17.1
Версия | Ванилла | Forge | Fabric |
---|---|---|---|
1.7.10 | ✔️ | ✔️ | ➖ |
1.8.9 | ✔️ | ✔️ | ➖ |
1.10.2 | ✔️ | ✔️ | ➖ |
1.11.2 | ✔️ | ✔️ | ➖ |
1.12.2 | ✔️ | ✔️ | ➖ |
1.13.2 | ✔️ | ✔️ | ➖ |
1.14.4 | ✔️ | ✔️ | ✔️ |
1.15.2 | ✔️ | ✔️ | ✔️ |
1.16.5 | ✔️ | ✔️ | ✔️ |
1.17.1 | ✔️ | ✔️ | ✔️ |
1.18.2 | ✔️ | ✔️ | ✔️ |
Установка клиента
Шаг 1: Добавте наше зеркалоopen in new window в конфиг лаунчсервера и перезапустите его
"mirrors": [
"https://mirror.gravit-launcher.ru/"
],
Шаг 2: Выполните следующую команду для скачивания клиента
downloadclient <version> <name>
version
— это версия Minecraft. В настоящее время мы разделяем версии на 3 типа:
1.16.5
— Ванильный Minecraft1.16.5-forge
— Minecraft модифицированный Forge1.16.5-fabric
— Minecraft модифицированный Fabric
name
— название клиента на ваш выбор
Шаг 3(Опционально): Выполните следующую команду для скачивание ассетов(тексутры, звуки и т.п) клиента
downloadclient <version> asset<version>
После данных действий клиент скачается в папку updates
и будет создан профиль в папке profiles
Настройка профиля клиента
Пример готовой конфигурации
После скачивания клиента лаунчсервер автоматически создаст профиль и заполнит его базовыми данными. Ниже приведён пример готовой конфигурации для Minecraft 1.17.1
{
"title": "Vanilla1.17",
"uuid": "fa9c1a52-6fa9-4da6-a488-9fc80250095c",
"version": "1.17",
"info": "Информация о сервере",
"dir": "Vanilla1.17",
"sortIndex": 0,
"assetIndex": "1.17",
"assetDir": "asset1.17",
"update": [
"servers.dat"
],
"updateExclusions": [],
"updateVerify": [
"libraries",
"natives",
"minecraft.jar",
"forge.jar",
"liteloader.jar",
"mods"
],
"updateOptional": [],
"jvmArgs": [
"-XX:+DisableAttachMechanism",
"-XX:+UseG1GC",
"-XX:+UnlockExperimentalVMOptions",
"-XX:G1NewSizePercentu003d20",
"-XX:MaxGCPauseMillisu003d50",
"-XX:G1HeapRegionSizeu003d32M",
"-Djava.library.pathu003dnatives",
"-Dfml.ignorePatchDiscrepanciesu003dtrue",
"-Dfml.ignoreInvalidMinecraftCertificatesu003dtrue"
],
"classPath": [
"libraries",
"minecraft.jar",
"forge.jar",
"liteloader.jar"
],
"altClassPath": [],
"clientArgs": [],
"compatClasses": [],
"properties": {},
"servers": [
{
"name": "Vanilla1.17",
"serverAddress": "localhost",
"serverPort": 25535,
"isDefault": true,
"socketPing": true
}
],
"classLoaderConfig": "LAUNCHER",
"runtimeInClientConfig": "NONE",
"recommendJavaVersion": 16,
"minJavaVersion": 16,
"maxJavaVersion": 17,
"warnMissJavaVersion": true,
"settings": {
"ram": 0,
"autoEnter": false,
"fullScreen": false
},
"updateFastCheck": true,
"limited": false,
"mainClass": "net.minecraft.client.main.Main"
}
Описание настроек профиля
title
— заголовок профиляuuid
— UUID профиляversion
— версия майнкрафтаinfo
— информация о сервере в окне выбора серверовdir
— папка клиента в updatessortIndex
— порядковый номер в окне выбора серверовassetIndex
— название используемого индекса в ассетахassetDir
— папка с ассетамиupdate
— список файлов и папок, которые будут перекачиваться при старте клиентаupdateExclusions
— список файлов и папок, которые не надо проверятьupdateVerify
— список файлов и папок, которые будут перекачиваться при старте клиента и во время работыupdateOptional
— список опциональных модов и дополнительных аргументов более подробнее смотрите в Опциональные модыjvmArgs
— аргументы JVMclassPath
— список файлов и библиотек, загружаемых при запуске выбранным загрузчиком классовaltClassPath
— список файлов и библиотек, загружаемых при запуске системным загрузчиком классовclientArgs
— дополнительные аргументы клиентаcompatClasses
— список дополнительных MainClass, которые будут запущены перед основнымproperties
— кастомная информация о профилеservers
— список серверов
name
— название сервераserverAddress
— адрес сервераserverPort
— порт сервераisDefault
— по умолчаниюsocketPing
— Прямой пинг для получения онлайна
classLoaderConfig
— тип загрузчика классов (LAUNCHER, AGENT, SYSTEM_ARGS)runtimeInClientConfig
— запуск GUI рантайма при старте клиента (NONE, BASIC, FULL)recommendJavaVersion
— рекомендуемая версия JavaminJavaVersion
— минимальная версия JavamaxJavaVersion
— максимальная версия JavawarnMissJavaVersion
— предупреждение о несоответствии Java требованиям для запускаsettings
— настройки по умолчанию
ram
— количество ОЗУ (в мегабайтах), 0 — автоматическиautoEnter
— авто—вход, может крашитьсяfullScreen
— полноэкранный режим
updateFastCheck
— быстрая проверка файловlimited
— ограничен permissionsmainClass
— главный класс клиента
Опциональные моды
"updateOptional": [
{
"actions": [ //Список действий опционального мода
{ //Первое действие
"files": {
"mods/1.7.10/NotEnoughItems-1.7.10-1.0.5.118-universal.jar": "", //Простое добавление файла без переименований
"mods/SuperStrangeMod0.jar": "mods/SuperStrangeMod.jar", //Добавление файла с перемещением. на стороне лаунчсервера файл находится по пути "mods/SuperStrangeMod0.jar", а в клиент он попадет сюда "mods/SuperStrangeMod.jar"
"mods2/LowStrangeMod.jar": "mods/LowStrangeMod.jar", //Между папками перемещение тоже работает
"config2/ic2": "config/ic2" //Перемещение папок тоже работает
},
"type": "file" //Тип действия - обработка файлов
}
],
"info": "Мод, показывающий рецепты", //Описание
"visible": true, //Видимость
"mark": true, //Включен по умолчанию
"limited": false, //Ограничен permissions
"permissions": 0, //Маска привилегий. 0 - мод для всех, 1 - только для админов.
"name": "NotEnoughItems" //Имя
},
{
"actions": [
{
"files": {
"mods/Waila_1.5.10_1.7.10.jar": ""
},
"type": "file"
}
],
"info": "Мод, показывающий дополнительную информацию при наведении на блок",
"name": "Walia",
"permissions": 0,
"visible": true,
"dependenciesFile": [{"name":"NotEnoughItems"/* Имя зависимого мода */}],
"conflictFile": [{"name":"ClientFixer"/* Имя конфликтующего мода */}],
"subTreeLevel": 2 //Смещение относительно первого мода. Используется для создания визуального отображения дерева зависимостей
},
{
"actions": [
{
"args": [
"--add-modules",
"jdk.unsupported"
],
"type": "jvmArgs"
}
],
"triggers": [], //Триггеры, о них ниже
"info": "Аргументы Java 9+",
"visible": false,
"permissions": 0,
"name": "Java9Args"
},
{
"actions": [
{
"files": {
"mods/1.7.10/OptiFine_1.7.10_HD_U_E7.jar": ""
},
"type": "file"
}
],
"info": "Улучшение производительности",
"permissions": 0,
"visible": true,
"name": "OptiFine HD"
}
],
Триггеры
Тип OS
"triggersList": [
{
"os": "MACOSX", // ОС: LINUX, MUSTDIE (Это Windows), MACOSX
"required": false,
"inverted": false,
"type": "os"
}
],
Тип Java
"triggersList": [
{
"type": "java",
"minVersion": 8, //Минимальная версия Java для срабатывания триггера
"maxVersion": 11, //Максимальная версия Java для срабатывания триггера
"required": true, //Показывает, что без этого триггера включение опционального мода не имеет смысла
"inverted": false //Инвертировать триггер
}
],
Синхронизация директорий
Для обеспечения высокой производительности, лаунчсервер кэширует содержимое директорий updates и profiles. При внесении изменений в эти директории, лаунчсервер о них не осведомлён, и при следующем обновлении скорее всего будет ошибка. Для того чтобы синхронизировать содержимое этих директорий, существует две команды — syncupdates
и syncprofiles
:
syncupdates # Синхронизирует содержимое директории updates
syncprofiles # Синхронизирует содержимое директории profiles
syncup # Синхронизировать обе директории
По умолчанию, после установки Майнкрафт настроен на самую последнюю версию игры. Однако возможны ситуации, когда вы можете захотеть перейти на другую версию, например, для обеспечения совместимости с определенным сервером или модом или для испытания какой-то из бета-версий. Для того, чтобы изменить версию игры, вы должны создать новый профиль запуска игры с нужной версией и настроить игру для использования этой конфигурации.
Смотрите также: Как узнать версию клиента игры Майнкрафт
Перед тем как изменять версию, вы должны понимать то, что в старых версиях игры отсутствуют некоторые возможности которые появились в новых. Если вы попытаетесь сыграть в одном из ваших текущих миров, используя более старую версию игры, вы можете безвозвратно повредить этот мир. Поэтому, создавайте резервные копии своих миров при игре с предыдущей или бета-версией Майнкрафта.
Можем вас обрадовать – для настройки и использования любой из версий Minecraft не нужно использовать никаких модов и дополнений. Все версии игр (включая новые тестовые версии) могут быть доступны и загружены прямо из лаунчера игры. Каждая конфигурация лаунчера сохраняет различные настройки, включая версию клиента. Вы можете легко создать новую конфигурацию лаунчера, а затем переключаться между ними, чтобы быстро изменить версию игры или другие ее настройки.
Порядок создания профиля запуска
Скачайте Minecraft, установите и запустите его, авторизируйтесь (если не сделали всего этого раньше) и нажмите в главном меню лаунчера пункт «Параметры запуска». Если вы не видите меню, показанное на рисунке ниже, нажмите кнопку с тремя параллельными линиями (так называемое «гамбургерное меню») в правом верхнем углу окна лаунчера.
После нажатия «Параметров запуска», откроется страница на которой вы сможете создать или отредактировать конфигурацию лаунчера. Для включения отображения последних экспериментальных версий, включите «Предварительные версии», для отображения старых версий – «Устаревшие версии».
В списке конфигураций уже присутствует по умолчанию профиль «Последний выпуск». Его нельзя удалить или изменить, поэтому, если вы хотите изменить параметры игры вам нужно будет создать новый профиль. Для этого нажмите пункт «Добавить».
Если при этом вы заходите изменить дефолтный путь к Java и его параметры, а также настройки журнала, включите предварительно переключатель «Дополнительные параметры».
После нажатия пункта «Добавить» вы можете настроить следующие конфигурации запуска игры:
- Название – дайте запоминающееся имя новосоздаваемому профилю, по которому в будущем сможете отличать его от других, например «Minecraft 1.8» или «Тест мода».
- Версия – выберите, какую версию игры вы хотите использовать, когда запускаете игру с этой конфигурацией.
- Разрешение – здесь можно изменить разрешение игры.
Папка игры – определяет где будут храниться данные Майнкрафта.
Если перед созданием профиля были включены «Дополнительные параметры» то у вас будут доступны для изменения следующие пункты:
- Путь к Java – указывает месторасположение файла Java.
- Параметры JVM – позволяет запустить игру с дополнительными аргументами Java.
- Настройка журнала – позволяет вручную настроить журналирование.
Также вы можете изменить иконку данной конфигурации кликнув на нее.
После окончания настройки нажмите на кнопку «Сохранить».
Теперь вы имеете новую конфигурацию запуска. Для ее использования перейдите на любую другую страницу главного меню (например, в «Новости», как на скриншоте ниже) и нажмите стрелку рядом с кнопкой «Играть». Это позволит вам выбрать конфигурацию лаунчера, и вы можете запустить игру с выбранной вами версией.
Инструкция не достаточно понятная? Возникли дополнительные вопросы? Задайте их в комментариях к этой записи! Мы с радостью объясним все непонятные моменты.