Das Feld Benutzername wird beim Aktualisieren nicht mehr neu angelegt (Text, Fokus und Cursor bleiben), neu gezeichnet wird nur bei Aenderungen. Beitreten-Knopf bei Freunden mit Lobby und Liste der Freundes-Lobbys. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
- Lobby-Server (ohne Portfreigabe): BSO-Relay
- Website, Konten, Freunde, Lobbys, Releases: 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.--portablestartet 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
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)
BSO-Launcher.exe -dev # nimmt http://localhost:5080 statt https://bso.mbm.wtf
-devbleibt 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\ |