Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Совет Запуск Minecraft БЕЗ лаунчера!

вопрос решен. Работает на всех версиях , включая 1.10.2
Батник запуска Майнкрафт Портативный майнкрафт 1.7.10
 
Скажите, пожалуйста, нужно ли передавать какие-то дополнительные параметры клиенту, чтобы играть на сервере с режимом online-mode=true ?
 
твой уид и акестокен.
Передаю, но сервер проверяет некий serverId, который непонятно откуда берется.

Прошерстил веб-часть, но так и не понял, когда сервер узнает о serverId.
UUID и accessToken передаю как-то так:
--uuid d8a616f2-616c-31f0-8122-022a-e265af65 --accessToken 98525dbe-2260-65ff-25fe-5eb4-3c86eb18, все верно делаю?

непонятная ситуация еще в том, что сервер будто и не проверяет валидность игрока, ибо логи Apache пусты.
 
Передаю, но сервер проверяет некий serverId, который непонятно откуда берется.

Прошерстил веб-часть, но так и не понял, когда сервер узнает о serverId.
UUID и accessToken передаю как-то так:
--uuid d8a616f2-616c-31f0-8122-022a-e265af65 --accessToken 98525dbe-2260-65ff-25fe-5eb4-3c86eb18, все верно делаю?

непонятная ситуация еще в том, что сервер будто и не проверяет валидность игрока, ибо логи Apache пусты.
serverId сам создается, его не нужно.
 
serverId сам создается, его не нужно.
Как я понял, процесс входа через ланчер такой:
- проверяется логин и пароль. успех -> генерируется рандомный accessToken и записывается в базу;
- при запуске клиента ланчер дописывает в запись персонажа рандомный serverId;
- при входе сервер проверяет наличие в базе персонажа с определенными UUID, accessToken и serverId
(... WHERE uuid = ..., accesstoken = ..., serverid = ...) и очищает serverId на null.

Откуда сервер берет serverId?

И сервер никуда не стучится! библиотека authlib направлена на мой домен. При использовании ланчера все работает как должно.

Не понимаю даже, на каком этапе процесс срывается.
php-скрипты редактировал так, чтобы они игнорировали serverId, но ничего не вышло. Откатил.
Сейчас скрипты при каждом своем вызове записывают в лог принятые параметры.
Таким образом я и понял, что сервер их и не вызывает, когда без ланчера входить пытаюсь.

Я в замешательстве~
 
Как я понял, процесс входа через ланчер такой:
- проверяется логин и пароль. успех -> генерируется рандомный accessToken и записывается в базу;
- при запуске клиента ланчер дописывает в запись персонажа рандомный serverId;
- при входе сервер проверяет наличие в базе персонажа с определенными UUID, accessToken и serverId
(... WHERE uuid = ..., accesstoken = ..., serverid = ...) и очищает serverId на null.

Откуда сервер берет serverId?

И сервер никуда не стучится! библиотека authlib направлена на мой домен. При использовании ланчера все работает как должно.

Не понимаю даже, на каком этапе процесс срывается.
php-скрипты редактировал так, чтобы они игнорировали serverId, но ничего не вышло. Откатил.
Сейчас скрипты при каждом своем вызове записывают в лог принятые параметры.
Таким образом я и понял, что сервер их и не вызывает, когда без ланчера входить пытаюсь.

Я в замешательстве~
Просто глянь мои скрипты лаунчера и все встанет на свои места.
 
просмотрел скипты, но не хватило мозгов понять, откуда берется serverId. :с
Он не на скриптах генерится. Просто делаешь такие же проверки и все, как у меня. Обновляешь только акестокен перед запуском клиента и все.
 
Сервер генерит serverId и отдает клиенту.
оппа. То есть ланчеру? Значит ланчер должен принять serverId и занести в базу? Это сильно усложняет мои страдания, ибо запускаю на линуксе без ланчера (ланчер только на винду).
 
оппа. То есть ланчеру? Значит ланчер должен принять serverId и занести в базу? Это сильно усложняет мои страдания, ибо запускаю на линуксе без ланчера (ланчер только на винду).
Не лаунчеру, а именно клиенту.
Просто запускаешь клиент передав уид и акестокен, что в базе записан. Остальное все само сделается скриптами j и h. Ну и сам ник.
 
Не лаунчеру, а именно клиенту.
Очень сложно)
Смотри, что я смог вычислить:
  • логинюсь в ланчере;
  • в таблицу токенов заносится новый accessToken;
  • ланчер запускает клиент;
  • в базе появляется пометка serverId;
  • дальше клиент входит на сервер -> serverId из базы удаляется.
Дальше входить на сервер можно сколько угодно раз до перезагузки клиента. перезагрузка сервера не влияет.

На сервере модифицированная база authlib.

Задача пока проста: запустить клиент из bash (получается) и войти на мой сервер (не получается - недопустмая сессия).
Пока не сделаю этого, не смогу написать нормальных ланчер.
 
Очень сложно)
Смотри, что я смог вычислить:
  • логинюсь в ланчере;
  • в таблицу токенов заносится новый accessToken;
  • ланчер запускает клиент;
  • в базе появляется пометка serverId;
  • дальше клиент входит на сервер -> serverId из базы удаляется.
Дальше входить на сервер можно сколько угодно раз до перезагузки клиента. перезагрузка сервера не влияет.

На сервере модифицированная база authlib.

Задача пока проста: запустить клиент из bash (получается) и войти на мой сервер (не получается - недопустмая сессия).
Пока не сделаю этого, не смогу написать нормальных ланчер.
serverId и так динамический, его нет смысла удалять ручками, перезапишется сам.
Задача пока проста: запустить клиент из bash
Укажи валидный акестокен в сшнике и все.
 
serverId и так динамический, его нет смысла удалять ручками, перезапишется сам.

Укажи валидный акестокен в сшнике и все.
serverId удаляется сам, я его не трогаю.

uuid и accessToken передаю, вроде бы, правильно.

Вот часть команды:
[OFFTOP]
--assetsDir assets --assetIndex 1.7.10 --uuid d8a616f2-656c-31f0-8212-021a-e265af65 --accessToken 98525dbe-2260-65ff-25fe-5eb4-3c86eb18 --userProperties {} --userType legacy --tweakClass cpw.mods.fml.common.launcher.FMLTweaker
[/OFFTOP]
 

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

Назад
Верх