Player metadata really should be keyed by UUID not name

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2018-07-11 20:02:32 +10:00
parent 772c19a770
commit d1e91a8adb

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;
} }
} }