diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/GriefPrevention.java b/src/main/java/me/ryanhamshire/GriefPrevention/GriefPrevention.java index 606c612..e6ee99e 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/GriefPrevention.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/GriefPrevention.java @@ -99,6 +99,8 @@ public class GriefPrevention extends JavaPlugin //log entry manager for GP's custom log files CustomLogger customLogger; + // hashmap to cache offline playernames + public static HashMap playerNameCache = new HashMap<>(); //configuration variables, loaded/saved from a config.yml //claim mode for each world @@ -2669,7 +2671,7 @@ public class GriefPrevention extends JavaPlugin public enum IgnoreMode {None, StandardIgnore, AdminIgnore} - private String trustEntryToPlayerName(String entry) + public String trustEntryToPlayerName(String entry) { if (entry.startsWith("[") || entry.equals("public")) { @@ -2944,11 +2946,15 @@ public class GriefPrevention extends JavaPlugin //parameter validation if (playerID == null) return "somebody"; + if (playerNameCache.containsKey(playerID)) + return playerNameCache.get(playerID); //check the cache OfflinePlayer player = GriefPrevention.instance.getServer().getOfflinePlayer(playerID); if (player.hasPlayedBefore() || player.isOnline()) { - return player.getName(); + String playerName = player.getName(); + playerNameCache.put(playerID, playerName); + return playerName; } else {