Skip to content

Commit 5878f59

Browse files
committed
Changed: Fetch skin async on join
Signed-off-by: DevDrizzy <[email protected]>
1 parent 55905c5 commit 5878f59

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
<dependency>
9595
<groupId>xyz.refinedev.api</groupId>
9696
<artifactId>StorageAPI</artifactId>
97-
<version>1.8</version>
97+
<version>2.0</version>
9898
<scope>provided</scope>
9999
</dependency>
100100
</dependencies>

src/main/java/xyz/refinedev/api/skin/SkinAPI.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import com.google.gson.JsonObject;
66
import com.google.gson.JsonParser;
77
import com.google.gson.reflect.TypeToken;
8+
89
import lombok.Getter;
10+
911
import org.bukkit.Bukkit;
1012
import org.bukkit.entity.Player;
1113
import org.bukkit.plugin.java.JavaPlugin;
@@ -15,16 +17,15 @@
1517
import xyz.refinedev.api.skin.player.impl.CarbonAdapter;
1618
import xyz.refinedev.api.skin.player.impl.LegacyAdapter;
1719
import xyz.refinedev.api.skin.player.impl.ModernAdapter;
18-
import xyz.refinedev.api.storage.JsonStorage;
20+
import xyz.refinedev.api.storage.json.JsonStorage;
1921

2022
import java.io.BufferedReader;
2123
import java.io.IOException;
2224
import java.io.InputStreamReader;
2325
import java.lang.reflect.Type;
2426
import java.net.HttpURLConnection;
2527
import java.net.URL;
26-
import java.util.Collection;
27-
import java.util.Map;
28+
import java.util.*;
2829
import java.util.concurrent.CompletableFuture;
2930
import java.util.concurrent.ConcurrentHashMap;
3031
import java.util.function.Consumer;
@@ -211,8 +212,13 @@ public void registerSkin(String name, CachedSkin skin) {
211212
public void registerPlayer(Player player) {
212213
if (this.skinCache.containsKey(player.getName())) return;
213214

214-
CachedSkin skin = this.getByPlayer(player);
215-
this.temporaryCache.put(player.getName(), skin);
215+
CompletableFuture<CachedSkin> future = CompletableFuture.supplyAsync(() -> fetchSkin(player.getName()));
216+
this.skinFutures.put(player.getName(), future);
217+
218+
future.whenComplete((skin, throwable) -> {
219+
this.registerSkin(player.getName(), skin);
220+
this.skinFutures.remove(player.getName());
221+
});
216222
}
217223

218224
/**

0 commit comments

Comments
 (0)