aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authornmccullagh <narhanael64@gmail.com>2024-07-05 13:07:33 +0100
committernmccullagh <narhanael64@gmail.com>2024-07-05 13:07:33 +0100
commit69b7c0a00a6d236953604415556d7d4a729b7228 (patch)
treeda5c04f9b28fe3aabd81a94c8c93d611ec4c5b5a /src/main
parent8f11e44052ff41df1477d8c10de3bc1129252ec1 (diff)
downloadSkyblocker-69b7c0a00a6d236953604415556d7d4a729b7228.tar.gz
Skyblocker-69b7c0a00a6d236953604415556d7d4a729b7228.tar.bz2
Skyblocker-69b7c0a00a6d236953604415556d7d4a729b7228.zip
add a 30s persistent cache
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java10
2 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index d793e73d..8187c122 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -35,6 +35,7 @@ import de.hysky.skyblocker.skyblock.item.tooltip.AccessoriesHelper;
import de.hysky.skyblocker.skyblock.item.tooltip.BackpackPreview;
import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipManager;
+import de.hysky.skyblocker.skyblock.item.tooltip.adders.CraftPriceTooltip;
import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
import de.hysky.skyblocker.skyblock.rift.TheRift;
import de.hysky.skyblocker.skyblock.searchoverlay.SearchOverManager;
@@ -200,6 +201,7 @@ public class SkyblockerMod implements ClientModInitializer {
Scheduler.INSTANCE.scheduleCyclic(DwarvenHud::update, 40);
Scheduler.INSTANCE.scheduleCyclic(CrystalsHud::update, 40);
Scheduler.INSTANCE.scheduleCyclic(PlayerListMgr::updateList, 20);
+ Scheduler.INSTANCE.scheduleCyclic(CraftPriceTooltip::clearCache, 600);
}
/**
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java
index 35c717ff..c19c2f53 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java
@@ -18,9 +18,10 @@ import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
public class CraftPriceTooltip extends TooltipAdder {
- private final Map<String, Double> cachedCraftCosts = new HashMap<>();
+ private final static Map<String, Double> cachedCraftCosts = new ConcurrentHashMap<>();
private static final int MAX_RECURSION_DEPTH = 15;
public CraftPriceTooltip(int priority) {
@@ -28,7 +29,7 @@ public class CraftPriceTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ public void addToTooltip(@Nullable Slot focusedSloFt, ItemStack stack, List<Text> lines) {
if (SkyblockerConfigManager.get().general.itemTooltip.enableCraftingCost == GeneralConfig.Craft.OFF) return;
String internalID = stack.getSkyblockId();
@@ -46,7 +47,6 @@ public class CraftPriceTooltip extends TooltipAdder {
if (neuRecipes.isEmpty() || neuRecipes.getFirst().getClass().equals(io.github.moulberry.repo.data.NEUKatUpgradeRecipe.class)) return;
double totalCraftCost = getItemCost(neuRecipes.getFirst(), 0);
- cachedCraftCosts.clear();
if (totalCraftCost == 0) return;
@@ -93,4 +93,8 @@ public class CraftPriceTooltip extends TooltipAdder {
}
return totalCraftCost;
}
+
+ public static void clearCache() {
+ cachedCraftCosts.clear();
+ }
}