Authlib-injector¶
authlib-injector — это библиотека, позволяющая подменить адреса серверов авторизации и сессии в Authlib, не модифицируя непосредственно саму библиотеку. Выполнена как javaagent.
Данная библиотека значительно упрощает установку альтернативных сервисов авторизации в игровой клиент и сервер, поскольку она универсально применяет трансформацию в процессе работы программы.
Скачать последнюю версию можно со страницы релизов на GitHub.
Здесь приведена документация к ключевым аспектам установки и использования библиотеки. Для более подробной информации обратитесь к оригинальной документации на китайском языке.
Установка в игровой клиент¶
Внимание
Обратите внимание, что этот раздел описывает установку authlib-injector в игру. Игровой лаунчер по-прежнему должен самостоятельно реализовать процесс авторизации, чтобы после передать accessToken
в игру.
Для применения библиотеки, необходимо указать её в качестве javaagent для игры. Сделать это можно, добавив в начало команды запуска игры строку -javaagent:/путь/до/файла/authlib-injector.jar=ely.by
. В результате изменений строка запуска игры должна выглядеть следующим образом:
java -javaagent:/путь/до/файла/authlib-injector.jar=ely.by -jar minecraft.jar
Если вы запускаете игру через лаунчер, то в его настройках необходимо найти поле для указания дополнительных аргументов JVM, куда необходимо в самое начало вставить строку, приведённую выше.
Установка на сервер¶
Также как и в случае с игровым клиентом, библиотеку необходимо указать в качестве javaagent. Скачайте библиотеку и поместите её в директорию с сервером. После этого добавьте вызов javaagent в команду запуска сервера:
java -jar minecraft_server.jar
java -javaagent:authlib-injector.jar=ely.by -jar minecraft_server.jar
При запуске сервера вы должны увидеть сообщение об активации authlib-injector:
BungeeCord¶
authlib-injector должен быть установлен непосредственно на сам BungeeCord, а также на все сервера позади него. Обратите внимание на конфигурацию параметра online‑mode:
В конфигурации BungeeCord (
config.yml
) должно стоять значениеonline_mode=true
.В конфигурации всех серверов позади прокси (
server.properties
) должно быть указано значениеonline-mode=false
.
Благодаря такой конфигурации установки, авторизация будет работать для всех входящих игроков, а на внутренних серверах будут корректно отображаться скины игроков.
LaunchHelper¶
Не все игровые хостинги позволяют напрямую модифицировать аргументы, с которыми запускается сервер. Чтобы обойти это ограничение, можно использовать специальный сервер, который запускает игровой сервер, подмешивая туда authlib-injector. Для установки следуйте инструкции:
Скачайте версию LaunchHelper для вашей операционной системы со страницы загрузок.
Загрузите скачанный файл и файл
authlib-injector.jar
в папку сервера на вашем хостинге.Там же создайте файл
launchhelper.properties
и поместите в него следующее содержимое: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.