обновил лаунчер под новую версию веба

This commit is contained in:
2026-10-04 13:19:12 +04:00
parent dd189fe48f
commit d3d19bfaeb
20 changed files with 486 additions and 64 deletions
+27 -3
View File
@@ -1,7 +1,7 @@
# MoonWell Launcher
MoonWell Launcher is the desktop launcher for MoonWell, a private World of
Warcraft: Wrath of the Lich King server focused on a player-friendly experience
Warcraft 1.12.1 server on vMaNGOS, focused on a player-friendly experience
without excessive grind and with stronger social play.
The Windows executable requests administrator privileges on startup so it can
@@ -21,6 +21,7 @@ The launcher is responsible for:
- displaying the live status of the first configured realm
- requesting a single-use game ticket and launching the game client without
putting credentials in command-line arguments
- starting the Rust MoonWell client on Windows and macOS
## Stack
@@ -60,6 +61,11 @@ Set the public AppCast feed URL to enable Windows launcher self-updates:
The updater is disabled when `MOONWELL_APPCAST_URL` is omitted. Production
feeds must use HTTPS.
The game's auth endpoint is read from `realmlist.wtf` in the selected client
folder. For builds that pin an endpoint, set
`--dart-define=MOONWELL_AUTH_ADDRESS=login.example:3724` instead. This endpoint is
the vMaNGOS auth server, separate from the realm's world port and the Web API.
Example run command:
```powershell
@@ -141,8 +147,26 @@ The launcher sync flow is manifest-based:
6. remove stale files outside ignored directories
7. download missing or changed files to temporary part files
8. verify size and SHA-256 before replacing client files
9. request a short-lived game ticket and launch `Wow.exe` from the selected
client directory with authorization in its child environment
9. request a short-lived game ticket for build 5875 and launch MoonWell from the
selected client directory with authorization in its child environment
The selected folder must contain `MoonWell.exe` on Windows, or `MoonWell.app`
on macOS, and your own 1.12.1 data in `Data/` or `WoW/Data/`. macOS launches the
bundle's `Contents/MacOS/launch` directly so the launcher keeps a handle to the
game process. `benilla-config/` stays beside the EXE or `.app`.
The ticket's account and temporary password become `WOW_USER` and `WOW_PASS`;
the launcher also sets `WOW_HOST`, `WOW_DATA`, and `BENILLA_HOME` for that child
only. Launching does not clear the WoW cache or modify `WTF/Config.wtf`.
The ticket is consumed by `realmd` after a successful proof; a new login attempt
requires a fresh ticket from the launcher.
In the local WSL deployment, Web API traffic uses the web service's published
port 8080, while game authorization and the world use ports 3724 and 8085.
The web application writes ticket SRP data to `realmd.launcher_ticket`; the
modified auth server consumes it. No additional web/core endpoint is required.
Distribute the MoonWell executable and the 1.12.1 data in the client manifest
before enabling automatic synchronization for that distribution.
See `docs/launcher_web_api_spec.md` for the API and sync contract.