64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
//go:build !js || !wasm
|
|
// +build !js !wasm
|
|
|
|
package main
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"encoding/hex"
|
|
"io/ioutil"
|
|
"log"
|
|
"strings"
|
|
)
|
|
|
|
// loadOrCreatePlayerCode lädt oder erstellt einen eindeutigen Spieler-Code (Desktop Version)
|
|
func (g *Game) loadOrCreatePlayerCode() {
|
|
const codeFile = "player_code.txt"
|
|
|
|
// Versuche bestehenden Code zu laden
|
|
if data, err := ioutil.ReadFile(codeFile); err == nil {
|
|
g.playerCode = string(data)
|
|
log.Printf("🔑 Player-Code geladen: %s", g.playerCode)
|
|
return
|
|
}
|
|
|
|
// Erstelle neuen Code (32 Hex-Zeichen = 16 Bytes)
|
|
bytes := make([]byte, 16)
|
|
if _, err := rand.Read(bytes); err != nil {
|
|
log.Fatal("Fehler beim Generieren des Player-Codes:", err)
|
|
}
|
|
g.playerCode = hex.EncodeToString(bytes)
|
|
|
|
// Speichere Code in Datei
|
|
if err := ioutil.WriteFile(codeFile, []byte(g.playerCode), 0644); err != nil {
|
|
log.Fatal("Fehler beim Speichern des Player-Codes:", err)
|
|
}
|
|
|
|
log.Printf("🆕 Neuer Player-Code erstellt: %s", g.playerCode)
|
|
}
|
|
|
|
// loadPlayerName lädt gespeicherten Spielernamen (Desktop Version)
|
|
func (g *Game) loadPlayerName() string {
|
|
const nameFile = "player_name.txt"
|
|
|
|
if data, err := ioutil.ReadFile(nameFile); err == nil {
|
|
name := strings.TrimSpace(string(data))
|
|
if name != "" {
|
|
log.Printf("👤 Spielername geladen: %s", name)
|
|
return name
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// savePlayerName speichert Spielernamen (Desktop Version)
|
|
func (g *Game) savePlayerName(name string) {
|
|
const nameFile = "player_name.txt"
|
|
|
|
if err := ioutil.WriteFile(nameFile, []byte(name), 0644); err != nil {
|
|
log.Printf("⚠️ Fehler beim Speichern des Spielernamens: %v", err)
|
|
} else {
|
|
log.Printf("💾 Spielername gespeichert: %s", name)
|
|
}
|
|
}
|