Wires up the actual game pipeline behind the existing ShaCraft manifest sync: Mojang version resolution, Java 21 auto-provisioning via Adoptium, headless NeoForge installation, real Microsoft/Xbox/Minecraft Services login, and an offline account mode, then builds and spawns the java process itself. - mojang.rs: vanilla trust boundary, inheritsFrom version-JSON merge, asset/library downloading with a worker pool and per-file retries - neoforge.rs: runs NeoForge's own installer headlessly, with live progress parsed from its output against its own install_profile.json - runtime.rs / java.rs: detects a usable local Java or provisions one from Eclipse Temurin, with real download progress - msa.rs: device-code OAuth -> Xbox Live -> XSTS -> Minecraft Services, gated on ShaCraft registering its own Azure AD app (see MSA_CLIENT_ID) - session.rs / launch.rs: offline deterministic UUIDs and the merged java invocation itself - download.rs: shared verified-download helper (temp file, hash, atomic rename, retries, progress) used across all of the above and refactored into profile.rs - UI: account mode toggle (Microsoft/offline), login modal, and real per-stage install progress instead of start/done placeholders
42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
# ShaCraft Launcher
|
|
|
|
Кроссплатформенный лаунчер для сети Minecraft-серверов ShaCraft.
|
|
|
|
Сейчас реализовано:
|
|
|
|
- интерактивный интерфейс профилей и настроек;
|
|
- Tauri 2 native shell с безопасной командой `native_host`;
|
|
- сохранение памяти профиля в локальном каталоге данных приложения;
|
|
- безопасное обнаружение установленной Java (включая `JAVA_HOME`) перед запуском;
|
|
- интеграция с фиксированным ShaCraft launcher v2 manifest для Aeronautics;
|
|
- адаптивное окно для Windows, Linux и macOS;
|
|
- вход через настоящий аккаунт Microsoft (без него игра не устанавливается
|
|
и не запускается — так владение игрой проверяется по-настоящему);
|
|
- установка Minecraft и NeoForge версии, которую задаёт manifest, и запуск
|
|
игры.
|
|
|
|
## Локальная разработка
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Для нативного приложения нужен Rust:
|
|
|
|
```bash
|
|
npm run tauri:dev
|
|
```
|
|
|
|
На Ubuntu для сборки Tauri также потребуются системные пакеты WebKit/GTK и
|
|
DBus development headers. Их установка описана в официальной документации
|
|
Tauri и требует прав администратора.
|
|
|
|
## Статус
|
|
|
|
Вход через Microsoft, установка и запуск Aeronautics уже работают. Вход
|
|
через Microsoft пока не активен на боевой сборке: нужна собственная
|
|
регистрация приложения ShaCraft в Azure AD и её одобрение Microsoft для
|
|
доступа к Minecraft API — см. комментарий к `MSA_CLIENT_ID` в
|
|
`src-tauri/src/msa.rs`.
|