Skip to content

Commit

Permalink
more caching
Browse files Browse the repository at this point in the history
  • Loading branch information
OliverSchlueter committed Aug 20, 2024
1 parent 22394ac commit 2ee30b0
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ public static CompletableFuture<SkinData> fetchSkin(String identifier) {
// assume it's a username
UUID uuid = UUIDFetcher.getUUID(parsedIdentifier);
if (uuid != null) {
if (skinCache.containsKey(uuid.toString())) {
return skinCache.get(uuid.toString());
}

return fetchSkinByUUID(uuid.toString()).join();
}

Expand Down
1 change: 1 addition & 0 deletions src/main/java/de/oliver/fancynpcs/FancyNpcs.java
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ public void onEnable() {
attributeManager = new AttributeManagerImpl();

skinCache = new SkinCacheYaml();
skinCache.loadAndInsertToSkinFetcher();

textConfig = new TextConfig("#E33239", "#AD1D23", "#81E366", "#E3CA66", "#E36666", "");
translator = new Translator(textConfig);
Expand Down
21 changes: 17 additions & 4 deletions src/main/java/de/oliver/fancynpcs/utils/SkinCacheYaml.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import java.io.File;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;

public class SkinCacheYaml implements SkinCache {
Expand Down Expand Up @@ -37,12 +38,14 @@ public List<SkinFetcher.SkinCacheData> load() {

List<SkinFetcher.SkinCacheData> cache = new ArrayList<>();

for (String identifier : skinsSection.getKeys(false)) {
ConfigurationSection skinSection = skinsSection.getConfigurationSection(identifier);
for (String identifierBase64 : skinsSection.getKeys(false)) {
ConfigurationSection skinSection = skinsSection.getConfigurationSection(identifierBase64);
if (skinSection == null) {
continue;
}

String identifier = new String(Base64.getDecoder().decode(identifierBase64));

String value = skinSection.getString("value");
String signature = skinSection.getString("signature");
if (value == null || signature == null) {
Expand Down Expand Up @@ -79,11 +82,14 @@ public void upsert(SkinFetcher.SkinCacheData skinCacheData) {
skinsSection = yaml.createSection("skins");
}

ConfigurationSection skinSection = skinsSection.getConfigurationSection(skinCacheData.skinData().identifier());
String identifier = Base64.getEncoder().encodeToString(skinCacheData.skinData().identifier().getBytes());

ConfigurationSection skinSection = skinsSection.getConfigurationSection(identifier);
if (skinSection == null) {
skinSection = skinsSection.createSection(skinCacheData.skinData().identifier());
skinSection = skinsSection.createSection(identifier);
}

skinSection.set("identifier", skinCacheData.skinData().identifier());
skinSection.set("value", skinCacheData.skinData().value());
skinSection.set("signature", skinCacheData.skinData().signature());
skinSection.set("lastUpdated", System.currentTimeMillis());
Expand All @@ -109,4 +115,11 @@ public void delete(String identifier) {

skinsSection.set(identifier, null);
}

public void loadAndInsertToSkinFetcher() {
List<SkinFetcher.SkinCacheData> cache = load();
for (SkinFetcher.SkinCacheData skinCacheData : cache) {
SkinFetcher.skinCache.put(skinCacheData.skinData().identifier(), skinCacheData.skinData());
}
}
}

0 comments on commit 2ee30b0

Please sign in to comment.