twixi / api-authlib-injector

API для Authlib-Injector

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API для Authlib-Injector

Данный API нужен для облегчения привязки сервера и клиента к лаунчеру. Т.к. этот скрипт сделан "из коробки" для DLE, то получайте скрипт на PHP. Я не долбаеб выкладывать исходники нормального API на nodejs, чтобы его потом каждый недо-ютубер выдавал за свой.

Инструкция по установке

  1. Перейти к файлу api_settings.php по пути authlib/_functions/ и настроить его. Не забудьте выполнить SQL запрос (database.sql) в своей базе!

  2. Закинуть папку authlib и textures (без переименовывания, раз вы такие тупые) в корень вашего сайта DLE.

  3. В настрйоках лаунчера указать настройки:

# Настрйока API authlib-injector под лаунчер

authHandler: "authlib-injector";
authHandlerConfig: {
    urlApiInjector: "https://example.com/authlib";
};

authProvider: "authlib-injector";
authProviderConfig: {
    urlApiInjector: "https://example.com/authlib";
};

textureProvider: "authlib-injector";
textureProviderConfig: {
    urlApiInjector: "https://example.com/authlib";
};

ссылка на ваш сайт - https://example.com, где:

  • https - протокол использования сайта (используете ли вы http или https)
  • api.example.com - домен вашего сайта для API
  • Обратите ваше внимание, что / в конце указывать не нужно!
  1. Чтобы привязать игровой сервер к API - нужно скачать сам authlib-injector отсюда, положить в папку с игровым сервером и вписать следующую команду:
java -javaagent:authlib-injector-1.1.40.jar="https://example.com/authlib" -jar minecraft_server.jar

где:

  • authlib-injector-1.1.40.jar - сам файл authlib-injector.jar
  • example.com - домен вашего сайта
  • minecraft_server.jar - файл игрового сервера

Управление скинами и плащами

Так как мне впадлу писать личный кабиент, скин можно спокойно поставить руками в директорию textures. Сделано это не по приколу, а потому что так работает система кеширования в майне. Почему - идите узнавайте у своих "кумиров", которым было на вас срать.

Теперь по порядку:

  1. Идем на сайт сюда
  2. Переносим файл со скином/плащем на надпись "Drop File Here"
  3. Получаем хеш файла. Переименовываем файл в полученный хеш - <hash>.png. Пример названия файла: e5bfc51833b5d38370761c29da7f2e61.png
  4. Переносим файл в папку textures/skins или textures/cloaks (зависит от того, что за файл вы подготовили).
  5. Заходим в sql-базу сайта. В столбцах mc_skin_hash и mc_cloak_hash указываем тот самый хеш файла, который вы положили в папку.
  6. Колонка mc_skin_type отвечает за модельку steve\alex. Если стоит 0 - то будет обычная моделька steve, если 1 - то будет моделька alex с тонкими руками.

Если стоит скин "по умолчанию" ('server_default_skins' => true) и стоит параметр 1 - сервер тоже отдаст модельку alex с женским скином.

Файлы .empty можно удалить. Они нужны просто для того, чтобы GitHub видел директории. Может быть напишу простенький кабинет под это дело, чтобы он закидывал скины и плащи по хешу (майновская реализация). Но я это не обещаю.

Личный комментарий

Чтобы переадресовать со своего сайта example.com на API Authlib Injector, можно добавить в заголовок вашего DLE параметр X-Authlib-Injector-API-Location:

  • X-Authlib-Injector-API-Location: /authlib/ - сервер перейдет на сервер по адресу example.com/authlib/.
  • X-Authlib-Injector-API-Location: https://api.example.com/authlib/ - сервер переадресует на указанный домен.

Лаунчер сервер к сожалению пока не умеет определять данный параметр (мб оно и к лучшему).

P.S. Скрипт может быть немного дырявым, но ишью всегда открыт. И ДА, ПОВТОРЯЮ, ЧТО Я ПИСАЛ ЭТОТ СКРИПТ НА ОТЬЕБИСЬ, ИБО PHP! Я вкурсе как работает архитектура, так что если этим API светят в паблик - это уже не мои проблемы.

Я просто показал, за что ненавижу свою аудиторию и весь РуМайн.

About

API для Authlib-Injector


Languages

Language:PHP 100.0%