aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/DataTooltipInfo.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/TooltipInfoType.java26
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/CodecUtils.java9
3 files changed, 21 insertions, 20 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/DataTooltipInfo.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/DataTooltipInfo.java
index ce18f438..5c8f5f65 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/DataTooltipInfo.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/DataTooltipInfo.java
@@ -16,7 +16,6 @@ import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.utils.Http;
public final class DataTooltipInfo<T> extends SimpleTooltipInfo implements DataTooltipInfoType<T> {
- private final Predicate<GeneralConfig.ItemTooltip> dataEnabled;
private final String address;
private final Codec<T> codec;
@Nullable
@@ -24,18 +23,19 @@ public final class DataTooltipInfo<T> extends SimpleTooltipInfo implements DataT
private final boolean cacheable;
private long hash;
private final BiPredicate<T, String> contains;
+ private final Predicate<GeneralConfig.ItemTooltip> dataEnabled;
@Nullable
private final Consumer<T>[] callbacks;
@SafeVarargs
- protected DataTooltipInfo(Predicate<GeneralConfig.ItemTooltip> tooltipEnabled, Predicate<GeneralConfig.ItemTooltip> dataEnabled, String address, Codec<T> codec, boolean cacheable, BiPredicate<T, String> contains, Consumer<T>... callbacks) {
+ protected DataTooltipInfo(String address, Codec<T> codec, boolean cacheable, BiPredicate<T, String> contains, Predicate<GeneralConfig.ItemTooltip> tooltipEnabled, Predicate<GeneralConfig.ItemTooltip> dataEnabled, Consumer<T>... callbacks) {
super(tooltipEnabled);
- this.dataEnabled = dataEnabled;
this.address = address;
this.codec = codec;
this.cacheable = cacheable;
this.contains = contains;
+ this.dataEnabled = dataEnabled;
this.callbacks = callbacks;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/TooltipInfoType.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/TooltipInfoType.java
index 789bb701..64c533a5 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/TooltipInfoType.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/info/TooltipInfoType.java
@@ -22,16 +22,16 @@ import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
public interface TooltipInfoType {
- DataTooltipInfoType<Object2DoubleMap<String>> NPC = ofData(itemTooltip -> itemTooltip.enableNPCPrice, "https://hysky.de/api/npcprice", CodecUtils.object2DoubleMapCodec(Codec.STRING), true, Object2DoubleMap::containsKey);
- DataTooltipInfoType<Object2ObjectMap<String, BazaarProduct>> BAZAAR = ofData(itemTooltip -> itemTooltip.enableBazaarPrice, itemTooltip -> itemTooltip.enableBazaarPrice || itemTooltip.enableCraftingCost != Craft.OFF || itemTooltip.enableEstimatedItemValue || getConfig().dungeons.dungeonChestProfit.enableProfitCalculator || getConfig().dungeons.dungeonChestProfit.croesusProfit || getConfig().uiAndVisuals.chestValue.enableChestValue || itemTooltip.showEssenceCost, "https://hysky.de/api/bazaar", BazaarProduct.MAP_CODEC, false, Object2ObjectMap::containsKey, EssenceShopPrice::refreshEssencePrices);
- DataTooltipInfoType<Object2DoubleMap<String>> LOWEST_BINS = ofData(itemTooltip -> itemTooltip.enableLowestBIN, itemTooltip -> itemTooltip.enableLowestBIN || itemTooltip.enableCraftingCost != Craft.OFF || itemTooltip.enableEstimatedItemValue || getConfig().dungeons.dungeonChestProfit.enableProfitCalculator || getConfig().dungeons.dungeonChestProfit.croesusProfit || getConfig().uiAndVisuals.chestValue.enableChestValue, "https://hysky.de/api/auctions/lowestbins", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey);
- DataTooltipInfoType<Object2DoubleMap<String>> ONE_DAY_AVERAGE = ofData(itemTooltip -> itemTooltip.enableAvgBIN, "https://hysky.de/api/auctions/lowestbins/average/1day.json", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey);
- DataTooltipInfoType<Object2DoubleMap<String>> THREE_DAY_AVERAGE = ofData(itemTooltip -> itemTooltip.enableAvgBIN, itemTooltip -> itemTooltip.enableAvgBIN || getConfig().uiAndVisuals.searchOverlay.enableAuctionHouse, "https://hysky.de/api/auctions/lowestbins/average/3day.json", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey);
- DataTooltipInfoType<Object2IntMap<String>> MOTES = ofData(itemTooltip -> itemTooltip.enableMotesPrice, itemTooltip -> itemTooltip.enableMotesPrice && Utils.isInTheRift(), "https://hysky.de/api/motesprice", CodecUtils.object2IntMapCodec(Codec.STRING), true, Object2IntMap::containsKey);
+ DataTooltipInfoType<Object2DoubleMap<String>> NPC = ofData("https://hysky.de/api/npcprice", CodecUtils.object2DoubleMapCodec(Codec.STRING), true, Object2DoubleMap::containsKey, itemTooltip -> itemTooltip.enableNPCPrice);
+ DataTooltipInfoType<Object2ObjectMap<String, BazaarProduct>> BAZAAR = ofData("https://hysky.de/api/bazaar", BazaarProduct.MAP_CODEC, false, Object2ObjectMap::containsKey, itemTooltip -> itemTooltip.enableBazaarPrice, itemTooltip -> itemTooltip.enableBazaarPrice || itemTooltip.enableCraftingCost != Craft.OFF || itemTooltip.enableEstimatedItemValue || getConfig().dungeons.dungeonChestProfit.enableProfitCalculator || getConfig().dungeons.dungeonChestProfit.croesusProfit || getConfig().uiAndVisuals.chestValue.enableChestValue || itemTooltip.showEssenceCost, EssenceShopPrice::refreshEssencePrices);
+ DataTooltipInfoType<Object2DoubleMap<String>> LOWEST_BINS = ofData("https://hysky.de/api/auctions/lowestbins", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey, itemTooltip -> itemTooltip.enableLowestBIN, itemTooltip -> itemTooltip.enableLowestBIN || itemTooltip.enableCraftingCost != Craft.OFF || itemTooltip.enableEstimatedItemValue || getConfig().dungeons.dungeonChestProfit.enableProfitCalculator || getConfig().dungeons.dungeonChestProfit.croesusProfit || getConfig().uiAndVisuals.chestValue.enableChestValue);
+ DataTooltipInfoType<Object2DoubleMap<String>> ONE_DAY_AVERAGE = ofData("https://hysky.de/api/auctions/lowestbins/average/1day.json", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey, itemTooltip -> itemTooltip.enableAvgBIN);
+ DataTooltipInfoType<Object2DoubleMap<String>> THREE_DAY_AVERAGE = ofData("https://hysky.de/api/auctions/lowestbins/average/3day.json", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey, itemTooltip -> itemTooltip.enableAvgBIN, itemTooltip -> itemTooltip.enableAvgBIN || getConfig().uiAndVisuals.searchOverlay.enableAuctionHouse);
+ DataTooltipInfoType<Object2IntMap<String>> MOTES = ofData("https://hysky.de/api/motesprice", CodecUtils.object2IntMapCodec(Codec.STRING), true, Object2IntMap::containsKey, itemTooltip -> itemTooltip.enableMotesPrice, itemTooltip -> itemTooltip.enableMotesPrice && Utils.isInTheRift());
TooltipInfoType OBTAINED = ofSimple(itemTooltip -> itemTooltip.enableObtainedDate);
- DataTooltipInfoType<Map<String, String>> MUSEUM = ofData(itemTooltip -> itemTooltip.enableMuseumInfo, "https://hysky.de/api/museum", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey);
- DataTooltipInfoType<Map<String, String>> COLOR = ofData(itemTooltip -> itemTooltip.enableExoticTooltip, "https://hysky.de/api/color", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey);
- DataTooltipInfoType<Map<String, Accessory>> ACCESSORIES = ofData(itemTooltip -> itemTooltip.enableAccessoriesHelper, "https://hysky.de/api/accessories", Accessory.MAP_CODEC, true, Map::containsKey, AccessoriesHelper::refreshData);
+ DataTooltipInfoType<Map<String, String>> MUSEUM = ofData("https://hysky.de/api/museum", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey, itemTooltip -> itemTooltip.enableMuseumInfo);
+ DataTooltipInfoType<Map<String, String>> COLOR = ofData("https://hysky.de/api/color", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey, itemTooltip -> itemTooltip.enableExoticTooltip);
+ DataTooltipInfoType<Map<String, Accessory>> ACCESSORIES = ofData("https://hysky.de/api/accessories", Accessory.MAP_CODEC, true, Map::containsKey, itemTooltip -> itemTooltip.enableAccessoriesHelper, AccessoriesHelper::refreshData);
TooltipInfoType ESTIMATED_ITEM_VALUE = ofSimple(itemTooltip -> itemTooltip.enableEstimatedItemValue);
/**
@@ -48,12 +48,12 @@ public interface TooltipInfoType {
}
@SafeVarargs
- private static <T> DataTooltipInfoType<T> ofData(Predicate<GeneralConfig.ItemTooltip> tooltipEnabled, String address, Codec<T> codec, boolean cacheable, BiPredicate<T, String> contains, Consumer<T>... callbacks) {
- return ofData(tooltipEnabled, tooltipEnabled, address, codec, cacheable, contains, callbacks);
+ private static <T> DataTooltipInfoType<T> ofData(String address, Codec<T> codec, boolean cacheable, BiPredicate<T, String> contains, Predicate<GeneralConfig.ItemTooltip> tooltipEnabled, Consumer<T>... callbacks) {
+ return ofData(address, codec, cacheable, contains, tooltipEnabled, tooltipEnabled, callbacks);
}
@SafeVarargs
- private static <T> DataTooltipInfoType<T> ofData(Predicate<GeneralConfig.ItemTooltip> tooltipEnabled, Predicate<GeneralConfig.ItemTooltip> dataEnabled, String address, Codec<T> codec, boolean cacheable, BiPredicate<T, String> contains, Consumer<T>... callbacks) {
- return new DataTooltipInfo<>(tooltipEnabled, dataEnabled, address, codec, cacheable, contains, callbacks);
+ private static <T> DataTooltipInfoType<T> ofData(String address, Codec<T> codec, boolean cacheable, BiPredicate<T, String> contains, Predicate<GeneralConfig.ItemTooltip> tooltipEnabled, Predicate<GeneralConfig.ItemTooltip> dataEnabled, Consumer<T>... callbacks) {
+ return new DataTooltipInfo<>(address, codec, cacheable, contains, tooltipEnabled, dataEnabled, callbacks);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/utils/CodecUtils.java b/src/main/java/de/hysky/skyblocker/utils/CodecUtils.java
index 5fc917bb..4a5acf41 100644
--- a/src/main/java/de/hysky/skyblocker/utils/CodecUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/CodecUtils.java
@@ -15,6 +15,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import java.util.Optional;
import java.util.OptionalDouble;
import java.util.OptionalInt;
+import java.util.function.Function;
public final class CodecUtils {
@@ -31,18 +32,18 @@ public final class CodecUtils {
}
public static <K> Codec<Object2BooleanMap<K>> object2BooleanMapCodec(Codec<K> keyCodec) {
- return Codec.unboundedMap(keyCodec, Codec.BOOL).xmap(Object2BooleanOpenHashMap::new, Object2BooleanOpenHashMap::new);
+ return Codec.unboundedMap(keyCodec, Codec.BOOL).xmap(Object2BooleanOpenHashMap::new, Function.identity());
}
public static <K> Codec<Object2IntMap<K>> object2IntMapCodec(Codec<K> keyCodec) {
- return Codec.unboundedMap(keyCodec, Codec.INT).xmap(Object2IntOpenHashMap::new, Object2IntOpenHashMap::new);
+ return Codec.unboundedMap(keyCodec, Codec.INT).xmap(Object2IntOpenHashMap::new, Function.identity());
}
public static <K> Codec<Object2DoubleMap<K>> object2DoubleMapCodec(Codec<K> keyCodec) {
- return Codec.unboundedMap(keyCodec, Codec.DOUBLE).xmap(Object2DoubleOpenHashMap::new, Object2DoubleOpenHashMap::new);
+ return Codec.unboundedMap(keyCodec, Codec.DOUBLE).xmap(Object2DoubleOpenHashMap::new, Function.identity());
}
public static <K, V> Codec<Object2ObjectMap<K, V>> object2ObjectMapCodec(Codec<K> keyCodec, Codec<V> valueCodec) {
- return Codec.unboundedMap(keyCodec, valueCodec).xmap(Object2ObjectOpenHashMap::new, Object2ObjectOpenHashMap::new);
+ return Codec.unboundedMap(keyCodec, valueCodec).xmap(Object2ObjectOpenHashMap::new, Function.identity());
}
}