Files
BSO-Launcher/README.md
T
MrMahoandClaude Opus 5.5 5fd162fecb Setup-Assistent und Update-Abfrage bei jedem Start
Die heruntergeladene Datei ist ein Setup: Sprache, Ordner (nur ohne Admin-Rechte beschreibbar),
Verknuepfungen, Fortschritt, Fertig-Seite; Ordner steht in der Registry. Deinstallieren loescht im
gewaehlten Ordner nur die eigenen Dateien. Beim Start fragt der Launcher nach neuen Updates
(Launcher und Mod).

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

66 lines
3.7 KiB
Markdown
Raw 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:** Bei jedem Start fragt der Launcher, ob ein neues Update (Launcher oder Mod) installiert werden soll;
dazu neueste Mod-Version vor jedem Spielstart (abschaltbar).
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 # eine .exe, ohne vorinstalliertes .NET
.\release.ps1 -Product launcher -Version 0.1.0 -File publish\BSO-Launcher.exe -Changelog "..."
```
## 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
`new-release-key.ps1` legt einmalig den Schlüssel an (RSA 3072, privater Teil DPAPI-verschlüsselt unter
`%APPDATA%\BSO\release-key.dpapi`) und trägt den öffentlichen Teil in `Services\ReleaseSignature.cs` ein.
`release.ps1` (in jedem BSO-Repo) signiert damit `BSO-RELEASE|produkt|version|sha256` und lädt hoch – braucht
`BSO_RELEASE_TOKEN` (= `RELEASE_TOKEN` der Website) und optional `BSO_MASTER_URL`.
**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\` |