diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index ec15a45d..1c62982d 100644 --- a/src/server/gamedata/reader.go +++ b/src/server/gamedata/reader.go @@ -184,7 +184,7 @@ func GetStringValue(a interface{}, key string) string { if v == nil { return "" } - return v.(string) + String(v) } return "" } @@ -237,3 +237,22 @@ func Int(a interface{}) int { } return 0 } + +func String(a interface{}) string { + if a == nil { + return "" + } + switch v := a.(type) { + case int: + return strconv.Itoa(v) + case int32: + return strconv.Itoa(int(v)) + case int64: + return strconv.Itoa(int(v)) + case float64: + return strconv.FormatFloat(v, 'f', -1, 64) + case string: + return v + } + return "" +}