From fe5e172d1de52ab66b80a347bac99dd9f8edcada Mon Sep 17 00:00:00 2001 From: aroooo Date: Wed, 26 Oct 2022 20:13:24 +0200 Subject: [PATCH] fix(storage): fix some npe and unaccurate check --- .../net/artelnatif/nicko/disguise/NickoProfile.java | 2 +- .../artelnatif/nicko/storage/PlayerDataStore.java | 12 +++++++----- .../artelnatif/nicko/storage/json/JSONStorage.java | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/NickoProfile.java b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/NickoProfile.java index c7832b1..7960730 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/NickoProfile.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/NickoProfile.java @@ -12,7 +12,7 @@ public class NickoProfile { } public boolean isEmpty() { - return this != NickoProfile.EMPTY_PROFILE || (name == null && skin == null); + return name == null && skin == null; } public String getName() { diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/storage/PlayerDataStore.java b/nicko-core/src/main/java/net/artelnatif/nicko/storage/PlayerDataStore.java index c3f4ea3..a47e028 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/storage/PlayerDataStore.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/storage/PlayerDataStore.java @@ -22,23 +22,25 @@ public class PlayerDataStore { public static final HashMap PROFILES = new HashMap<>(); public Optional getData(UUID uuid) { - if(storage.isError()) { + if (storage.isError()) { return Optional.empty(); } if (PROFILES.containsKey(uuid)) { return Optional.of(PROFILES.get(uuid)); } else if (storage.isStored(uuid)) { - Optional retrievedProfile = storage.retrieve(uuid); + final Optional retrievedProfile = storage.retrieve(uuid); retrievedProfile.ifPresent(profile -> PROFILES.put(uuid, profile)); return retrievedProfile; } else { - return Optional.empty(); + final NickoProfile newProfile = NickoProfile.EMPTY_PROFILE; + PROFILES.put(uuid, newProfile); + return Optional.of(newProfile); } } public Optional getOfflineData(String name) { - if(storage.isError()) { + if (storage.isError()) { return Optional.empty(); } @@ -55,7 +57,7 @@ public class PlayerDataStore { } public void saveData(Player player) { - if(storage.isError()) { + if (storage.isError()) { return; } diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/storage/json/JSONStorage.java b/nicko-core/src/main/java/net/artelnatif/nicko/storage/json/JSONStorage.java index 56ec416..c7b571d 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/storage/json/JSONStorage.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/storage/json/JSONStorage.java @@ -53,11 +53,11 @@ public class JSONStorage extends Storage { final File file = new File(directory, uuid.toString() + ".json"); try (FileReader fileReader = new FileReader(file)) { try (BufferedReader reader = new BufferedReader(fileReader)) { - NickoProfile value = gson.fromJson(reader, NickoProfile.class); + final NickoProfile value = gson.fromJson(reader, NickoProfile.class); return Optional.of(value); } } catch (IOException e) { - throw new RuntimeException(e); + return Optional.empty(); } }