diff options
author | Trumeet <yuuta@yuuta.moe> | 2022-07-14 11:42:26 -0700 |
---|---|---|
committer | Trumeet <yuuta@yuuta.moe> | 2022-07-14 11:42:26 -0700 |
commit | aaff4fc71027968f22100d216ff22edc42a96629 (patch) | |
tree | bf014d729fd90a17ffa605987afa2885ce834b96 /src/main/java/moe/ymc/acron/c2s | |
parent | 0b84e739a027ea7e5cc5bd728625839928f95283 (diff) | |
download | acron-aaff4fc71027968f22100d216ff22edc42a96629.tar acron-aaff4fc71027968f22100d216ff22edc42a96629.tar.gz acron-aaff4fc71027968f22100d216ff22edc42a96629.tar.bz2 acron-aaff4fc71027968f22100d216ff22edc42a96629.zip |
Refactor: Use GSON to deserialize enum WorldKey
Signed-off-by: Trumeet <yuuta@yuuta.moe>
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; |