Files
GaCy-GO/internal/sdkserver/api_monster_settings.go
T

47 lines
1.4 KiB
Go
Raw Normal View History

2026-10-28 18:54:43 +07:00
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)
}