Private
Public Access
1
0
Files
EscapeFromTeacher/cmd/client/storage_native.go

38 lines
964 B
Go

//go:build !js || !wasm
// +build !js !wasm
package main
import (
"crypto/rand"
"encoding/hex"
"io/ioutil"
"log"
)
// 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)
}