aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java')
-rw-r--r--src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java13
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;