Настройка AuthHandler

Способ memory

UUID получается путем преобразования бинарного представления ника
Каждому нику будет соответствовать ровно один UUID

"auth": [
  "handler": {
    "type": "memory"
  }
]

Способ mysql

Для получения UUID лаунчсервер обращается к базе данных mysql

"auth": [
  "handler": {
    "type": "mysql",
    "mySQLHolder": {
      "address": "localhost",              // адрес mysql сервера
      "port": 3306,                        // порт mysql сервера
      "username": "launchserver",          // имя пользователя
      "password": "password",              // пароль пользователя
      "database": "db?serverTimezone=UTC", // база данных (до ?), после находится установка серверной таймзоны
      "timezone": "UTC"                    // установка клиентской таймзоны
    },
    "table": "users",                      // таблица
    "uuidColumn": "uuid",                  // название столбца с uuid
    "usernameColumn": "username",          // название столбца с именами пользователей
    "accessTokenColumn": "accessToken",    // название столбца с accessToken
    "serverIDColumn": "serverID"           // название столбца с serverID
  }
]

Для автоматического создания нужных полей в таблице и созданию UUID можно воспользоватся следующими SQL запросами:

-- Добавляет недостающие поля в таблицу
-- Замените table на название таблицы
 ALTER TABLE `table`
 ADD COLUMN `uuid` CHAR(36) UNIQUE DEFAULT NULL,
 ADD COLUMN `accessToken` CHAR(32) DEFAULT NULL,
 ADD COLUMN `serverID` VARCHAR(41) DEFAULT NULL;

-- Создаёт триггер на генерацию UUID для новых пользователей
-- Замените table на название таблицы
DELIMITER //
CREATE TRIGGER setUUID BEFORE INSERT ON `table`
FOR EACH ROW BEGIN
IF NEW.uuid IS NULL THEN
SET NEW.uuid = UUID();
END IF;
END; //
DELIMITER ;

-- Генерирует UUID для уже существующих пользователей
-- Замените table на название таблицы
UPDATE `table` SET uuid=(SELECT UUID()) WHERE uuid IS NULL;

Способ request

Для получения и обновления uuid, accessToken, serverID лаунчсервер обращается к сайту по протоколу HTTP/HTTPS
В скобках указаны параметры запроса

"auth": [
  {
    "handler": {
      "type": "request",
      "usernameFetch": "http://gravit.pro/usernameFetch.php",   // получение uuid:accessToken:serverID по имени пользователя (user)
      "uuidFetch": "http://gravit.pro/uuidFetch.php",           // получение username:accessToken:serverID по uuid (uuid)
      "updateAuth": "http://gravit.pro/updateAuth.php",         // скрипт обновления accessToken и uuid по имени пользователя (user, uuid, token)
      "updateServerID": "http://gravit.pro/updateserverID.php", // скрипт обновления serverID по uuid (serverid, uuid)
      "splitSymbol": ":",     // символ разделения в uuidFetch и usernameFetch (например: "username:accessToken:serverID") 
      "goodResponse": "OK"    // ответ updateAuth и updateServerID, когда все прошло успешно
    }
  }
]

Способ json

Способ hibernate

Hibernate — самая популярная реализация спецификации JPA, предназначенная для решения задач объектно-реляционного отображения (ORM)
Для проверки логина и пароля лаунчсервер обращается к любой базе данных
Для подключения к базам данных, в libraries необходимо положить библиотеку для поддержки соответствующей базы данных
Инструкция по настройке Hibernate

"auth": [
  {
    "handler": {
      "type": "hibernate"
    }
  }
]