From d3d544c71b56903a2caf29570de6d7de7a73e359 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 24 Aug 2024 05:50:56 -0400 Subject: Suggestions --- .../item/tooltip/info/DataTooltipInfo.java | 6 ++--- .../item/tooltip/info/TooltipInfoType.java | 26 +++++++++++----------- .../java/de/hysky/skyblocker/utils/CodecUtils.java | 9 ++++---- 3 files changed, 21 insertions(+), 20 deletions(-) (limited to 'src/main/java') 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 extends SimpleTooltipInfo implements DataTooltipInfoType { - private final Predicate dataEnabled; private final String address; private final Codec codec; @Nullable @@ -24,18 +23,19 @@ public final class DataTooltipInfo extends SimpleTooltipInfo implements DataT private final boolean cacheable; private long hash; private final BiPredicate contains; + private final Predicate dataEnabled; @Nullable private final Consumer[] callbacks; @SafeVarargs - protected DataTooltipInfo(Predicate tooltipEnabled, Predicate dataEnabled, String address, Codec codec, boolean cacheable, BiPredicate contains, Consumer... callbacks) { + protected DataTooltipInfo(String address, Codec codec, boolean cacheable, BiPredicate contains, Predicate tooltipEnabled, Predicate dataEnabled, Consumer... 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> NPC = ofData(itemTooltip -> itemTooltip.enableNPCPrice, "https://hysky.de/api/npcprice", CodecUtils.object2DoubleMapCodec(Codec.STRING), true, Object2DoubleMap::containsKey); - DataTooltipInfoType> 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> 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> ONE_DAY_AVERAGE = ofData(itemTooltip -> itemTooltip.enableAvgBIN, "https://hysky.de/api/auctions/lowestbins/average/1day.json", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey); - DataTooltipInfoType> 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> MOTES = ofData(itemTooltip -> itemTooltip.enableMotesPrice, itemTooltip -> itemTooltip.enableMotesPrice && Utils.isInTheRift(), "https://hysky.de/api/motesprice", CodecUtils.object2IntMapCodec(Codec.STRING), true, Object2IntMap::containsKey); + DataTooltipInfoType> NPC = ofData("https://hysky.de/api/npcprice", CodecUtils.object2DoubleMapCodec(Codec.STRING), true, Object2DoubleMap::containsKey, itemTooltip -> itemTooltip.enableNPCPrice); + DataTooltipInfoType> 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> 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> ONE_DAY_AVERAGE = ofData("https://hysky.de/api/auctions/lowestbins/average/1day.json", CodecUtils.object2DoubleMapCodec(Codec.STRING), false, Object2DoubleMap::containsKey, itemTooltip -> itemTooltip.enableAvgBIN); + DataTooltipInfoType> 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> 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> MUSEUM = ofData(itemTooltip -> itemTooltip.enableMuseumInfo, "https://hysky.de/api/museum", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey); - DataTooltipInfoType> COLOR = ofData(itemTooltip -> itemTooltip.enableExoticTooltip, "https://hysky.de/api/color", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey); - DataTooltipInfoType> ACCESSORIES = ofData(itemTooltip -> itemTooltip.enableAccessoriesHelper, "https://hysky.de/api/accessories", Accessory.MAP_CODEC, true, Map::containsKey, AccessoriesHelper::refreshData); + DataTooltipInfoType> MUSEUM = ofData("https://hysky.de/api/museum", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey, itemTooltip -> itemTooltip.enableMuseumInfo); + DataTooltipInfoType> COLOR = ofData("https://hysky.de/api/color", Codec.unboundedMap(Codec.STRING, Codec.STRING), true, Map::containsKey, itemTooltip -> itemTooltip.enableExoticTooltip); + DataTooltipInfoType> 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 DataTooltipInfoType ofData(Predicate tooltipEnabled, String address, Codec codec, boolean cacheable, BiPredicate contains, Consumer... callbacks) { - return ofData(tooltipEnabled, tooltipEnabled, address, codec, cacheable, contains, callbacks); + private static DataTooltipInfoType ofData(String address, Codec codec, boolean cacheable, BiPredicate contains, Predicate tooltipEnabled, Consumer... callbacks) { + return ofData(address, codec, cacheable, contains, tooltipEnabled, tooltipEnabled, callbacks); } @SafeVarargs - private static DataTooltipInfoType ofData(Predicate tooltipEnabled, Predicate dataEnabled, String address, Codec codec, boolean cacheable, BiPredicate contains, Consumer... callbacks) { - return new DataTooltipInfo<>(tooltipEnabled, dataEnabled, address, codec, cacheable, contains, callbacks); + private static DataTooltipInfoType ofData(String address, Codec codec, boolean cacheable, BiPredicate contains, Predicate tooltipEnabled, Predicate dataEnabled, Consumer... 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 Codec> object2BooleanMapCodec(Codec 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 Codec> object2IntMapCodec(Codec 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 Codec> object2DoubleMapCodec(Codec 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 Codec> object2ObjectMapCodec(Codec keyCodec, Codec valueCodec) { - return Codec.unboundedMap(keyCodec, valueCodec).xmap(Object2ObjectOpenHashMap::new, Object2ObjectOpenHashMap::new); + return Codec.unboundedMap(keyCodec, valueCodec).xmap(Object2ObjectOpenHashMap::new, Function.identity()); } } -- cgit