add hot Chunk reload
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 2m27s
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 2m27s
This commit is contained in:
46
config.go
46
config.go
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user