diff options
Diffstat (limited to 'src/main/java/moe/ymc')
-rw-r--r-- | src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java | 13 | ||||
-rw-r--r-- | src/main/java/moe/ymc/acron/common/WorldKey.java | 5 |
2 files changed, 15 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; diff --git a/src/main/java/moe/ymc/acron/common/WorldKey.java b/src/main/java/moe/ymc/acron/common/WorldKey.java index 8d47737..9e4212d 100644 --- a/src/main/java/moe/ymc/acron/common/WorldKey.java +++ b/src/main/java/moe/ymc/acron/common/WorldKey.java @@ -1,7 +1,12 @@ package moe.ymc.acron.common; +import com.google.gson.annotations.SerializedName; + public enum WorldKey { + @SerializedName("overworld") OVERWORLD, + @SerializedName("nether") NETHER, + @SerializedName("end") END }
\ No newline at end of file |