Настройка HWIDHandler

Способ accept

Принимает любые hwid и никуда их не записывает. Банить не получится

"hwidHandler": {
    "type": "accept"
}

Способ memory

Сохраняет и проверяет hwid в ОЗУ
При остановке лаунчсервера hwid теряются

"hwidHandler": {
    "type": "memory"
}

Способ jsonfile

Сохраняет hwid в файл json

"hwidHandler": {
    "type": "jsonfile",
    "filename": "hwids.json",                 // название файла с hwid
    "banMessage": "Ваш аккаунт заблокирован!" // сообщение, когда забаненный пользователь пытается войти
}

Способ json

Для проверки логина и пароля лаунчсервер обращается к сайту по протоколу HTTP/HTTPS, делает POST запрос с json данными внутри

"hwidHandler": {
    "type": "json",
    "url": "http://gravit.pro/sethwid.php",        // ссылка до скрипта занесения hwid (в базу/etc)
    "urlBan": "http://gravit.pro/banhwid.php",     // ссылка до скрипта бана пользователя
    "urlUnBan": "http://gravit.pro/unbanhwid.php", // ссылка до скрипта разбана пользователя
    "urlGet": "http://gravit.pro/gethwid.php",     // ссылка до скрипта получения hwid
    "apiKey": "none" // секретный ключ, который может проверятся в скрипте, для безопасности
}

Способ mysql

Для проверки hwid лаунчсервер обращается к mysql
Для использования умного сравнения hwid необходимо поменять все "and" на "or" в запросе queryHwids

"hwidHandler": {
     "type": "mysql",

     "mySQLHolder": {
        "address": "localhost",              // адрес mysql сервера
        "port": 3306,                        // порт mysql сервера
        "username": "launchserver",          // имя пользователя
        "password": "password",              // пароль пользователя
        "database": "db?serverTimezone=UTC", // база данных (до ?), после находится установка серверной таймзоны
        "timezone": "UTC"                    // установка клиентской таймзоны
      },

     "queryHwids": "SELECT * FROM `users_hwids` WHERE `totalMemory` = ? and `serialNumber` = ? and `HWDiskSerial` = ? and `processorID` = ? and `macAddr` = ?",           // sql запрос, ? по порядку заменяются параметрами из paramsHwids
     "paramsHwids": [ "%totalMemory%", "%serialNumber%", "%HWDiskSerial%", "%processorID%", "%MAC%" ],                                                                    // параметры sql запроса

     "queryBan": "UPDATE `users_hwids` SET `isBanned` = ? WHERE `totalMemory` = ? and `serialNumber` = ? and `HWDiskSerial` = ? and `processorID` = ? and `macAddr` = ?", // sql запрос, ? по порядку заменяются параметрами из paramsBan
     "paramsBan": [ "%isBanned%", "%totalMemory%", "%serialNumber%", "%HWDiskSerial%", "%processorID%", "%MAC%" ],                                                        // параметры sql запроса

     "tableUsers": "users",                    // таблица с пользователями

     "userFieldHwid": "hwid",                  // название столбца с ID пользователя в таблице с HWIDами
     "userFieldLogin": "username",             // название столбца с именами пользователей

     "tableHwids": "users_hwids",              // таблица с hwid

     "hwidFieldBanned": "isBanned",            // название столбца с значением, забанен ли пользователь
     "hwidFieldTotalMemory": "totalMemory",    // название столбца с количеством ОЗУ пользователя (в байтах)
     "hwidFieldSerialNumber": "serialNumber",  // название столбца с серийным номером компьютера пользователя
     "hwidFieldHWDiskSerial": "HWDiskSerial",  // название столбца с серийным номером жесткого диска пользователя
     "hwidFieldProcessorID": "processorID",    // название столбца с ID процессора пользователя
     "hwidFieldMAC": "macAddr",                // название столбца с MAC адресом сетевой карты пользователя
     
     "compareMode": false,                     // умное сравнение hwid
     "compare": 50,                            // cтепень схожести hwid

     "banMessage": "Ваш аккаунт заблокирован!" // сообщение, когда забаненный пользователь пытается войти
}

В таблице users хранятся данные о пользователях (минимум: ник), в столбце "hwid" хранится id записи в таблице users_hwids
В users_hwids хранятся характеристики компьютеров пользователей

Создать необходимый столбец и таблицу можно запросом

-- Добавляет столбец "hwid", для связи таблицы с users_hwids
-- Замените users на название таблицы
ALTER TABLE `users` ADD `hwid` BIGINT NOT NULL;

-- Создаёт таблицу для хранения характеристик компьютеров пользователей
CREATE TABLE users_hwids (
 id BIGINT(20) NOT NULL AUTO_INCREMENT,
 isBanned tinyint(1) NOT NULL DEFAULT '0',
 totalMemory text NOT NULL,
 serialNumber text NOT NULL,
 HWDiskSerial text NOT NULL,
 processorID text NOT NULL,
 macAddr text NOT NULL,
 PRIMARY KEY (id)
)