1
0
mirror of https://github.com/Suiranoil/SkinRestorer.git synced 2026-01-16 04:42:12 +00:00

fix GameProfileRepository interface impl

This commit is contained in:
2025-03-26 02:21:27 +03:00
parent 2e3b2649b3
commit 516601a899

View File

@@ -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<GameProfile> 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());