From 7fe99a1576bb1a0e335bd56d8b62bef7136aaa10 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 23 Nov 2024 13:17:45 +0100 Subject: [PATCH] consider skin variants --- .../fancynpcs/skins/SkinManagerImpl.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/oliver/fancynpcs/skins/SkinManagerImpl.java b/src/main/java/de/oliver/fancynpcs/skins/SkinManagerImpl.java index 77b25361..acd8b31a 100644 --- a/src/main/java/de/oliver/fancynpcs/skins/SkinManagerImpl.java +++ b/src/main/java/de/oliver/fancynpcs/skins/SkinManagerImpl.java @@ -90,7 +90,7 @@ public SkinData getByIdentifier(String identifier, SkinData.SkinVariant variant) @Override public SkinData getByUUID(UUID uuid, SkinData.SkinVariant variant) { - SkinData cached = tryToGetFromCache(uuid.toString()); + SkinData cached = tryToGetFromCache(uuid.toString(), variant); if (cached != null) { return cached; } @@ -118,7 +118,7 @@ public SkinData getByUUID(UUID uuid, SkinData.SkinVariant variant) { public SkinData getByUsername(String username, SkinData.SkinVariant variant) { UUID uuid = UUIDFetcher.getUUID(username); - SkinData cached = tryToGetFromCache(uuid.toString()); + SkinData cached = tryToGetFromCache(uuid.toString(), variant); if (cached != null) { return cached; } @@ -144,7 +144,7 @@ public SkinData getByUsername(String username, SkinData.SkinVariant variant) { @Override public SkinData getByURL(String url, SkinData.SkinVariant variant) { - SkinData cached = tryToGetFromCache(url); + SkinData cached = tryToGetFromCache(url, variant); if (cached != null) { return cached; } @@ -177,7 +177,7 @@ public SkinData getByURL(String url, SkinData.SkinVariant variant) { @Override public SkinData getByFile(String filePath, SkinData.SkinVariant variant) { - SkinData cached = tryToGetFromCache(filePath); + SkinData cached = tryToGetFromCache(filePath, variant); if (cached != null) { return cached; } @@ -242,14 +242,22 @@ private SkinInfo executeRequest(GenerateRequest req) { return skinResp.join(); } - private SkinData tryToGetFromCache(String id) { + private SkinData tryToGetFromCache(String id, SkinData.SkinVariant variant) { SkinCacheData data = memCache.getSkin(id); if (data != null) { + if (data.skinData().getVariant() != variant) { + return null; + } + return data.skinData(); } data = fileCache.getSkin(id); if (data != null) { + if (data.skinData().getVariant() != variant) { + return null; + } + memCache.addSkin(data.skinData()); return data.skinData(); }