- theme: MinecraftTheme — dark palette with green accents - components: ServerCard, ProgressBar, PlayButton, SettingsButton, LogoutButton, AvatarImage - screens: MainScreen (BorderLayout: sidebar + center + bottom bar), LoginScreen (modal form), SettingsScreen (RAM slider + JVM args) - ui.Launch: wires theme, session, settings into Fyne app - main.go: delegates to ui.Launch, loads config - fix: nil-session guard in MainScreen username display Co-Authored-By: OWL <noreply@anthropic.com>
46 lines
978 B
Go
46 lines
978 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
"gitea.mrixs.me/Mrixs/MrixsCraft-launcher/internal/auth"
|
|
"gitea.mrixs.me/Mrixs/MrixsCraft-launcher/internal/config"
|
|
"gitea.mrixs.me/Mrixs/MrixsCraft-launcher/internal/ui"
|
|
)
|
|
|
|
// version is set via -ldflags at build time.
|
|
var version = "dev"
|
|
|
|
func main() {
|
|
log.Printf("MrixsCraft Launcher %s", version)
|
|
|
|
root, err := config.EnsureRoot()
|
|
if err != nil {
|
|
log.Fatalf("Failed to initialise data directory: %v", err)
|
|
}
|
|
log.Printf("Data directory: %s", root)
|
|
|
|
settings, err := config.Load()
|
|
if err != nil {
|
|
log.Fatalf("Failed to load settings: %v", err)
|
|
}
|
|
|
|
client, err := auth.NewFromConfig()
|
|
if err != nil {
|
|
log.Fatalf("Failed to create auth client: %v", err)
|
|
}
|
|
|
|
sess, err := client.EnsureValid()
|
|
if err != nil {
|
|
log.Printf("Session check failed: %v", err)
|
|
}
|
|
|
|
if sess != nil {
|
|
log.Printf("Logged in as %s", sess.Username)
|
|
} else {
|
|
log.Println("No valid session — login required")
|
|
}
|
|
|
|
ui.Launch(client, sess, settings)
|
|
}
|