summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/util/UUIDFetcher.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/UUIDFetcher.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/UUIDFetcher.java b/src/main/java/net/tylermurphy/hideAndSeek/util/UUIDFetcher.java
index ef65af3..4ab883d 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/UUIDFetcher.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/UUIDFetcher.java
@@ -20,6 +20,9 @@
package net.tylermurphy.hideAndSeek.util;
import net.tylermurphy.hideAndSeek.Main;
+import org.bukkit.Bukkit;
+import org.bukkit.OfflinePlayer;
+import org.bukkit.entity.Player;
import java.io.BufferedReader;
import java.io.InputStreamReader;
@@ -33,12 +36,16 @@ import java.util.UUID;
public final class UUIDFetcher {
private static final Map<String,UUID> CACHE = new HashMap<>();
+ private static final Map<UUID,OfflinePlayer> PLAYER_CACHE = new HashMap<>();
private static final String UUID_URL = "https://api.mojang.com/users/profiles/minecraft/";
private static int cacheTask;
public static void init(){
- cacheTask = Main.plugin.getServer().getScheduler().scheduleSyncRepeatingTask(Main.plugin, CACHE::clear,600*20, 600*20);
+ cacheTask = Main.plugin.getServer().getScheduler().scheduleSyncRepeatingTask(Main.plugin, () -> {
+ CACHE.clear();
+ PLAYER_CACHE.clear();
+ }, 600 * 20, 600 * 20);
}
public static void cleanup(){
@@ -66,6 +73,13 @@ public final class UUIDFetcher {
return UUID.fromString(uuid.toString());
}
+ public static OfflinePlayer getPlayer(UUID uuid){
+ if(PLAYER_CACHE.containsKey(uuid)) return PLAYER_CACHE.get(uuid);
+ OfflinePlayer temp = Bukkit.getOfflinePlayer(uuid);
+ PLAYER_CACHE.put(uuid, temp);
+ return temp;
+ }
+
private static void readData(String toRead, StringBuilder result) {
for (int i = toRead.length() - 3; i >= 0; i--) {
if (toRead.charAt(i) != '"') {