From 666e4d0dff5ffc7d43684b7ddd392174441f2957 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Thu, 10 Apr 2014 13:01:56 +0200 Subject: [PATCH] Update the cache on login. --- .../massivecraft/mcore/util/PlayerUtil.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/com/massivecraft/mcore/util/PlayerUtil.java b/src/com/massivecraft/mcore/util/PlayerUtil.java index 8c40de45..e07299c0 100644 --- a/src/com/massivecraft/mcore/util/PlayerUtil.java +++ b/src/com/massivecraft/mcore/util/PlayerUtil.java @@ -24,6 +24,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; import com.massivecraft.mcore.MCore; @@ -151,6 +152,8 @@ public class PlayerUtil implements Listener // PLAYER ID <---> PLAYER NAME // -------------------------------------------- // + // getPlayerName + public static String getPlayerName(final UUID playerId, final boolean usingCache, final boolean usingMojangApi) { List playerIds = Collections.singletonList(playerId); @@ -166,6 +169,8 @@ public class PlayerUtil implements Listener return getPlayerName(playerId, true); } + // getPlayerId + public static UUID getPlayerId(final String playerName, final boolean usingCache, final boolean usingMojangApi) { List playerNames = Collections.singletonList(playerName); @@ -181,6 +186,19 @@ public class PlayerUtil implements Listener return getPlayerId(playerName, true); } + // Update Cache on Login + + @EventHandler(priority = EventPriority.LOWEST) + public void playerIdPlayerName(PlayerLoginEvent event) + { + final String playerName = event.getPlayer().getName(); + final UUID playerId = event.getPlayer().getUniqueId(); + MCoreMPlayer mplayer = MCoreMPlayer.get(playerId, true); + mplayer.setName(playerName); + } + + // Core Methods + // I suggest using ... // final Map ret = new TreeMap(String.CASE_INSENSITIVE_ORDER); // ... since you achieve case insensitivity that way.