diff options
Diffstat (limited to 'src/main/java')
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()); } } |
