Всем доброго времени суток!
Предисловие:
Со своим товарищем решили в свободное время создать проект по Minecraft. Соответственно подготовили сервер и сайт.. Сейчас дело дошло до лаунчера для сервера. Разработка лаунчера производится на ElectronJS (в связке с vue).
Но сразу наткнулись на много подводных камней, вот одни из них (не буду писать всё в одном посте, т.к. нарушаю пункт правил):
1. Как запустить jar файл с флагами (точно не знаю как называется, буду называть так) типа «—username —uuid » и т.п. Т.е. програмным путём вставлять флаги в jar файл самого Minecraft.
2. Как подготовить клиент Minecraft? Т.е. из чего собирать? Допустим, я взял из готового лаунчера сборку клиента и хочу его использовать. То как нужно будет его хранить? Так как есть или по другому?
Заранее благодарю за хорошие ответы.
- Вопрос задан более трёх лет назад
- 9265 просмотров
2 комментария
Средний 2 комментария
Часть1. Создание лаунчера майнкрафт для вашего проекта
PHP, ElectronJS, Java, Minecraft, эко вам весело))
Одиночка Айс, Java лишнее, т.е. самим сервером не планирую заниматься — будет другой человек)
Решения вопроса 0
Ответы на вопрос 1
Просто IT’шник.
1) называется аргументы и работает как и везде что то типа «java.exe -jar —username Pupkin —uuid 12j21hj3hjbn1j31j —some»
тут еще замечу что в майне с модами не все так просто и нужно указывать правильный порядок библиотек. В свое время очень много нерWow и времени это все съело.
2) Как хочешь так и храни, путь до библиотек, нативок, ассетов указывается в аргументах запуска игры.
А вообще гиблое дело т.к. подводных камней крайне много если не точишь лаунчер под конкретную сборку или не реализуешь все механизмы анализа и запуска как в оригинальном лаунчере.
Ответ написан более трёх лет назад
Нравится 1 6 комментариев
А как генерируется этот uuid? Не uuid ли процесса?
А вообще гиблое дело т.к. подводных камней крайне много если не точишь лаунчер под конкретную сборку
Лаунчер делается для собственных серверов, где моды будут одинаковы и количество их будет очень мало, по крайней мере так планируется.
Дмитрий Кузнецов, я же говорил про геморойность =) вот вам надо будет эмулировать очень многое для правильной работы
Тут описано что и как отвечается и генерируется wiki.vg/Authentication wiki.vg/Mojang_API тут как работают ассеты wiki.vg/Game_files.
Как минимум вам придется писать эмулятор аутентификации и авторизации или брать готовый и адаптировать себе.
Эмулировать хотябы частично апи моянга по скинам и конверту имен-uuid и обратно.
И кроме того патчить или переписатьэмулировать либу Yggdrasil на клиенте и сервере. Кроме того тут еще большее число камней т.к. от версии к версии все сильно отличается, где то достаточно пропатчить либу а гдето нужно еще патчить классы в клиенте и сервере и при этом обманывать цифровую подпись особенно если юзается forge.
Дмитрий Александров, это я как понимаю нужно для оф. клиента? у меня будет пиратская версия
Дмитрий Кузнецов, ну если не будет авторизации вообще впринципе и даже такой примитивной то будет засилье читеров и кучи багов т.к. придется отключать onlinemode и пускать игроков по white листу или без него. Естественно это приведет к тому что не будет скиновплащей, можно будет с чистой совестью запустить игру с любым ником что приведет к тому что под твоим ником с админ правами может зайти абсолютно любой игрок просто вписав такой ник.
Выше приведенные ссылки к тому как работает оф ланучер и что нужно эмулировать, в примитивном и сокращенным видом это так выглядит:
1) Лаунчер отправляет логин+пароль или токен на оф сервер или твою эмуляцию. В ответ получает много инфы и в т.ч. временный токен_авторизации новый.
2) Лаунчер запускает игру и в аргументах среди прочего отправляет токен_авторизации и еще некоторые типа предопределенного языка и токена к примеру на твитч.
3) игра запускается и сверяет полученный токен с тем который хранится на оф сервере или твоей эмуляции. В некоторых случаях получает новый.
4) Коннект на сервер. При этом сначала сервер получает uuid по которому делает на офэмуляции пометку что такойто хочет на такой сервер. Клиент получает временный токен сервера и отправляет его на офэмуляцию для проверки, после если все ок игрок заходит на сервер, сервер отправляет на офэмуляцию что такой то прибыл и затирает токеныинвалидирует. (Этот пункт пишу по памяти но там достаточно тупая но в тоже время интересная 3х сторонняя проверка клиентасервералаунчера)
5) Игроки и сервер получают по uuid скиныплащи и остальную информацию с офэмулирующего сервера.
Если этого не делать то будет так:
1) Лаунчер запускает игру с необходимыми аргументами где часть параметров просто пустышки но с конкретным никнеймом
2) На сервере отключен onlinemode и игрок может зайти на него с любым ником.
3) После входа срабатывает серверный плагин типа authme который блочит движения и действия игрока спамя в чат чтобы он написал пароль.
4)* Игрок пишет пароль и получает управление.
*Скины и плащи не работают, смогут работать только после ручных патчей клиента и сервера и то вроде как не последних версиях уже неканает это.
Так же добавлю что от версии к версии число и имена аргументов запуска меняется. К ним же еще прибавляются аргументы форджалайтлоадера. У форджа и лайтлоадера есть свои алгоритмы защиты и проверки «лицензионности», особенно у форджа.
А вообще лицензии майна стоят копейки и проще отказаться от пиратсва. Я в свое время так и сделал, да игроков стало в разы меньше но они все 100% адекватные и понимающие что на таком сервере донат нужен просто для оплаты сервера и пиво админам, а на том доната в игре нет но есть пожертWowания. И скажу честно люди платят. При этом образовалась тесная компания товарищей.
К слову на одном сервере онлайн упал с 80 до 15-20 но эти 15-20 человек содержали сервер своими пожертWowаниями и зачастую выступали с идеями которые потом вносились на сервер. Модераторы стали ненужны т.к. сами игроки спокойно писали в группу в скайпе что какойто подозрительный чел шарится и надо бы его проверить на вшивость.
Дмитрий Александров, очень большое вам спасибо за такой обширный и познавательный ответ.
Как я планировал делать:
1. В лаунчере есть авторизация, благодаря которому мы получаем username и «вшиваем» в запускатор клиента.
2. После подключению к одному из серверов — просим ввести пароль через команду (или как в дальнейшем планировалось — в специальном окне).
Но тут возникает вопрос можно ли легче сделать. По идеи можно передавать логин и пароль в аргументы запускатора, но тут возможно будут проблемы со стороны сервера, т.к. серверу необходимо передать этот пароль из клиента и произвести авторизацию. Так что скорей всего данная идея не закатит.
Если есть ещё какие-нибудь мысли по этому поводу, то я очень рад был бы услышать. Вижу я, что вы много в этом разбираетесь, так что есть у меня к вам одно предложения сотрудничество. Если заинтересует сотрудничество, то жду вас в скайпе или вк (данные есть в моём профиле, желательно в скайпе).
2. После подключению к одному из серверов — просим ввести пароль через команду (или как в дальнейшем планировалось — в специальном окне).
это какраз и делает authme плагин, но проблемы с ним я частично описал. Одно время был косяк, не знаю пофиксили или нет но таких очень много было, можно было зайти с любым никнеймом админамодера, и пока идет таймаут ожидания ввода пароля зайти еще раз с такимже ником и плагин не срабатывал а игрок получал контроль всех прав админа. В общем много косяков было но скорее всего их все поправили давно.
Но тут возникает вопрос можно ли легче сделать. По идеи можно передавать логин и пароль в аргументы запускатора, но тут возможно будут проблемы со стороны сервера, т.к. серверу необходимо передать этот пароль из клиента и произвести авторизацию. Так что скорей всего данная идея не закатит.
Вижу я, что вы много в этом разбираетесь
помимо своего проекта делал еще к 3м лаунчеры с нуля в т.ч. пара публичных которые до сих пор гдето на рубакките тухнут.
Источник: qna.habr.com
Делаем лаунчер. Что нужно чтобы создать свой лаунчер в Minecraft.
Если вы создаете свои собственные сервера в майнкрафте и хотите заметно упростить жизнь живущим там крафтерам (речь идет об обновлениях) тогда вы зашли именно по теме! Сегодня мы рассмотрим вместе с вами подробно тему о создании сборки (лаунчера) в minecraft самостоятельно. Тогда ваши гости и пользователи без труда смогут скачать необходимые обновления, а также подборки мобов. Более того, вам больше не нужно рассылать сообщения каждому игроку со ссылкой на скачивание.
Что нам нужно
Для начала свой собственный сайт. Да-да, вы не ослышались, вам необходимый свой сайт/площадка для закачивания файлов. Можно попробовать и бесплатные хостинги, но учтите при этом их минусы. Также вам нужны уже ваши знания определенных кодов майнкрафт + особые программы для работы с некоторыми файлами minecraft. Одну из таких можно скачать по ссылке ниже под статьей.
В чем заключается основной принцип собственного лаунчера? В том, что все необходимое, в том числе и «пакеты» заложены в едином всем известном файле minecraft.jar (архив). Займемся далее самим поиском этого архива. Нашли? Откройте его в любой папке и ищите далее файл — вот с таким названием — GameUpdater.class (он нужен для изменения данных).
Откройте его с помощью стандартного редактора: идем на строку http://. Тут-то самое главное. Удалите адрес какого-то старого урла, а после вставьте свой (тот самый новый адрес сайта). Почти готово!
Переходим в админку сайта, а затем в файловый менеджер. Закиньте туда необходимые обновленные файлы для майнкрафта. Вот собственно все. Однако, конечно же, есть другие способы. Они не сильно отличаются друг от друга, но требуют разных «технических» знаний, касающихся не только мира игры.
Еще один подобный способ
- Закачиваем на свой компьютер любой пиратский клиент.
- Смотрим папки, в том числе скрытые с такими же файлами.
- Находим, как и в предыдущем методе, архив minecraft.jar находящийся поблизости с MineCraft_Start.exe
- Открываем далее директорию программы minecraftGameUpdater с расширением class
- Меняем именно в нем строчку старого сайта на ваш новый (ссылку).
- Архивируем все обратно, в единый архив. Это несложно: можно сделать с любым человеческим архиватором на компьютере.
- Помещаем в нужную директорию файлы из bin + вставляем все файлы из полученного архива.
- Наш момент истины настал! Жмем заветный файл загрузки MineCraft_Start.exe, нажимаем все галочки — наш лаунчер в действии и полностью готов к работе.
Лаунчер Minecraft — специально разработанный интерфейс для входа игрока в аккаунт и загрузки клиента игры. Лаунчер автоматически загружает java-пакеты, в том числе и minecraft.jar с основным кодом и ресурсами игры. В этой статье мы расскажем вам, как создать Майнкрафт лаунчер.
Создание лаунчера
Перед тем как создать свой лаунчер Minecraft, вам понадобится предварительно сделать свой сайт и сервер, а также скачать исходники. Исходников существует масса, поэтому качайте любые понравившиеся вам. Также необходимо скачать и установить программу NetBeans , при помощи которой вы будете править код.
- Запустите программу NetBeans. В верхнем правом углу программы нажмите на кнопку «Файл» и в выпадающем списке выберите пункт «Создать проект». В появившемся окне слева нажмите «Java», затем справа «Приложение Java» и нажмите кнопку «Далее». В графе «Имя проекта» введите название, уберите галочку с пункта «Создать главный класс» и нажмите «Готово». В NetBeans в поле проектов кликните правой кнопкой мыши по созданному вами проекту и выберите «Свойства». Выставьте формат исходного файла на JDK 6 и выберите из выпадающего списка кодировку Win1251.
- Откройте папку Мои документы/NetBeans prodject /Название вашего проекта/src и перекиньте все файлы из папки с исходниками (src).
- В NetBeans в корневой папке проекта откройте «launcher run» и нажмите на файл «Settings.java».
- В коде, появившемся в правой части интерфейса программы, измените название лаунчера и адрес домена (ваш сайт). В настройках сервера введите ID, порт и версию клиента. Замените ссылки «Регистрация», «Вспомнить пароль» и «Сайт» на нужные.
Как создать лаунчер с модами
Для того чтобы на вашем сервере можно было установить моды, выставьте значение строки «Public static bolean useModCheck» — true, а «Public static bolean useModsDelete» — false.
Как создать лаунчер с авторизацией
Чтобы при входе игрока происходила автоматическая авторизация, выставьте значение «Public static bolean useAutoenter» — true.
Вы можете править практически весь имеющийся в исходнике код, кроме жизненно важного, из-за изменений которого программа будет «обрушиваться».
Конечно, без знаний элементарных основ программирования вам будет довольно трудно понять, как создать свой лаунчер в Майнкрафт, но вы можете попробовать.
Дополнительную информацию о популярной игре читайте в разделе .
Источник: pzik.ru
Как сделать свой лаунчер для Minecraft и запустить на своем сервере игру?
Админы, владеющие собственными серверами Minecraft, часто сталкиваются с проблемой сборки стабильного лаунчера, который позволит быстро и беспрепятственно скачивать обновления, моды, скины. В рамках данной статьи мы расскажем, как сделать свой лаунчер игры Майкрафт.
Что понадобится для создания лаунчера?
Как известно, лаунчер представляет собой программный интерфейс, облегчающий подключение геймеров к серверу игры. Эти приложения автоматически скачивают необходимые файлы и софт.
Для создания качественного лаунчера для сервера потребуется:
- личный домен, сайт;
- исходники собственного портала;
- клиент программы NetBeans;
- файловый менеджер (не обязательно).
Кроме того, лаунчер должен иметь систему авторизации. Инструкцию о том, как ее добавить, найдете ниже.
Подготовка исходников
- Скачать NetBeans.
- Открываем новую программу, создаем новый проект.
- В новом окне нажать на интерфейс «Java», затем выбрать «Приложение Java».
- Поле «Имя проекта» должно быть заполнено по усмотрению пользователя.
- После ввода названия убрать галочку с пункта «Создание главного класса».
- Кликаем «Готово».
- Перейдите в «Свойства» только что созданного проекта.
- Формат исходного файла следует поменять на «JDK6».
- Рядом установить кодировку «Win1251».
Создание лаунчера для сервера
- В директории «Документы/NetBeans project/«Ваш проект» необходимо разместить все файлы исходника (SRC).
- В корне папки NetBeans (проект) находится каталог «Launcher run», уровнем ниже – файлик «Settings.java», который необходимо открыть редактором кода.
- В правой области окна появится участок с кодом страницы. Придайте лаунчеру и домену собственные наименования.
- В коде с настройками сервера установите корректный ID, порты и версию клиента игры.
- Ссылки «Регистрация» и «Авторизация» можно изменить.
Видео: Как сделать свой лаунчер.
При желании устанавливать моды на сервер рекомендуется проделать следующие манипуляции:
- В редакторе кода NetBeans найти строку «Public static bolean useModCheck».
- Изменить значение параметра на «True».
- Отыскать строку с параметром «Public static bolean useModsDelete».
- Присвоить значение «False».
Как добавить возможность авторизации?
- Найти строку «Public static bolean useAutoenter».
- Дописать значение данного параметра – «True».
Это позволит игрокам автоматически заходить на сервер без ввода логина и пароля.
Дальнейшие манипуляции с кодом можно производить по собственному усмотрению. При этом важно знать значения всех строк, поскольку нежелательные изменения могут привести к отказу лаунчера.
Источник: minecrafter.info