diff options
Diffstat (limited to 'src/main/java/moe/ymc/acron/c2s')
-rw-r--r-- | src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java b/src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java index 8959403..fcddf35 100644 --- a/src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java +++ b/src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java @@ -33,9 +33,16 @@ public record ReqSetConfig(@SerializedName("id") int id, final int id = object.has("id") ? object.get("id").getAsInt() : -1; - final WorldKey world = object.has("world") ? - WorldKey.valueOf(object.get("world").getAsString().toUpperCase()) : - null; + final WorldKey world; + if (object.has("world")) { + world = context.deserialize(object.get("world"), WorldKey.class); + // https://stackoverflow.com/a/49574019 + if (world == null) { + throw new JsonParseException("Invalid world"); + } + } else { + world = null; + } final Vec3d pos = object.has("pos") ? context.deserialize(object.get("pos"), Vec3d.class) : null; |