Przeglądaj źródła

Harden save() method by making a defensive copy

riking 11 lat temu
rodzic
commit
3236ee5ec9

+ 2 - 1
src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java

@@ -13,6 +13,7 @@ import com.gmail.nossr50.datatypes.skills.AbilityType;
 import com.gmail.nossr50.datatypes.skills.SkillType;
 import com.gmail.nossr50.skills.child.FamilyTree;
 import com.gmail.nossr50.util.player.UserManager;
+import com.google.common.collect.ImmutableMap;
 
 public class PlayerProfile {
     private final String playerName;
@@ -63,7 +64,7 @@ public class PlayerProfile {
             return;
         }
 
-        changed = !mcMMO.getDatabaseManager().saveUser(this);
+        changed = !mcMMO.getDatabaseManager().saveUser(new PlayerProfile(playerName, ImmutableMap.copyOf(skills), ImmutableMap.copyOf(skillsXp), ImmutableMap.copyOf(abilityDATS), mobHealthbarType));
 
         if (changed) {
             mcMMO.p.getLogger().warning("PlayerProfile for " + playerName + " failed to save");