aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/moe/ymc/acron/c2s/ReqSetConfig.java13
-rw-r--r--src/main/java/moe/ymc/acron/common/WorldKey.java5
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