diff options
author | nmccullagh <narhanael64@gmail.com> | 2024-07-05 13:07:33 +0100 |
---|---|---|
committer | nmccullagh <narhanael64@gmail.com> | 2024-07-05 13:07:33 +0100 |
commit | 69b7c0a00a6d236953604415556d7d4a729b7228 (patch) | |
tree | da5c04f9b28fe3aabd81a94c8c93d611ec4c5b5a /src/main/java/de | |
parent | 8f11e44052ff41df1477d8c10de3bc1129252ec1 (diff) | |
download | Skyblocker-69b7c0a00a6d236953604415556d7d4a729b7228.tar.gz Skyblocker-69b7c0a00a6d236953604415556d7d4a729b7228.tar.bz2 Skyblocker-69b7c0a00a6d236953604415556d7d4a729b7228.zip |
add a 30s persistent cache
Diffstat (limited to 'src/main/java/de')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/SkyblockerMod.java | 2 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java | 10 |
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(); + } } |