Add an article about authlib-injector
BIN
source/_static/authlib-injector/launcher-jvm-options.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
source/_static/authlib-injector/server-startup-messages.png
Normal file
After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
83
source/en/authlib-injector.rst
Normal file
@ -0,0 +1,83 @@
|
||||
Authlib-injector
|
||||
----------------
|
||||
|
||||
**authlib-injector** is a library that allows you to spoof authorization and session server addresses in the Authlib, without modifying the library itself. It's designed as an javaagent.
|
||||
|
||||
This library significantly simplifies the installation of an alternative authorization service in the game client and server, since transformation occurs during application bootstrap process.
|
||||
|
||||
You can download the latest version from the `releases page on GitHub <https://github.com/yushijinhun/authlib-injector/releases/latest>`_.
|
||||
|
||||
Here is the documentation of the key aspects of installing and using the library. For more information, see the `original documentation in Chinese <https://github.com/yushijinhun/authlib-injector/wiki>`_.
|
||||
|
||||
.. _client:
|
||||
|
||||
Installing in a game client
|
||||
===========================
|
||||
|
||||
.. attention:: This section describes how to install the authlib-injector into the game. The game launcher still needs to implement the authorization flow itself in order to pass the ``accessToken`` to the game.
|
||||
|
||||
To install the library, you need to specify it as a javaagent for the game. You can do this by prepending the line ``-javaagent:/path/to/file/authlib-injector.jar=ely.by`` as a game launching param. As the result, the launch command should look like this:
|
||||
|
||||
.. code-block::
|
||||
|
||||
java -javaagent:/path/to/file/authlib-injector.jar=ely.by -jar minecraft.jar
|
||||
|
||||
If you run the game through a launcher, then in its settings you need to find a field for specifying additional JVM arguments, in which you need to insert the line above at the beginning.
|
||||
|
||||
.. figure:: ../_static/authlib-injector/launcher-jvm-options.png
|
||||
:align: center
|
||||
:alt: Editing JVM arguments
|
||||
|
||||
.. _server:
|
||||
|
||||
Installing on a server
|
||||
======================
|
||||
|
||||
Just as in the case with the game client, the library must be specified as javaagent. `Download the library <https://github.com/yushijinhun/authlib-injector/releases/latest>`_ and put in the server's directory. Then add the javaagent call to the server launch command:
|
||||
|
||||
| Before: ``java -jar minecraft_server.jar``
|
||||
| After: ``java -javaagent:authlib-injector.jar=ely.by -jar minecraft_server.jar``
|
||||
|
||||
During server startup you should see a message about the activation of the authlib-injector:
|
||||
|
||||
.. figure:: ../_static/authlib-injector/server-startup-messages.png
|
||||
:align: center
|
||||
:alt: Message at server startup
|
||||
|
||||
BungeeCord
|
||||
~~~~~~~~~~
|
||||
|
||||
The authlib-injector must be installed directly on the BungeeCord itself, as well as **on all backends** behind it. Note the configuration of the online-mode parameter:
|
||||
|
||||
* The BungeeCord's configuration (``config.yml``) should contain ``online_mode=true``;
|
||||
* The servers behind the proxy must contain in their configuration (``server.properties``) the value ``online-mode=false``.
|
||||
|
||||
Using such configuration authorization will work for all logging in players and the internal servers will correctly display player skins.
|
||||
|
||||
LaunchHelper
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Not all game hostings allow direct modifications of launch arguments. To get around this limitation, you can use a special server that runs the game server by mixing authlib-injector into it. To install, follow these instructions:
|
||||
|
||||
#. Download the corresponding LaunchHelper for your operating system from the `releases page <https://github.com/Codex-in-somnio/LaunchHelper/releases/latest>`_.
|
||||
|
||||
#. Upload this file and the ``authlib-injector.jar`` file to the server folder on your hosting site.
|
||||
|
||||
#. Also create a ``launchhelper.properties`` file and put the following contents into it:
|
||||
|
||||
.. code-block::
|
||||
|
||||
javaAgentJarPath=authlib-injector.jar
|
||||
javaAgentOptions=ely.by
|
||||
execJarPath=minecraft_server.jar
|
||||
|
||||
Where ``javaAgentJarPath`` contains the path to the authlib-injector.jar file and ``execJarPath`` contains the name of the server file.
|
||||
|
||||
#. In the hosting control panel, specify the ``LaunchHelper.jar`` as the server file.
|
||||
|
||||
If you can't change the executable file, you should rename the ``LaunchHelper.jar`` file to match your hosting requirements (usually, ``server.jar``). In this case, you should have the following file structure:
|
||||
|
||||
* ``server.jar`` - the LaunchHelper file.
|
||||
* ``minecraft_server.jar`` - your server core.
|
||||
* ``authlib-injector.jar`` - the authlib-injector file.
|
||||
* ``launchhelper.properties`` - the configuration file for the LaunchHelper.
|
83
source/ru/authlib-injector.rst
Normal file
@ -0,0 +1,83 @@
|
||||
Authlib-injector
|
||||
----------------
|
||||
|
||||
**authlib-injector** — это библиотека, позволяющая подменить адреса серверов авторизации и сессии в Authlib, не модифицируя непосредственно саму библиотеку. Выполнена как javaagent.
|
||||
|
||||
Данная библиотека значительно упрощает установку альтернативных сервисов авторизации в игровой клиент и сервер, поскольку она универсально применяет трансформацию в процессе работы программы.
|
||||
|
||||
Скачать последнюю версию можно со `страницы релизов на GitHub <https://github.com/yushijinhun/authlib-injector/releases/latest>`_.
|
||||
|
||||
Здесь приведена документация к ключевым аспектам установки и использования библиотеки. Для более подробной информации обратитесь к `оригинальной документации на китайском языке <https://github.com/yushijinhun/authlib-injector/wiki>`_.
|
||||
|
||||
.. _client:
|
||||
|
||||
Установка в игровой клиент
|
||||
==========================
|
||||
|
||||
.. attention:: Обратите внимание, что этот раздел описывает установку authlib-injector в игру. Игровой лаунчер по-прежнему должен самостоятельно реализовать процесс авторизации, чтобы после передать ``accessToken`` в игру.
|
||||
|
||||
Для применения библиотеки, необходимо указать её в качестве javaagent для игры. Сделать это можно, добавив в начало команды запуска игры строку ``-javaagent:/путь/до/файла/authlib-injector.jar=ely.by``. В результате изменений строка запуска игры должна выглядеть следующим образом:
|
||||
|
||||
.. code-block::
|
||||
|
||||
java -javaagent:/путь/до/файла/authlib-injector.jar=ely.by -jar minecraft.jar
|
||||
|
||||
Если вы запускаете игру через лаунчер, то в его настройках необходимо найти поле для указания дополнительных аргументов JVM, куда необходимо в самое начало вставить строку, приведённую выше.
|
||||
|
||||
.. figure:: ../_static/authlib-injector/launcher-jvm-options.png
|
||||
:align: center
|
||||
:alt: Редактирование аргументов JVM
|
||||
|
||||
.. _server:
|
||||
|
||||
Установка на сервер
|
||||
===================
|
||||
|
||||
Также как и в случае с игровым клиентом, библиотеку необходимо указать в качестве javaagent. `Скачайте библиотеку <https://github.com/yushijinhun/authlib-injector/releases/latest>`_ и поместите её в директорию с сервером. После этого добавьте вызов javaagent в команду запуска сервера:
|
||||
|
||||
| До: ``java -jar minecraft_server.jar``
|
||||
| После: ``java -javaagent:authlib-injector.jar=ely.by -jar minecraft_server.jar``
|
||||
|
||||
При запуске сервера вы должны увидеть сообщение об активации authlib-injector:
|
||||
|
||||
.. figure:: ../_static/authlib-injector/server-startup-messages.png
|
||||
:align: center
|
||||
:alt: Сообщение при запуске сервера
|
||||
|
||||
BungeeCord
|
||||
~~~~~~~~~~
|
||||
|
||||
authlib-injector должен быть установлен непосредственно на сам BungeeCord, а также **на все сервера** позади него. Обратите внимание на конфигурацию параметра online‑mode:
|
||||
|
||||
* В конфигурации BungeeCord (``config.yml``) должно стоять значение ``online_mode=true``.
|
||||
* В конфигурации всех серверов позади прокси (``server.properties``) должно быть указано значение ``online-mode=false``.
|
||||
|
||||
Благодаря такой конфигурации установки, авторизация будет работать для всех входящих игроков, а на внутренних серверах будут корректно отображаться скины игроков.
|
||||
|
||||
LaunchHelper
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Не все игровые хостинги позволяют напрямую модифицировать аргументы, с которыми запускается сервер. Чтобы обойти это ограничение, можно использовать специальный сервер, который запускает игровой сервер, подмешивая туда authlib-injector. Для установки следуйте инструкции:
|
||||
|
||||
#. Скачайте версию LaunchHelper для вашей операционной системы со `страницы загрузок <https://github.com/Codex-in-somnio/LaunchHelper/releases/latest>`_.
|
||||
|
||||
#. Загрузите скачанный файл и файл ``authlib-injector.jar`` в папку сервера на вашем хостинге.
|
||||
|
||||
#. Там же создайте файл ``launchhelper.properties`` и поместите в него следующее содержимое:
|
||||
|
||||
.. code-block::
|
||||
|
||||
javaAgentJarPath=authlib-injector.jar
|
||||
javaAgentOptions=ely.by
|
||||
execJarPath=minecraft_server.jar
|
||||
|
||||
Где ``javaAgentJarPath`` содержит путь до файла authlib-injector.jar, а ``execJarPath`` содержит имя файла сервера.
|
||||
|
||||
#. В панели управления хостингом укажите ``LaunchHelper.jar`` в качестве запускаемого файла сервера.
|
||||
|
||||
Если возможности указать исполнимый файл явно нет, то следует переименовать файл ``LaunchHelper.jar`` в соответствие с требованиями вашего хостинга (обычно, это ``server.jar``). В этом случае у вас должна получиться следующая структура файлов:
|
||||
|
||||
* ``server.jar`` - файл LaunchHelper.
|
||||
* ``minecraft_server.jar`` - предпочитаемое ядро сервера.
|
||||
* ``authlib-injector.jar`` - файл authlib-injector.
|
||||
* ``launchhelper.properties`` - файл конфигурации для LaunchHelper.
|
@ -261,6 +261,8 @@ accessToken. Вам остаётся только заменить пути вн
|
||||
Готовые библиотеки authlib
|
||||
==========================
|
||||
|
||||
.. attention:: Ely.by поддрживает библиотеку authlib-injector. Это наиболее простой и универсальный способ установки системы авторизации в игру и игровые сервера. За подробностями обратитесь в :doc:`соответствующий раздел документации <authlib-injector>`.
|
||||
|
||||
Поскольку самостоятельная реализация связана с трудностями поиска исходников, подключения зависимостей и в конце-концов
|
||||
с процессом компиляции, на `странице загрузок нашей системы скинов <//ely.by/load>`_ вы можете загрузить уже
|
||||
готовые библиотеки со всеми необходимыми изменениями. Выберите в выпадающем списке необходимую версию и следуйте
|
||||
@ -269,9 +271,9 @@ accessToken. Вам остаётся только заменить пути вн
|
||||
В более ранних версиях игры система скинов находилась внутри игрового клиента, так что библиотеки ниже обеспечивают
|
||||
лишь авторизацию:
|
||||
|
||||
* Minecraft 1.7.5 - :download:`authlib 1.3.1 <_static/minecraft-auth/authlib/authlib-1.3.1.jar>`
|
||||
* Minecraft 1.7.5 - :download:`authlib 1.3.1 <../_static/minecraft-auth/authlib/authlib-1.3.1.jar>`
|
||||
|
||||
* Minecraft 1.7.2 - :download:`authlib 1.3 <_static/minecraft-auth/authlib/authlib-1.3.jar>`
|
||||
* Minecraft 1.7.2 - :download:`authlib 1.3 <../_static/minecraft-auth/authlib/authlib-1.3.jar>`
|
||||
|
||||
Для установки вам необходимо заменить оригинальную библиотеку, располагающуюся по пути
|
||||
``<директория установки minecraft>/libraries/com/mojang/authlib/``. Убедитесь в том, что версии скачанного и заменяемого
|
||||
@ -298,9 +300,9 @@ authlib для соответствующей версии сервера. Пе
|
||||
Вам необходимо "перетащить" из архива с authlib все файлы и папки, **за исключением директории META-INF**, и подтвердить
|
||||
замену.
|
||||
|
||||
.. figure:: _static/minecraft-auth/authlib-install.png
|
||||
.. figure:: ../_static/minecraft-auth/authlib-install.png
|
||||
:align: center
|
||||
:alt: Процесс установки authlib.
|
||||
:alt: Процесс установки Authlib
|
||||
|
||||
Обратите внимание: "перетягивать" содержимое нужно ниже папок сервера (в область файлов .class).
|
||||
|
||||
@ -338,6 +340,8 @@ Paper (PaperSpigot)
|
||||
BungeeCord
|
||||
==========
|
||||
|
||||
.. hint:: Вы можете воспользоваться библиотекой :doc:`authlib-injector <authlib-injector>` для установки системы авторизации без модификации внутренностей сервера.
|
||||
|
||||
Хотя BungeeCord и является проксирующим сервером, авторизацию игроков он выполняет самостоятельно. К сожалению, BungeeCord не опирается на использование Authlib, а реализует процесс авторизации самостоятельно, поэтому для установки системы авторизации Ely.by вам понадобится модифицировать скомпилированные ``.class`` файлы.
|
||||
|
||||
Для установки следуйте инструкции ниже:
|
||||
@ -352,13 +356,13 @@ BungeeCord
|
||||
|
||||
#. Откройте распакованный файл в программе InClassTranslator и замените в нём строку ``https://sessionserver.mojang.com/session/minecraft/hasJoined?username=`` на ``https://authserver.ely.by/session/hasJoined?username=``, как показано на рисунке ниже:
|
||||
|
||||
.. figure:: _static/minecraft-auth/bungeecord_inclasstranslator.png
|
||||
.. figure:: ../_static/minecraft-auth/bungeecord_inclasstranslator.png
|
||||
:align: center
|
||||
:alt: Редактирование в InClassTranslator
|
||||
|
||||
#. Сохраните изменения и перетащите измененный файл обратно в архив сервера. Подтвердите замену.
|
||||
|
||||
.. figure:: _static/minecraft-auth/bungeecord_move.png
|
||||
.. figure:: ../_static/minecraft-auth/bungeecord_move.png
|
||||
:align: center
|
||||
:alt: Перетаскивание отредактированного файла назад в архив
|
||||
|
||||
@ -404,7 +408,7 @@ Minecraft. Переписывать его сюда не имеет смысла
|
||||
Дальше запустите InClassTranslator и в нём откройте этот класс. Слева будет список найденных в файле строк, которые вы
|
||||
можете изменить. Нужно заменить только строку, отвечающую за запрос на подключение к серверу:
|
||||
|
||||
.. figure:: _static/minecraft-auth/installing_by_inclasstranslator.png
|
||||
.. figure:: ../_static/minecraft-auth/installing_by_inclasstranslator.png
|
||||
:align: center
|
||||
:alt: Порядок редактирования: выбрать нужную строку, изменить, сохранить.
|
||||
|
||||
|