From 516601a8998095965ddd0828ac50dd32391c9f57 Mon Sep 17 00:00:00 2001 From: lionarius Date: Wed, 26 Mar 2025 02:21:27 +0300 Subject: [PATCH] fix GameProfileRepository interface impl --- .../skin/provider/MojangSkinProvider.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java b/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java index 5d902a9..e20f5eb 100644 --- a/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java +++ b/common/src/main/java/net/lionarius/skinrestorer/skin/provider/MojangSkinProvider.java @@ -5,6 +5,8 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.util.concurrent.UncheckedExecutionException; import com.mojang.authlib.GameProfile; +import com.mojang.authlib.GameProfileRepository; +import com.mojang.authlib.ProfileLookupCallback; import com.mojang.authlib.properties.Property; import com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse; import com.mojang.util.UndashedUuid; @@ -46,13 +48,26 @@ public final class MojangSkinProvider implements SkinProvider { throw new IllegalArgumentException(e); } - PROFILE_CACHE = new GameProfileCache((names, callback) -> { - for (var name : names) { + PROFILE_CACHE = new GameProfileCache(new GameProfileRepository() { + @Override + public void findProfilesByNames(String[] names, ProfileLookupCallback callback) { + for (var name : names) { + try { + var profile = MojangSkinProvider.getProfile(name); + callback.onProfileLookupSucceeded(profile); + } catch (IOException e) { + callback.onProfileLookupFailed(name, e); + } + } + } + + @Override + public Optional findProfileByName(String name) { try { var profile = MojangSkinProvider.getProfile(name); - callback.onProfileLookupSucceeded(profile); + return Optional.of(profile); } catch (IOException e) { - callback.onProfileLookupFailed(name, e); + return Optional.empty(); } } }, SkinRestorer.getConfigDir().resolve(PROFILE_CACHE_FILENAME).toFile());