diff --git a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitBlockPos.java b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitBlockPos.java index b5ccbb3..c77429a 100644 --- a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitBlockPos.java +++ b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitBlockPos.java @@ -2,6 +2,7 @@ package cn.hamster3.mc.plugin.ball.bukkit.data; import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.data.BallBlockPos; +import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; @@ -42,6 +43,10 @@ public class BukkitBlockPos extends BallBlockPos { ); } + public static BukkitBlockPos fromJson(String json) { + return CoreConstantObjects.GSON.fromJson(json, BukkitBlockPos.class); + } + @NotNull public Location toBukkitLocation() { return new Location(Bukkit.getWorld(getWorldName()), getX(), getY(), getZ(), 0, 0); diff --git a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitLocation.java b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitLocation.java index eb16d04..51fffd7 100644 --- a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitLocation.java +++ b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/data/BukkitLocation.java @@ -2,6 +2,7 @@ package cn.hamster3.mc.plugin.ball.bukkit.data; import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.data.BallLocation; +import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; @@ -50,6 +51,10 @@ public class BukkitLocation extends BallLocation { ); } + public static BukkitLocation fromJson(String json) { + return CoreConstantObjects.GSON.fromJson(json, BukkitLocation.class); + } + @NotNull public Location toBukkitLocation() { return new Location(Bukkit.getWorld(getWorldName()), getX(), getY(), getZ(), getYaw(), getPitch()); diff --git a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallBlockPos.java b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallBlockPos.java index bf508e1..7608469 100644 --- a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallBlockPos.java +++ b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallBlockPos.java @@ -1,5 +1,7 @@ package cn.hamster3.mc.plugin.ball.common.data; +import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; +import com.google.gson.JsonElement; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -16,6 +18,14 @@ public class BallBlockPos { private int y; private int z; + public static BallBlockPos fromJson(String json) { + return CoreConstantObjects.GSON.fromJson(json, BallBlockPos.class); + } + + public JsonElement toJson() { + return CoreConstantObjects.GSON.toJsonTree(this); + } + @NotNull public BallLocation toServiceLocation() { return new BallLocation(getServerID(), getWorldName(), getX(), getY(), getZ(), 0, 0); diff --git a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallLocation.java b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallLocation.java index c5bd725..8b07fd9 100644 --- a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallLocation.java +++ b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallLocation.java @@ -1,5 +1,7 @@ package cn.hamster3.mc.plugin.ball.common.data; +import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; +import com.google.gson.JsonElement; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -19,6 +21,19 @@ public class BallLocation { private float yaw; private float pitch; + public static BallLocation fromJson(String json) { + return CoreConstantObjects.GSON.fromJson(json, BallLocation.class); + } + + public JsonElement toJson() { + return CoreConstantObjects.GSON.toJsonTree(this); + } + + @NotNull + public BallBlockPos toServiceBlockPos() { + return new BallBlockPos(getServerID(), getWorldName(), getBlockX(), getBlockY(), getBlockZ()); + } + public int getBlockX() { return (int) x; } @@ -30,9 +45,4 @@ public class BallLocation { public int getBlockZ() { return (int) z; } - - @NotNull - public BallBlockPos toServiceBlockPos() { - return new BallBlockPos(getServerID(), getWorldName(), getBlockX(), getBlockY(), getBlockZ()); - } }