package sdkserver import ( "net/http" "gac-hkrpg-go/internal/common" ) func apiMonsterSettingsCatalog(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodGet { http.Error(w, "method not allowed", http.StatusMethodNotAllowed) return } catalog, err := common.LoadMonsterSettingsCatalog() if err != nil { w.WriteHeader(http.StatusInternalServerError) writeJSON(w, map[string]any{"error": err.Error(), "status": 500}) return } cfg, err := common.LoadRuntimeConfig() if err != nil { w.WriteHeader(http.StatusInternalServerError) writeJSON(w, map[string]any{"error": err.Error(), "status": 500}) return } response := map[string]any{ "status": 200, "modes": catalog.Modes, "monster_ids": catalog.MonsterIDs, "monsters": catalog.Monsters, "levels": catalog.Levels, "sources": catalog.Sources, "client_version": cfg.ClientVersion, } if metadata, metadataErr := common.LoadNanokaMonsterMetadata(cfg.ClientVersion); metadataErr != nil { response["metadata_error"] = metadataErr.Error() response["sources"] = append(catalog.Sources, "Nanoka metadata unavailable") } else { catalog.ApplyNanokaMonsterMetadata(metadata) response["monsters"] = catalog.Monsters response["modes"] = catalog.Modes response["sources"] = catalog.Sources response["metadata_version"] = metadata.Version response["metadata_source"] = "Nanoka" } writeJSON(w, response) }