Private
Public Access
1
0

add hot Chunk reload
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 2m27s

This commit is contained in:
Sebastian Unterschütz
2025-11-30 12:33:04 +01:00
parent 9e1fb7e9df
commit a05e79f0d1
4 changed files with 124 additions and 123 deletions

View File

@@ -63,25 +63,37 @@ func initGameConfig() {
}
log.Println("✅ Config mit Powerups geladen")
loadChunksFromRedis()
defaultConfig.Chunks = loadChunksFromRedis()
}
func loadChunksFromRedis() {
// Gleiche Logik wie im Handler, aber speichert es in die globale Variable
func loadChunksFromRedis() []ChunkDef {
if rdb == nil {
return
} // Falls Redis noch nicht da ist
ids, _ := rdb.SMembers(ctx, "config:chunks:list").Result()
sort.Strings(ids) // WICHTIG
var chunks []ChunkDef
for _, id := range ids {
val, _ := rdb.Get(ctx, "config:chunks:data:"+id).Result()
var c ChunkDef
json.Unmarshal([]byte(val), &c)
chunks = append(chunks, c)
return []ChunkDef{}
}
defaultConfig.Chunks = chunks
log.Printf("📦 %d Custom Chunks geladen", len(chunks))
ids, err := rdb.SMembers(ctx, "config:chunks:list").Result()
if err != nil {
log.Println("Redis: Keine Chunks geladen")
return []ChunkDef{}
}
sort.Strings(ids)
var loadedChunks []ChunkDef
for _, id := range ids {
val, err := rdb.Get(ctx, "config:chunks:data:"+id).Result()
if err == nil {
var c ChunkDef
json.Unmarshal([]byte(val), &c)
c.ID = id
loadedChunks = append(loadedChunks, c)
}
}
// Log nur beim Server-Start (wenn defaultConfig leer ist), sonst spammt es
if len(defaultConfig.Chunks) == 0 {
log.Printf("📦 Lade %d Chunks aus Redis", len(loadedChunks))
}
return loadedChunks
}