68 lines
4.1 KiB
Markdown
68 lines
4.1 KiB
Markdown
# ShaCraft Launcher
|
|
|
|
Кроссплатформенный Tauri 2 лаунчер для [ShaCraft](https://shacraft.ru/):
|
|
React/TypeScript интерфейс, Rust — файлы, сеть и запуск процессов.
|
|
|
|
Реализованы подписанная синхронизация Aeronautics, проверка/восстановление
|
|
модов и конфигурации, Java discovery/provisioning, bootstrap Minecraft и
|
|
NeoForge, настройки памяти и ника, обработка установки/запуска/выхода.
|
|
|
|
Вход выполняется через аккаунт ShaCraft — тот же, что на сайте. Игровой ник
|
|
берётся только из подтверждённой привязки Aeronautics, а не из редактируемых
|
|
локальных настроек. Пароли не сохраняются; сессию можно отозвать.
|
|
Microsoft OAuth-модуль сохранён отдельно, но не используется текущим
|
|
сценарием запуска; для его активации потребуются client ID и API approval.
|
|
|
|
## Разработка
|
|
|
|
```bash
|
|
npm ci
|
|
npm run dev
|
|
```
|
|
|
|
Это браузерный preview — он не устанавливает и не запускает игру.
|
|
Для приложения нужен Rust и системные зависимости Tauri:
|
|
|
|
```bash
|
|
npm run tauri:dev
|
|
```
|
|
|
|
## Проверка
|
|
|
|
```bash
|
|
npm test
|
|
npm run build
|
|
cargo test --locked --manifest-path src-tauri/Cargo.toml
|
|
```
|
|
|
|
Build включает строгий TypeScript. GitHub Actions проверяет UI и Rust на
|
|
push/PR; workflow на main-push/ручном запуске собирает Windows x64, Linux x64, macOS Intel
|
|
и Apple Silicon и сохраняет неподписанные артефакты. Релизный оператор
|
|
подписывает проверенные пакеты и metadata локальным ключом; CI его не получает.
|
|
Используемые macOS runners соответствуют [списку GitHub](https://docs.github.com/en/actions/reference/runners/github-hosted-runners).
|
|
|
|
## Обновление лаунчера
|
|
|
|
С версии 0.1.3 настройки содержат проверку обновлений, установку с прогрессом
|
|
и перезапуск. Лаунчер также проверяет новые версии при старте, но устанавливает
|
|
их только по кнопке. Подписи пакета и сведений о версии обязательны.
|
|
Закройте запущенный Minecraft перед установкой обновления.
|
|
|
|
В Linux обновляются AppImage и установленный deb (с версии 0.1.4).
|
|
Для deb система запрашивает права администратора; пароль не передаётся лаунчеру.
|
|
Deb 0.1.3 и ниже нужно один раз обновить вручную до 0.1.4. Dev-бинарник
|
|
обновляется вручную. С версии 0.1.2 нужен ручной переход на новый AppImage.
|
|
Пакеты Windows/macOS
|
|
с этим механизмом ещё требуют публикации и проверки установки.
|
|
|
|
## Навигация
|
|
|
|
- [Архитектура](docs/launcher-architecture.md) — компоненты, данные, IPC.
|
|
- [Trust boundaries](docs/game-trust-boundary.md) — доверенные источники игры.
|
|
- [Manifest](docs/manifest-v1.md) — подписанный контракт модпака.
|
|
- [Обновления](docs/launcher-updates.md) — подпись, публикация и восстановление.
|
|
- [PLAN.md](PLAN.md) — ограничения и следующие шаги.
|
|
- [AGENTS.md](AGENTS.md) — инструкции для следующего разработчика/агента.
|
|
|
|
Не хранить в Git токены, ключи, пользовательские данные или пакеты игры.
|