Меню Рубрики

Как написать свой лаунчер для minecraft

Тема: Как создать или научится создавать свой простейший лаунчер

Опции темы
Поиск по теме
Отображение

Как создать или научится создавать свой простейший лаунчер

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

С нуля — крайне сложно, не зная соответствующих языков программирования (нет, я не про Паскаль).

Если брать уже что-то готовое за основу — можешь взять исходники какой-нибудь версии лаунчера Сашка (Загугли: k773). Можешь выбрать и исходник с самым приемлемым для твоего глаза дизайном.

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

Главное, что тебе нужно знать — лаунчера недостаточно, чтобы реализовать то, что ты хочешь. По ходу дела поймёшь, чего тебе не хватает. Так сказать, на пару сотен деревянных рублей придётся раскошелиться.

С нуля — крайне сложно, не зная соответствующих языков программирования (нет, я не про Паскаль).

Если брать уже что-то готовое за основу — можешь взять исходники какой-нибудь версии лаунчера Сашка (Загугли: k773). Можешь выбрать и исходник с самым приемлемым для твоего глаза дизайном.

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

Главное, что тебе нужно знать — лаунчера недостаточно, чтобы реализовать то, что ты хочешь. По ходу дела поймёшь, чего тебе не хватает. Так сказать, на пару сотен деревянных рублей придётся раскошелиться.

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

Откровенно говоря, идея у тебя сомнительная родилась. Если так посчитать, то у тебя, помимо достойного железа, ещё должна быть и скорость интернета соответствующая.

Если весь твой проект будет работать за счёт мощности железа, то не стоит забывать, что у тебя 24/7 должно работать железо, не должно быть перебоев в работе интернет-соединения, скорость интернет-соединения должна быть достаточно высокой, чтобы поддерживать стабильную скорость скачивания клиента игры у новых игроков. Ни разу не пытался делать такие вещи на своём же железе, но, как я понимаю, оно будет у тебя выступать, как FTP хост. Это не только странно звучит, но и вызывает ряд сомнений, стоит ли за это браться.

По поводу «раскошелиться» — если тебя не устраивает лаунчер Сашка и ты хочешь купить готовый с какой-никакой защитой, то возникает вопрос — почему ты предпочитаешь потратить деньги на то, что на первое время можно поставить бесплатно, если можно потратить на то, что требует вложений? И, если говорить честно, то нигде не продают готовые сборки лаунчеров с адекватной защитой. А на хорошего разработчика, который сделает всё по красоте — твоего бюджета, скорее всего, не хватит.

Откровенно говоря, идея у тебя сомнительная родилась. Если так посчитать, то у тебя, помимо достойного железа, ещё должна быть и скорость интернета соответствующая.

Если весь твой проект будет работать за счёт мощности железа, то не стоит забывать, что у тебя 24/7 должно работать железо, не должно быть перебоев в работе интернет-соединения, скорость интернет-соединения должна быть достаточно высокой, чтобы поддерживать стабильную скорость скачивания клиента игры у новых игроков. Ни разу не пытался делать такие вещи на своём же железе, но, как я понимаю, оно будет у тебя выступать, как FTP хост. Это не только странно звучит, но и вызывает ряд сомнений, стоит ли за это браться.

По поводу «раскошелиться» — если тебя не устраивает лаунчер Сашка и ты хочешь купить готовый с какой-никакой защитой, то возникает вопрос — почему ты предпочитаешь потратить деньги на то, что на первое время можно поставить бесплатно, если можно потратить на то, что требует вложений? И, если говорить честно, то нигде не продают готовые сборки лаунчеров с адекватной защитой. А на хорошего разработчика, который сделает всё по красоте — твоего бюджета, скорее всего, не хватит.

нет ты меня не понял, я хочу создать 1 рп сервер с модами и плагинами и простой лаунчер у которого задача будет просто установить моды и если моего пк или инета хватать небудет и если на этом сервере будет онлайн не меньше 10-15 человек в день тогда я уже буду думать про хостинг а пока что мне надо создать лаунчер (в ютубе искал, ничего ненашел и написал тут что б узнать как создать ПРОСТОЙ лаунчер(может плохо искал))

Источник статьи: http://minecraftonly.ru/forum/showthread.php?344630-%D0%9A%D0%B0%D0%BA-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B8%D0%BB%D0%B8-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%81%D1%8F-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D1%81%D0%B2%D0%BE%D0%B9-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B5%D0%B9%D1%88%D0%B8%D0%B9-%D0%BB%D0%B0%D1%83%D0%BD%D1%87%D0%B5%D1%80&p=1880178&viewfull=1

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

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

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

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

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

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

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

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

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

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

2. После подключению к одному из серверов — просим ввести пароль через команду (или как в дальнейшем планировалось — в специальном окне).

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

Вижу я, что вы много в этом разбираетесь

Источник статьи: http://qna.habr.com/q/489987

edgi

в слух.

Итак..Приступим!
1 ЧАСТЬ
Скачиваем NetBeans
Скачали, установили&http://edgi.ru/#8230;.
Жмём: Создать проект, дальше жмём Далее, убираем галочку с &http://edgi.ru/#171;Создать главный класс&http://edgi.ru/#187;
Создаём проект!
Сделано&http://edgi.ru/#8230;.
Теперь жмём правой кнопкой по проекту, и кликаем на Свойства.
Справа будет выведен список исходников&http://edgi.ru/#8230;.
Удаляем исходник, и добавляем тот, что мы скачали.Жмём ОК.
Открываем проект, и находим net.minecraft
Первое,что мы будем редактировать, это GameUpdater.java
Находим 170 строчку.

Ссылку меняем на ссылку к загрузке файлов lwjgl.jar, jinput.jar, lwjgl_util.jar, minecraft.jar и windows_natives.jar.lzma

Теперь находим LoginForm.java. 188 строка

Меняем на свою ссылку на файл news.php (новости)
Официальная ссылка на новости: http://mcupdate.tumblr.com/news.php
Дальше на 299 строке ищем:

Меняем на свою ссылку к регистрации&http://edgi.ru/#8230;

И последний класс, это LauncherFrame.java
На 101 строке находим:

Тут меняем ссылку на auth.php файл

Готово&http://edgi.ru/#8230;Жмём правой кнопкой по проекту>>Почистить и построить проект

Далее Выполнить&http://edgi.ru/#8230;ВЫБИРАЕМ ГЛАВНЫЙ КЛАСС: Net.MinecraftLauncher.

Ваш лаунчер находится в папке dist вашего проекта!

Вроде всё готово..теперь надо сделать систему скинов + авторизацию&http://edgi.ru/#8230;

2 ЧАСТЬ
Создаём на сайте папку cpanel
В неё заливаем систему скинов byxar&http://edgi.ru/#8217;а
Залили, настраиваем файл connect.php

Там настраиваем&http://edgi.ru/#8230;всё расписано понятно!

Дальше нам надо будет зайти в вашу БД
Зашли&http://edgi.ru/#8230;Теперь надо залить файлы&http://edgi.ru/#8230;
Жмём Import.В папке системы скинов byxar&http://edgi.ru/#8217;а есть папка sql
Все файлы,которые имеются там, заливаем в БД.

Итак&http://edgi.ru/#8230;У нас есть лаунчер&http://edgi.ru/#8230;.Теперь нам нужно отредактировать клиент, и сервер.
Начнём с Системы Скинов
Нам нужна программа InClassTranslator.
Извлекаем из minecraft.jar файлы(а не папки):

Редактируем в InClassTranslator&http://edgi.ru/#8217;е эти файлы&http://edgi.ru/#8230;
Ищем в классах строки, где есть ссылки на скины&http://edgi.ru/#8230;Их и меняем на свои=)
Потом эти файлы обратно заливаем в minecraft.jar
С системой скинов закончили, Congratulations!

4 часть(вроде последняя)

1 вариант
Нужен InClassTranslator.
Открываем minecraft.jar и заходим в net/minecraft/abm.class (для версии 1.2.3)

Меняем http://session.minecraft.net/game/joinserver.jsp?user=
на

Открываем ваше ядро сервера, то есть bukkit.jar и переходим к net/minecraft/server/ThreadLoginVerifier.c lass

Находим в нём http://session.minecraft.net/game/checkserver.jsp?user=
меняем на

2 вариант
Откройте папку MCP и закиньте клиентскую папку bin и ваше bukkit ядро в папку jars. Теперь В папке MCP запускаем батник Decompile.bat и ждём, пока всё декомпилируется.Потом откройте src\minecraft\net\minecraft\src\NetClien tHandler.java в любом текстовом редакторе и замените

на ссылку к файлу joinserver.php и обязательно оставьте ?user= в конце

Потом откройте src\minecraft_server\net\minecraft\src\T hreadLoginVerifier.java в любом текстовом редакторе и

замените

на ссылку к файлу checkserver.php и обязательно оставьте ?user= в конце

Запускаем батник recompile.bat и reobfuscate.bat. Теперь закиньте файл в папке reobf\minecraft в minecraft.jar и файл в папке reobf\minecraft_server в Ваш(теперь Ваш) баккит. Все, запускайте сервер c параметром online-mode=true и пробуйте.

1 часть второго Туториала.
Сейчас нам понадобится вот этот исходник.
Редактирование самого лаунчера такое же, как и в 1 туториале!
Компилируйте и делайте лаунчер, изменяя свои ссылки.

Теперь, в папку загрузки вашего клиента добавьте файл client.zip
А в этот архив залейте папки, файлы и прочие фигнистики, которые вы используете
То есть, этот файл будет распаковывать папки и файлы, которые вы указали!

Например, я в него залью папку saves и файл ModLoader.txt&http://edgi.ru/#8230;
И эта папка и файл будет скачиваться в вашу папку!

Дополнения:
Убираем пароль в авторизации:
249 строка:

Источник статьи: http://edgi.livejournal.com/154487.html


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

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