Как изменить клиент minecraft

Update: По многочисленным просьбам обновил битые ссылки (14.01.2018)! Все файлы (class, src и т д тут) >>...
Страница 1 из 23

  1. 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.java

    11 минута 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
  2. Быстрая раскрутка сервера Minecraft

  3. 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

    В поиск нужно ввести слово

    public void loadServerList()

    На 33 строке в файле ServerList.java мы найдем это значение.
    Комментируем строки: 37,38,41,42,43,44

    3 минута 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

  4. Hugefort

    Hugefort
    Старожил
    Пользователь

    Баллы:
    103
    Skype:
    hugefort
    Имя в Minecraft:
    Hugefort

    Интересно ….
    А и кстати, помоги найти мод на монеты и мод на щиты,кольца,перчатки, ожерелья и т.д.


    falleny и Vedroyder нравится это.

  5. granisto

    granisto
    Старожил
    Пользователь

    Баллы:
    123
    Skype:
    granisto200
    Имя в Minecraft:
    Granisto

    Монеты и щиты есть в CustomNPC, но этот мод имеет в три раза больше функционала. Кольца, перчатки, ожерелья можно найти в RPGInventory. Но хотя таких модов, вроде достаточно в minecraftforum.

  6. Ну, если все как в описании, то будет круто. Жду.

  7. Тему обновил, днем добавлю видео.


    falleny и WCRAFT нравится это.
  8. @exsperto1, Ты когда в фордже запускал файлик install у тебя скачалось 175мб, у меня же, буквально за минуту, 16мб и половины папок, что были у тебя, нет.
    UPD начал извлекать на декстоп и скачались все 170мб.


    HeyFOC и falleny нравится это.
  9. Ну что, кому нибудь нужны видеоуроки для 1.4.7 и 1.5.2 ?


  10. MegaAntoxa1

    MegaAntoxa1
    Старожил
    Пользователь

    Баллы:
    173
    Skype:
    antonkretov.ru
    Имя в Minecraft:
    Anton_Kretov

    Делайте, все равно кому-нибудь понадобятся.

  11. Напиши как сделать норм клиент с нуля )) То есть когда ни чистого майна ни форжы.

  12. Кстати в видео ты сказал что дашь шрифты ))
    Но так и не дал.

    Может выложишь? Заодно с мануалом по установке.

  13. Под видео посмотри, там шрифты лежат.

  14. А можно как-то сделать просто по нажатию на кнопку етевая играа вход на сервер.
    В идеале вообще было-бы сделать как на картинке =)

    Вложения:

    • IMG_15052013_011147.png
  15. ставлю в клиент и краш..
    в чем трабла? вот краш репорт:

    ---- 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
  16. Ругается на шрифт.
    Может у вас что то стоит в клиенте?
    попробуй загрузить мой assets с моего client3
    похоже шрифт нужно вставлять еще в assets
    лаунчер у меня на сайте.


    falleny и WCRAFT нравится это.

  17. CarloBLR

    CarloBLR
    Активный участник
    Пользователь

    Баллы:
    88
    Имя в Minecraft:
    CarloBLR

    Как скоро сможешь сделать видео для 1.5.2 версии?

  18. У меня чистый клиент загруженный лаунчером + установленная в него последняя фордж

  19. up
    Скоро будет видеоурок, как я изменяю скины через mcp и ставлю шрифт на клиент с модом «optifine».


    falleny и WCRAFT нравится это.

  20. bounze

    bounze
    Активный участник
    Пользователь

    Сделай скорее пожалуйста на 1.5.2 !
    Очень прошу!

  21. Обновил тему.
    Добавил новое видео «Как сделать достойный клиент 1.5.2»

Страница 1 из 23

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

Русское сообщество Bukkit

Bukkit по-русски - свой сервер Minecraft

Icosider


  • #2

gradlew build и будут тебе обфусцированные классы.

  • #3

gradlew build и будут тебе обфусцированные классы.

Мне именно нужно оригинальные классы изменять, а ни форджовские.
Вот что у меня получается:

LmG3O8PHe6DPqm.jpg

А нужно, чтобы классы из трех буков назывались.

Icosider


  • #4

Они и так ориджинал просто с патчами. Если модифицируешь онли майн, то бери mcp, и чего него модифицируй. Там уже выбираешь build и reobfuscate.

  • #5

это тебе к mcp и ты eula нарушаешь

  • #6

Они и так ориджинал просто с патчами. Если модифицируешь онли майн, то бери mcp, и чего него модифицируй. Там уже выбираешь build и reobfuscate.

Тоже в этом проблема
1. Еще нет MCP на 1.12.2.
2. Что делать, если мне нужно использовать форджовские методы для гл.меню?

Icosider


  • #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 использую, но нужно изменять как-то клиент ванильный. Использовать например онлайн сервера на кнопке.

Icosider


  • #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 отвечает.

Icosider


  • #18

Я ещё в MCP пытался вставить фордж библиотеку, но оно ошибками посыпало меня.
Или на крайняк мне выпиливать патч главного меню?

Что ты городишь?!? Используй Forge 1.12.2 MDK, и будет тебе счастье. Там все есть.

Icosider


  • #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

Настройки 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 — Ванильный Minecraft
  • 1.16.5-forge — Minecraft модифицированный Forge
  • 1.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 — папка клиента в updates
sortIndex — порядковый номер в окне выбора серверов
assetIndex — название используемого индекса в ассетах
assetDir — папка с ассетами
update — список файлов и папок, которые будут перекачиваться при старте клиента
updateExclusions — список файлов и папок, которые не надо проверять
updateVerify — список файлов и папок, которые будут перекачиваться при старте клиента и во время работы
updateOptional — список опциональных модов и дополнительных аргументов более подробнее смотрите в Опциональные моды
jvmArgs — аргументы JVM
classPath — список файлов и библиотек, загружаемых при запуске выбранным загрузчиком классов
altClassPath — список файлов и библиотек, загружаемых при запуске системным загрузчиком классов
clientArgs — дополнительные аргументы клиента
compatClasses — список дополнительных MainClass, которые будут запущены перед основным
properties — кастомная информация о профиле
servers — список серверов

  • name — название сервера
  • serverAddress — адрес сервера
  • serverPort — порт сервера
  • isDefault — по умолчанию
  • socketPing — Прямой пинг для получения онлайна

classLoaderConfig — тип загрузчика классов (LAUNCHER, AGENT, SYSTEM_ARGS)
runtimeInClientConfig — запуск GUI рантайма при старте клиента (NONE, BASIC, FULL)
recommendJavaVersion — рекомендуемая версия Java
minJavaVersion — минимальная версия Java
maxJavaVersion — максимальная версия Java
warnMissJavaVersion — предупреждение о несоответствии Java требованиям для запуска
settings — настройки по умолчанию

  • ram — количество ОЗУ (в мегабайтах), 0 — автоматически
  • autoEnter — авто—вход, может крашиться
  • fullScreen — полноэкранный режим

updateFastCheck — быстрая проверка файлов
limited — ограничен permissions
mainClass — главный класс клиента

Опциональные моды

"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.
  • Настройка журнала – позволяет вручную настроить журналирование.

Также вы можете изменить иконку данной конфигурации кликнув на нее.

Параметры конфирурации

После окончания настройки нажмите на кнопку «Сохранить».

Теперь вы имеете новую конфигурацию запуска. Для ее использования перейдите на любую другую страницу главного меню (например, в «Новости», как на скриншоте ниже) и нажмите стрелку рядом с кнопкой «Играть». Это позволит вам выбрать конфигурацию лаунчера, и вы можете запустить игру с выбранной вами версией.

Выбор профиля запуска

Выбор конфигурации запуска игры

Инструкция не достаточно понятная? Возникли дополнительные вопросы? Задайте их в комментариях к этой записи! Мы с радостью объясним все непонятные моменты.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить клиент firefox
  • Как изменить клиент dota 2
  • Как изменить класс элемента javascript
  • Как изменить класс функциональной пожарной опасности помещения
  • Как изменить класс пожарной опасности здания

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии