浏览代码

Add equals and hashCode to PlayerData

nossr50 4 年之前
父节点
当前提交
788e7e433b
共有 1 个文件被更改,包括 15 次插入1 次删除
  1. 15 1
      src/main/java/com/gmail/nossr50/datatypes/player/PlayerData.java

+ 15 - 1
src/main/java/com/gmail/nossr50/datatypes/player/PlayerData.java

@@ -7,6 +7,7 @@ import com.gmail.nossr50.datatypes.validation.NonNullRule;
 import com.gmail.nossr50.datatypes.validation.PositiveIntegerRule;
 import com.gmail.nossr50.datatypes.validation.Validator;
 import com.gmail.nossr50.util.experience.MMOExperienceBarManager;
+import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableMap;
 import com.neetgames.mcmmo.UniqueDataType;
 import com.neetgames.mcmmo.exceptions.UnexpectedValueException;
@@ -210,7 +211,7 @@ public class PlayerData {
         return playerName;
     }
 
-    public @NotNull UUID getPlayerUUID() {
+    public @Nullable UUID getPlayerUUID() {
         return playerUUID;
     }
 
@@ -306,4 +307,17 @@ public class PlayerData {
     public @NotNull ImmutableMap<PrimarySkillType, Float> copyPrimarySkillExperienceValuesMap() {
         return ImmutableMap.copyOf(getSkillsExperienceMap());
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        PlayerData that = (PlayerData) o;
+        return lastLogin == that.lastLogin && partyChatSpying == that.partyChatSpying && leaderBoardExclusion == that.leaderBoardExclusion && scoreboardTipsShown == that.scoreboardTipsShown && Objects.equal(playerName, that.playerName) && Objects.equal(playerUUID, that.playerUUID) && Objects.equal(skillLevelValues, that.skillLevelValues) && Objects.equal(skillExperienceValues, that.skillExperienceValues) && Objects.equal(abilityDeactivationTimestamps, that.abilityDeactivationTimestamps) && Objects.equal(uniquePlayerData, that.uniquePlayerData) && Objects.equal(barStateMap, that.barStateMap);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(playerName, playerUUID, lastLogin, skillLevelValues, skillExperienceValues, abilityDeactivationTimestamps, uniquePlayerData, barStateMap, partyChatSpying, leaderBoardExclusion, scoreboardTipsShown);
+    }
 }