From 623fc36c2069b9842628b5c3875e945de44f0ded Mon Sep 17 00:00:00 2001 From: CarmJos Date: Fri, 25 Feb 2022 05:33:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E9=94=99=E7=A9=BAla?= =?UTF-8?q?stLocation=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/moeteleport/storage/DataSerializer.java | 10 ++++++---- .../plugin/moeteleport/storage/file/JSONStorage.java | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/carm/plugin/moeteleport/storage/DataSerializer.java b/src/main/java/cc/carm/plugin/moeteleport/storage/DataSerializer.java index 010f7f2..396b469 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/storage/DataSerializer.java +++ b/src/main/java/cc/carm/plugin/moeteleport/storage/DataSerializer.java @@ -2,9 +2,11 @@ package cc.carm.plugin.moeteleport.storage; import cc.carm.plugin.moeteleport.configuration.location.DataLocation; import org.bukkit.Location; +import org.jetbrains.annotations.Nullable; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Optional; public class DataSerializer { @@ -15,12 +17,12 @@ public class DataSerializer { return after; } - public static String serializeLocation(DataLocation loc) { - return loc.serializeToText(); + public static @Nullable String serializeLocation(@Nullable DataLocation loc) { + return Optional.ofNullable(loc).map(DataLocation::serializeToText).orElse(null); } - public static String serializeLocation(Location loc) { - return serializeLocation(new DataLocation(loc)); + public static @Nullable String serializeLocation(@Nullable Location loc) { + return serializeLocation(Optional.ofNullable(loc).map(DataLocation::new).orElse(null)); } diff --git a/src/main/java/cc/carm/plugin/moeteleport/storage/file/JSONStorage.java b/src/main/java/cc/carm/plugin/moeteleport/storage/file/JSONStorage.java index 3a0dff2..fd8988d 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/storage/file/JSONStorage.java +++ b/src/main/java/cc/carm/plugin/moeteleport/storage/file/JSONStorage.java @@ -57,7 +57,9 @@ public class JSONStorage extends FileBasedStorage { @Override public void saveUserData(@NotNull UserData data) throws Exception { JsonObject dataObject = new JsonObject(); - dataObject.addProperty("lastLocation", DataSerializer.serializeLocation(data.getLastLocation())); + if (data.getLastLocation() != null) { + dataObject.addProperty("lastLocation", DataSerializer.serializeLocation(data.getLastLocation())); + } dataObject.add("homes", GSON.toJsonTree(DataSerializer.serializeLocationsMap(data.getHomeLocations()))); FileWriter writer = new FileWriter(new File(getDataFolder(), data.getUserUUID() + ".json"));