Автономный Java-лаунчер VoidRP — единый fat JAR без внешних зависимостей.
flowchart LR
P(["🧍 java -jar voidrp-launcher.jar"]) --> UI["JavaFX UI<br/>Login · Home · Mods · Account · Settings"]
UI --> AUTH["AuthService<br/>JWT, /me, play-ticket"]
UI --> SYNC["ManifestService + FileSyncService<br/>SHA-256"]
UI --> RT["RuntimeBootstrapService<br/>JavaLocatorService"]
UI --> RUN["GameLaunchService"]
AUTH -- "HTTPS" --> B[("api.void-rp.ru/api/v1")]
SYNC -- "manifest.json + файлы" --> CDN[("void-rp.ru/launcher")]
RT -- "runtime-seed" --> CDN
RUN --> MC["🎮 Minecraft + NeoForge"]
Альтернатива voidrp-launcher-vue для случаев, когда Electron недоступен или нежелателен.
- Единый fat JAR (~56 MB) — не требует установки, достаточно Java 21
- Авторизация через аккаунт VoidRP (play-ticket flow)
- Автообновление модпака — скачивает, проверяет SHA-256 контрольные суммы
- Bootstrap JVM — запускает Minecraft с нужными параметрами
- JavaFX UI — нативный интерфейс без браузера
- Верификация манифеста — каждый файл модпака проверяется по хешу перед запуском
sequenceDiagram
autonumber
actor P as Игрок
participant L as Лаунчер
participant B as Бэкенд
participant C as void-rp.ru/launcher
P->>L: «Играть»
L->>L: найти или скачать Java (runtime-seed)
L->>C: manifest.json
L->>L: сверить файлы по SHA-256, докачать изменённые
L->>B: play-ticket (JWT)
B-->>L: одноразовый билет
L->>L: записать play-ticket.json для auth-bridge
L->>L: запустить Minecraft с NeoForge
| Компонент | Версия |
|---|---|
| Java | 21+ |
| Интернет | доступ к https://void-rp.ru |
cd voidrp-launcher-java
# Сборка fat JAR
./gradlew shadowJar
# → build/libs/voidrp-launcher-1.0.0.jar (~56 MB, версия — из build.gradle)
# тонкий jar без зависимостей после ./gradlew build — voidrp-launcher-1.0.0-plain.jar
# Запуск
java -jar build/libs/voidrp-launcher-1.0.0.jarsrc/main/java/ru/voidrp/launcher/
├── Main.java · App.java точка входа и JavaFX Application
├── config/ AppConfig, LauncherPaths — адреса и папки
├── model/ · model/api/ DTO бэкенда (токены, /me, play-ticket, скины, дашборд), манифест, настройки
├── service/ Auth · Manifest · FileSync · Hash · RuntimeBootstrap · JavaLocator · GameLaunch · Mod · Settings · TokenStore · ApiClient
└── ui/ · ui/views/ MainWindow, экраны Login, Home, Mods, Account, Settings, окно ошибок
JavaFX 21 упакован в fat JAR для Windows, Linux и macOS (Intel и Apple Silicon).
| Репо | Связь |
|---|---|
| minecraft-backend | Auth API, play-ticket endpoint |
| voidrp-launcher-vue | Основной лаунчер (Electron + .NET) |
