Files
MrMahoandClaude Opus 5.5 c7a30e7fa3 Auto-Update wie beim MSCO Launcher
Beim Start installiert sich ein neuer Launcher sofort selbst (Fortschrittsfenster, Neustart), neue
BSO-Versionen kommen nach dem Anmelden - beides abschaltbar. Einstellungen: Nach Updates suchen /
Installieren und neu starten. Updates wieder nur von der Website; dotnet publish laedt hoch (release.ps1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:19:48 +01:00

74 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BSO Launcher
Launcher für **BSO – Bus Simulator Online** (Multiplayer-Mod für Bus-Simulator 2012), aufgebaut wie der MSCO Launcher:
WinForms-Fenster mit WebView2, die Oberfläche (`ui\`) ist in der .exe eingebettet.
- Mod: [BSO-Mod](https://git.mbm.wtf/MrMaho/BSO-Mod)
- Lobby-Server (ohne Portfreigabe): [BSO-Relay](https://git.mbm.wtf/MrMaho/BSO-Relay)
- Website, Konten, Freunde, Lobbys, Releases: [BSO-Website](https://git.mbm.wtf/MrMaho/BSO-Website)
## Features
- **Setup-Assistent:** Die heruntergeladene `BSO-Launcher-Setup.exe` (dieselbe signierte Datei wie der Launcher) fragt nach
Sprache, Ordner (Standard `%LocalAppData%\Programs\BSO Launcher`, nur Ordner ohne Admin-Rechte) und Verknüpfungen
(Desktop, Startmenü), installiert mit Fortschrittsanzeige und trägt sich unter *Einstellungen → Apps* ein. Ist dieselbe
oder eine neuere Version installiert, bietet es Starten an. `--portable` startet ohne Installation.
- **BSO-Konto:** Registrieren und Anmelden bei der BSO-Website. Die Anmeldung bleibt 30 Tage (Token DPAPI-verschlüsselt).
Der Kontoname ist der Name im Spiel.
- **Auto-Update (wie MSCO):** Beim Start installiert sich ein neuer Launcher sofort selbst und startet neu; neue Mod-
Versionen kommen beim Start und vor jedem Spielstart (beides abschaltbar). Einstellungen: *Nach Updates suchen*.
Downloads sind fortsetzbar, SHA-256-geprüft und müssen mit dem **BSO-Release-Schlüssel signiert** sein.
- **Prüft alles:** Spielordner (alle Steam-Bibliotheken), BSO-Version, .NET 10 Runtime (braucht die Mod).
- **Freunde & Lobby:** Freunde per Benutzername hinzufügen (online-Anzeige), Lobby erstellen, einladen - SPIELEN des Erstellers startet den Lobby-Server.
Der Server läuft im BSO-Relay – niemand hostet, niemand braucht eine Portfreigabe.
- **SPIELEN:** holt ein Spiel-Ticket (in der Lobby: für deren Server) und die Relay-Adresse, schreibt beides in
`BSO.json`, startet Bus-Simulator 2012 über Steam und verbindet automatisch.
- **Mod herunterladen** holt jederzeit die neueste Mod.
- Neuigkeiten (Changelogs), Einstellungen, Deinstallieren.
## Bauen und veröffentlichen
```powershell
dotnet publish -c Release -o publish # bauen - und die neue Version gleich auf https://bso.mbm.wtf laden
```
Wie bei MSCO: `dotnet publish` ruft `release.ps1` auf – signiert die .exe und lädt sie mit Changelog (Abschnitt
`## <Version>` aus `CHANGELOG.md`) auf die Website. Gibt es die Version schon, passiert nichts; also Version in der
`.csproj` erhöhen und bauen. `BSO_NO_RELEASE=1` baut nur. Der Launcher holt seine Updates von der Website.
## Gegen die lokale Test-Website (`-dev`)
```powershell
BSO-Launcher.exe -dev # nimmt http://localhost:5080 statt https://bso.mbm.wtf
```
- `-dev` bleibt beim Selbst-Installieren und beim Selbst-Update erhalten; die installierte Kopie startet man genauso:
`"%LocalAppData%\Programs\BSO Launcher\BSO-Launcher.exe" -dev`.
- Eigene Anmeldung (`settings.dev.json`) – Test- und echtes Konto kommen sich nicht in die Quere.
- Gelbes **DEV**-Schild in der Titelleiste, im Fenstertitel und unter dem Anmelden-Formular steht die Adresse.
- Beliebiger anderer Server: Umgebungsvariable `BSO_LAUNCHER_API` (geht vor `-dev`).
Lokale Website starten: im BSO-Website-Repo `dotnet run --urls http://localhost:5080`.
## Release-Schlüssel
Geheimnisse liegen DPAPI-verschlüsselt unter `%USERPROFILE%\.bso\` (wie `.msco` bei MSCO):
| | Datei | Einrichten |
|---|---|---|
| Release-Token (`RELEASE_TOKEN` der Website) | `release-token.dpapi` | `release.ps1 -SaveToken` (oder `BSO_RELEASE_TOKEN`) |
| Signier-Schlüssel (RSA 3072) | `release-signing-key.dpapi` | `release.ps1 -ImportSigningKey <sicherung>` |
Sicherung: `release.ps1 -ExportSigningKey <datei>` (AES-256, eigenes Passwort). Ein ganz neues Paar nur im Notfall:
`new-release-key.ps1` (trägt den öffentlichen Teil in `Services\ReleaseSignature.cs` ein).
**Den Schlüssel sichern:** Mit einem neuen Schlüssel erkennen bereits verteilte Launcher keine Updates mehr.
## Daten
| Was | Wo |
|---|---|
| Einstellungen, Anmeldung | `%LocalAppData%\BSO Launcher\settings.json` |
| Protokoll | `%LocalAppData%\BSO Launcher\launcher.log` |
| Mod | `<Spielordner>\Bin_High_Win64\dinput8.dll` und `BSO\` |