From 9a943070a9ea64fe07f7ac981adeb25fd867da50 Mon Sep 17 00:00:00 2001 From: Frank van der Heijden Date: Sun, 25 Jul 2021 12:14:11 +0200 Subject: [PATCH] Differentiate between int / double in json values --- .../serverutils/common/config/JsonConfig.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/config/JsonConfig.java b/Common/src/main/java/net/frankheijden/serverutils/common/config/JsonConfig.java index 69eb0e1..81437cc 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/config/JsonConfig.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/config/JsonConfig.java @@ -83,10 +83,18 @@ public class JsonConfig implements ServerUtilsConfig { if (jsonElement == null) return null; if (jsonElement.isJsonPrimitive()) { JsonPrimitive jsonPrimitive = (JsonPrimitive) jsonElement; - if (jsonPrimitive.isBoolean()) return jsonPrimitive.getAsBoolean(); - else if (jsonPrimitive.isNumber()) return jsonPrimitive.getAsNumber().intValue(); - else if (jsonPrimitive.isString()) return jsonPrimitive.getAsString(); - else { + if (jsonPrimitive.isBoolean()) { + return jsonPrimitive.getAsBoolean(); + } else if (jsonPrimitive.isNumber()) { + double d = jsonPrimitive.getAsDouble(); + if (d == Math.rint(d)) { + return (int) d; + } else { + return d; + } + } else if (jsonPrimitive.isString()) { + return jsonPrimitive.getAsString(); + } else { throw new IllegalStateException("Not a JSON Primitive: " + jsonPrimitive); } } else if (jsonElement.isJsonArray()) {