Пример готовой конфигурации
{
"projectName": "GravitProject",
"mirrors": [
"https://mirror.gravit.pro/",
"https://gravit-launcher-mirror.storage.googleapis.com/"
],
"binaryName": "Launcher",
"copyBinaries": true,
"cacheUpdates": true,
"env": "STD",
"auth": {
"std": {
"isDefault": true,
"core": {
"type": "reject"
},
"textureProvider": {
"skinURL": "http://example.com/skins/%username%.png",
"cloakURL": "http://example.com/cloaks/%username%.png",
"type": "request"
},
"displayName": "Default"
}
},
"sessions": {
"autoDump": false,
"dumpFile": "sessions.json",
"type": "memory"
},
"protectHandler": {
"profileWhitelist": {},
"allowUpdates": [],
"type": "std"
},
"components": {
"regLimiter": {
"message": "Превышен лимит регистраций",
"excludeIps": [],
"exclude": [],
"rateLimit": 3,
"rateLimitMillis": 36000000,
"type": "regLimiter"
},
"authLimiter": {
"message": "Превышен лимит авторизаций",
"exclude": [],
"rateLimit": 3,
"rateLimitMillis": 8000,
"type": "authLimiter"
},
"proguard": {
"modeAfter": "MainBuild",
"dir": "proguard",
"enabled": true,
"mappings": true,
"type": "proguard"
}
},
"launch4j": {
"enabled": true,
"setMaxVersion": false,
"maxVersion": "1.8.999",
"minVersion": "1.8.0",
"downloadUrl": "http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html",
"productName": "GravitLauncher",
"productVer": "5.2.4.4",
"fileDesc": "GravitLauncher 5.2.4",
"fileVer": "5.2.4.4",
"internalName": "Launcher",
"copyright": "© GravitLauncher Team",
"trademarks": "This product is licensed under GPLv3",
"txtFileVersion": "%s, build %d",
"txtProductVersion": "%s, build %d"
},
"netty": {
"fileServerEnabled": true,
"sendExceptionEnabled": false,
"ipForwarding": false,
"disableWebApiInterface": false,
"showHiddenFiles": false,
"launcherURL": "http://localhost:9274/Launcher.jar",
"downloadURL": "http://localhost:9274/%dirname%/",
"launcherEXEURL": "http://localhost:9274/Launcher.exe",
"address": "ws://localhost:9274/api",
"bindings": {},
"performance": {
"usingEpoll": false,
"bossThread": 2,
"workerThread": 8,
"schedulerThread": 2,
"sessionLifetimeMs": 86400000,
"maxWebSocketRequestBytes": 1048576
},
"binds": [
{
"address": "0.0.0.0",
"port": 9274
}
],
"logLevel": "DEBUG"
},
"launcher": {
"guardType": "no",
"compress": true,
"stripLineNumbers": true,
"deleteTempFiles": true,
"certificatePinning": false,
"encryptRuntime": false,
"memoryLimit": 256
},
"sign": {
"enabled": false,
"keyStore": "pathToKey",
"keyStoreType": "JKS",
"keyStorePass": "mypass",
"keyAlias": "myname",
"keyPass": "mypass",
"metaInfKeyName": "SIGNUMO.RSA",
"metaInfSfName": "SIGNUMO.SF",
"signAlgo": "SHA256WITHRSA"
},
"startScript": ".\\start.bat"
}
Описание настроек конфигурации
projectName - название вашего проекта
mirrors - список зеркал, для скачивания файлов игры.
binaryName - Имя бинарника в папке updates. Меняя его не забывайте менять URL скачки
copyBinaries - Помещать ли бинарники в папку updates
env- окружение, влияет на уровень отладочных сообщений
auth - отвечает за авторизацию и отдачу скинов Настройка авторизации
protectHandler - отвечает за выдачу токенов(accessToken)
sessions - отвечает за хранение сессий
components - опциональные компоненты
regLimiter - ограничение регистрации
message: - сообщение в случае превышение лимита
excludeIps
exclude
rateLimit - количество попыток до ограничения
rateLimitMillis - время до снятия ограничения в мс
authLimiter - ограничение количества попыток авторизаций
message - сообщение в случае превышение лимита
exclude - белый список :think:
rateLimit - количество попыток авторизации до ограничения
rateLimitMillis - время до снятия ограничения в мс
proguard - отвечает за обфускацию лаунчера
launch4j - создание EXE из JAR
enabled - включить создание EXE
setMaxVersion - ограничивает версию Java в пределах диапозона версий см. ниже
maxVersion - максимальная версия Java
minVersion - минимальная версия Java
downloadUrl - ссылка для скачивания Java в случае её отсутствия
netty
fileServerEnabled - включить раздачу файлов из updates по http
sendExceptionEnabled - разрешить отправку сообщений об ошибке лаунчсервера на клиент
disableWebApiInterface - отключение /webapi - http запросов к лаунчсерверу
ipForwarding - разрешить проксирование реального IP через HTTP заголовки. Включить если используется проксирование nginx/apache2/cloudflare
showHiddenFiles - разрешает раздачу скрытых файлов
launcherURL - URL для скачивание лаунчера(JAR)
downloadURL - URL для скачивание клиентов и ассетов
launcherEXEURL - URL скачки лаунчера(EXE)
address - адрес WebSocket API, по которому лаунчер будет подключаться
bindings - настройки особых URL для скачивание ассетов/клиентов
performance
usingEpoll - ускоряет работу с множеством соеденений(доступно только для Linux)
bossThread - число потоков на прием соеденений
workerThread - число потоков на обработку запросов
binds - адреса прослушивания сокета(bind)
logLevel - уровень сообщений Netty в логгере slf4j
launcher - настройки лаунчера
guardType - тип нативной защиты AntiInject(см инструкцию к вашей нативной защите)
compress - сжатие итогового файла
stripLineNumbers - включить вырезание отладочной информации
deleteTempFiles - удалять временные файлы в папке build
sign - настройки подписи лаунчера
startScript - Скрипт запуска лаунчсервера(используется только в команде restart)