diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java index b1f4a86..0ced622 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java @@ -15,12 +15,12 @@ public class AppearanceManager { private AppearanceManager(UUID uuid) { this.player = Bukkit.getPlayer(uuid); - this.profile = dataStore.getData(uuid).orElse(NickoProfile.EMPTY_PROFILE); + this.profile = dataStore.getData(uuid).orElse(NickoProfile.EMPTY_PROFILE.clone()); } private AppearanceManager(String name) { this.player = null; - this.profile = dataStore.getOfflineData(name).orElse(NickoProfile.EMPTY_PROFILE); + this.profile = dataStore.getOfflineData(name).orElse(NickoProfile.EMPTY_PROFILE.clone()); } public static AppearanceManager get(Player player) { 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 7960730..93c9210 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 @@ -1,6 +1,6 @@ package net.artelnatif.nicko.disguise; -public class NickoProfile { +public class NickoProfile implements Cloneable { public static final NickoProfile EMPTY_PROFILE = new NickoProfile(null, null); private String name; @@ -39,4 +39,15 @@ public class NickoProfile { ", empty='" + isEmpty() + '\'' + '}'; } + + @Override + public NickoProfile clone() { + Object o; + try { + o = super.clone(); + } catch (CloneNotSupportedException e) { + throw new RuntimeException(e); + } + return (NickoProfile) o; + } } 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 7e60ea5..eacb42f 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 @@ -52,7 +52,7 @@ public class PlayerDataStore { retrievedProfile.ifPresent(profile -> profiles.put(uuid, profile)); return retrievedProfile; } else { - final NickoProfile newProfile = NickoProfile.EMPTY_PROFILE; + final NickoProfile newProfile = NickoProfile.EMPTY_PROFILE.clone(); profiles.put(uuid, newProfile); return Optional.of(newProfile); }