Как создать свой лаунчер майнкрафт

Обновлено: 01.06.2024

Админы, владеющие собственными серверами Minecraft, часто сталкиваются с проблемой сборки стабильного лаунчера, который позволит быстро и беспрепятственно скачивать обновления, моды, скины. В рамках данной статьи мы расскажем, как сделать свой лаунчер игры Майкрафт.

[Лаунчер] Делаем быстро на Java!

[Лаунчер] Делаем быстро на Java!


Хм, я покажу вам как быстро сделать пиратский лаунчер на Java! Хотя ночь, но я это сделал! Ааа ночь, а пох.



Этап 3.Открываем In Class Translator, в GameUpdater мы поставим ссылку на наш клиент! А в LoginForm вся русификация лаунчера!

[Лаунчер] Делаем быстро на Java!


Этап 4. Пакуем все измененные файлы обратно в JAR! А теперь открываем Jar2Exe (Jar to Exe) и ставим адрес на наш Jar! Также выставляем как у меня!

[Лаунчер] Делаем быстро на Java!


Этап 5. Выставляем как у меня.

[Лаунчер] Делаем быстро на Java!


Этап 6. Выбираем картинку загрузки! И не меняем где я пометил!

[Лаунчер] Делаем быстро на Java!


Этап 7. Выбираем значок!

[Лаунчер] Делаем быстро на Java!


Этап 8. Всё, Закончили!

Создаем установщик для своей сборки + портативный клиент на основе tLauncher [Guide]

Создаем установщик для своей сборки + портативный клиент на основе tLauncher [Guide]

Итак, для начала начнём с подготовки нашего рабочего места. Наливаем чай, включаем музыку и начинаем творить.

Как добавить возможность авторизации?

  1. Найти строку «Public static bolean useAutoenter».
  2. Дописать значение данного параметра – «True».

Это позволит игрокам автоматически заходить на сервер без ввода логина и пароля.

Дальнейшие манипуляции с кодом можно производить по собственному усмотрению. При этом важно знать значения всех строк, поскольку нежелательные изменения могут привести к отказу лаунчера.

Создание и подготовка клиента

  1. logs
  2. saves (если нет специальной карты под клиент)
  3. server-resource-packs
  4. fonts
  5. mod-config ( не config )
  1. launcher_profiles.json
  2. servers.dat ( если клиент не под специальный сервер )
  3. tlauncher_profiles.json

Создаем установщик для своей сборки + портативный клиент на основе tLauncher [Guide]


Примерно так будет выглядеть папка клиента после очистки

Программа установлена, клиент создан - а значит можно приступать к созданию установщика!

Создание установщика


Создаем установщик для своей сборки + портативный клиент на основе tLauncher [Guide]

  1. Имя программы - собственно, название вашего клиента
  2. Версия - версия вашего клиента
  3. Имя компании - будет показываться внизу установщика
  4. Интернет-сайт - толком ничего не делает
  5. Поддержка - ваши контакты (e-mail)
  6. Сохранить как - путь, где будет созданный установщик

Создаем установщик для своей сборки + портативный клиент на основе tLauncher [Guide]

Здесь нам требуется добавить свою сборку в установщик. Нажимаем на кнопку "Добавить файлы из папки" и в появившимся диалоговом окне выбираем папку, где находится наша сборка.

Как создать лаунчер для игры Minecraft?

Всем доброго времени суток!
Предисловие:
Со своим товарищем решили в свободное время создать проект по Minecraft. Соответственно подготовили сервер и сайт.. Сейчас дело дошло до лаунчера для сервера. Разработка лаунчера производится на ElectronJS (в связке с vue).
Но сразу наткнулись на много подводных камней, вот одни из них (не буду писать всё в одном посте, т.к. нарушаю пункт правил):
1. Как запустить jar файл с флагами (точно не знаю как называется, буду называть так) типа "--username --uuid " и т.п. Т.е. програмным путём вставлять флаги в jar файл самого Minecraft.
2. Как подготовить клиент Minecraft? Т.е. из чего собирать? Допустим, я взял из готового лаунчера сборку клиента и хочу его использовать. То как нужно будет его хранить? Так как есть или по другому?

Заранее благодарю за хорошие ответы.

daemonhk

dima9595

Одиночка Айс, Java лишнее, т.е. самим сервером не планирую заниматься - будет другой человек)

jamakasi666

1) называется аргументы и работает как и везде что то типа "java.exe -jar --username Pupkin --uuid 12j21hj3hjbn1j31j --some"
тут еще замечу что в майне с модами не все так просто и нужно указывать правильный порядок библиотек. В свое время очень много нервов и времени это все съело.
2) Как хочешь так и храни, путь до библиотек, нативок, ассетов указывается в аргументах запуска игры.
А вообще гиблое дело т.к. подводных камней крайне много если не точишь лаунчер под конкретную сборку или не реализуешь все механизмы анализа и запуска как в оригинальном лаунчере.

dima9595

А вообще гиблое дело т.к. подводных камней крайне много если не точишь лаунчер под конкретную сборку

Лаунчер делается для собственных серверов, где моды будут одинаковы и количество их будет очень мало, по крайней мере так планируется.

jamakasi666

Дмитрий Кузнецов, я же говорил про геморойность =) вот вам надо будет эмулировать очень многое для правильной работы
Тут описано что и как отвечается и генерируется wiki.vg/Authentication wiki.vg/Mojang_API тут как работают ассеты wiki.vg/Game_files.
Как минимум вам придется писать эмулятор аутентификации и авторизации или брать готовый и адаптировать себе.
Эмулировать хотябы частично апи моянга по скинам и конверту имен-uuid и обратно.
И кроме того патчить или переписать\эмулировать либу Yggdrasil на клиенте и сервере. Кроме того тут еще большее число камней т.к. от версии к версии все сильно отличается, где то достаточно пропатчить либу а гдето нужно еще патчить классы в клиенте и сервере и при этом обманывать цифровую подпись особенно если юзается forge.

dima9595

Дмитрий Александров, это я как понимаю нужно для оф. клиента? у меня будет пиратская версия

jamakasi666

Дмитрий Кузнецов, ну если не будет авторизации вообще впринципе и даже такой примитивной то будет засилье читеров и кучи багов т.к. придется отключать onlinemode и пускать игроков по white листу или без него. Естественно это приведет к тому что не будет скинов\плащей, можно будет с чистой совестью запустить игру с любым ником что приведет к тому что под твоим ником с админ правами может зайти абсолютно любой игрок просто вписав такой ник.
Выше приведенные ссылки к тому как работает оф ланучер и что нужно эмулировать, в примитивном и сокращенным видом это так выглядит:
1) Лаунчер отправляет логин+пароль или токен на оф сервер или твою эмуляцию. В ответ получает много инфы и в т.ч. временный токен_авторизации новый.
2) Лаунчер запускает игру и в аргументах среди прочего отправляет токен_авторизации и еще некоторые типа предопределенного языка и токена к примеру на твитч.
3) игра запускается и сверяет полученный токен с тем который хранится на оф сервере или твоей эмуляции. В некоторых случаях получает новый.
4) Коннект на сервер. При этом сначала сервер получает uuid по которому делает на оф\эмуляции пометку что такойто хочет на такой сервер. Клиент получает временный токен сервера и отправляет его на оф\эмуляцию для проверки, после если все ок игрок заходит на сервер, сервер отправляет на оф\эмуляцию что такой то прибыл и затирает токены\инвалидирует. (Этот пункт пишу по памяти но там достаточно тупая но в тоже время интересная 3х сторонняя проверка клиента\сервера\лаунчера)
5) Игроки и сервер получают по uuid скины\плащи и остальную информацию с оф\эмулирующего сервера.

Если этого не делать то будет так:
1) Лаунчер запускает игру с необходимыми аргументами где часть параметров просто пустышки но с конкретным никнеймом
2) На сервере отключен onlinemode и игрок может зайти на него с любым ником.
3) После входа срабатывает серверный плагин типа authme который блочит движения и действия игрока спамя в чат чтобы он написал пароль.
4)* Игрок пишет пароль и получает управление.
*Скины и плащи не работают, смогут работать только после ручных патчей клиента и сервера и то вроде как не последних версиях уже неканает это.

Так же добавлю что от версии к версии число и имена аргументов запуска меняется. К ним же еще прибавляются аргументы форджа\лайтлоадера. У форджа и лайтлоадера есть свои алгоритмы защиты и проверки "лицензионности", особенно у форджа.

А вообще лицензии майна стоят копейки и проще отказаться от пиратсва. Я в свое время так и сделал, да игроков стало в разы меньше но они все 100% адекватные и понимающие что на таком сервере донат нужен просто для оплаты сервера и пиво админам, а на том доната в игре нет но есть пожертвования. И скажу честно люди платят. При этом образовалась тесная компания товарищей. К слову на одном сервере онлайн упал с 80 до 15-20 но эти 15-20 человек содержали сервер своими пожертвованиями и зачастую выступали с идеями которые потом вносились на сервер. Модераторы стали ненужны т.к. сами игроки спокойно писали в группу в скайпе что какойто подозрительный чел шарится и надо бы его проверить на вшивость.

dima9595

Дмитрий Александров, очень большое вам спасибо за такой обширный и познавательный ответ.
Как я планировал делать:
1. В лаунчере есть авторизация, благодаря которому мы получаем username и "вшиваем" в запускатор клиента.
2. После подключению к одному из серверов - просим ввести пароль через команду (или как в дальнейшем планировалось - в специальном окне).
Но тут возникает вопрос можно ли легче сделать. По идеи можно передавать логин и пароль в аргументы запускатора, но тут возможно будут проблемы со стороны сервера, т.к. серверу необходимо передать этот пароль из клиента и произвести авторизацию. Так что скорей всего данная идея не закатит.

Если есть ещё какие-нибудь мысли по этому поводу, то я очень рад был бы услышать. Вижу я, что вы много в этом разбираетесь, так что есть у меня к вам одно предложения сотрудничество. Если заинтересует сотрудничество, то жду вас в скайпе или вк (данные есть в моём профиле, желательно в скайпе).

Начало работы

  1. Качаем данный архив с программой, картинками и портативным лаунчером -
    installer.zip [7,49 Mb]
  2. Создаем где-нибудь новую папку (рабочий стол, например) и скидываем туда всё, что есть в архиве
  3. Устанавливаем программу, находящуюся в папке "Smart Install Maker".

Подготовка исходников

Что понадобится для создания лаунчера?

возможности программы NetBeans

NetBeans – самый оптимальный помощник в создании лаунчера.

Как известно, лаунчер представляет собой программный интерфейс, облегчающий подключение геймеров к серверу игры. Эти приложения автоматически скачивают необходимые файлы и софт.

  • личный домен, сайт;
  • исходники собственного портала;
  • клиент программы NetBeans;
  • файловый менеджер (не обязательно).

Кроме того, лаунчер должен иметь систему авторизации. Инструкцию о том, как ее добавить, найдете ниже.

Создание лаунчера для сервера

Видео: Как сделать свой лаунчер.

При желании устанавливать моды на сервер рекомендуется проделать следующие манипуляции:

  1. В редакторе кода NetBeans найти строку «Public static bolean useModCheck».
  2. Изменить значение параметра на «True».
  3. Отыскать строку с параметром «Public static bolean useModsDelete».
  4. Присвоить значение «False».

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