Player metadata really should be keyed by UUID not name

This commit is contained in:
md_5 2018-07-11 20:02:32 +10:00
parent ca6d2cf9dc
commit 57ab4cfc6f

View file

@ -10,7 +10,7 @@ import org.bukkit.metadata.MetadataStoreBase;
public class PlayerMetadataStore extends MetadataStoreBase<OfflinePlayer> implements MetadataStore<OfflinePlayer> { public class PlayerMetadataStore extends MetadataStoreBase<OfflinePlayer> implements MetadataStore<OfflinePlayer> {
/** /**
* Generates a unique metadata key for {@link org.bukkit.entity.Player} and {@link OfflinePlayer} using the player * Generates a unique metadata key for {@link org.bukkit.entity.Player} and {@link OfflinePlayer} using the player
* name. * UUID.
* @see MetadataStoreBase#disambiguate(Object, String) * @see MetadataStoreBase#disambiguate(Object, String)
* @param player the player * @param player the player
* @param metadataKey The name identifying the metadata value * @param metadataKey The name identifying the metadata value
@ -18,6 +18,6 @@ public class PlayerMetadataStore extends MetadataStoreBase<OfflinePlayer> implem
*/ */
@Override @Override
protected String disambiguate(OfflinePlayer player, String metadataKey) { protected String disambiguate(OfflinePlayer player, String metadataKey) {
return player.getName().toLowerCase(java.util.Locale.ENGLISH) + ":" + metadataKey; return player.getUniqueId() + ":" + metadataKey;
} }
} }