diff options
| author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-08-20 14:30:16 +0800 |
|---|---|---|
| committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-09-05 10:30:29 -0400 |
| commit | 55c6846526acad6a4e519d9ede6c9a62d3c8d518 (patch) | |
| tree | 3718086f4354320b77c88a9217b63026c378e20b /src/main/java | |
| parent | 2d7545a345e5a64f1217c8a6d1a426ec132b7389 (diff) | |
| download | Skyblocker-55c6846526acad6a4e519d9ede6c9a62d3c8d518.tar.gz Skyblocker-55c6846526acad6a4e519d9ede6c9a62d3c8d518.tar.bz2 Skyblocker-55c6846526acad6a4e519d9ede6c9a62d3c8d518.zip | |
Rename to ItemPrice
Diffstat (limited to 'src/main/java')
8 files changed, 97 insertions, 91 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java index e6d9fffb..ec34dea6 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java @@ -220,19 +220,19 @@ public class HelperCategory { .controller(ConfigUtils::createBooleanController) .build()) .option(Option.<Boolean>createBuilder() - .name(Text.translatable("skyblocker.config.helpers.bazaar.enableBazaarLookup")) - .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.bazaar.enableBazaarLookup.@Tooltip"))) - .binding(defaults.helpers.bazaar.enableBazaarLookup, - () -> config.helpers.bazaar.enableBazaarLookup, - newValue -> config.helpers.bazaar.enableBazaarLookup = newValue) + .name(Text.translatable("skyblocker.config.helpers.itemPrice.enableItemPriceLookup")) + .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.itemPrice.enableItemPriceLookup.@Tooltip"))) + .binding(defaults.helpers.itemPrice.enableItemPriceLookup, + () -> config.helpers.itemPrice.enableItemPriceLookup, + newValue -> config.helpers.itemPrice.enableItemPriceLookup = newValue) .controller(ConfigUtils::createBooleanController) .build()) .option(Option.<Boolean>createBuilder() - .name(Text.translatable("skyblocker.config.helpers.bazaar.enableRefreshItemPrices")) - .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.bazaar.enableRefreshItemPrices.@Tooltip"))) - .binding(defaults.helpers.bazaar.enableBazaarRefresh, - () -> config.helpers.bazaar.enableBazaarRefresh, - newValue -> config.helpers.bazaar.enableBazaarRefresh = newValue) + .name(Text.translatable("skyblocker.config.helpers.itemPrice.enableItemPriceRefresh")) + .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.itemPrice.enableItemPriceRefresh.@Tooltip"))) + .binding(defaults.helpers.itemPrice.enableItemPriceRefresh, + () -> config.helpers.itemPrice.enableItemPriceRefresh, + newValue -> config.helpers.itemPrice.enableItemPriceRefresh = newValue) .controller(ConfigUtils::createBooleanController) .build()) .option(ConfigUtils.createShortcutToKeybindsScreen()) diff --git a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java index 74ba8228..ad5a14ae 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java @@ -29,6 +29,9 @@ public class HelperConfig { @SerialEntry public Bazaar bazaar = new Bazaar(); + @SerialEntry + public ItemPrice itemPrice = new ItemPrice(); + public static class MythologicalRitual { @SerialEntry public boolean enableMythologicalRitualHelper = true; @@ -101,11 +104,13 @@ public class HelperConfig { public static class Bazaar { @SerialEntry public boolean enableBazaarHelper = true; + } + public static class ItemPrice { @SerialEntry - public boolean enableBazaarLookup = true; + public boolean enableItemPriceLookup = true; @SerialEntry - public boolean enableBazaarRefresh = true; + public boolean enableItemPriceRefresh = true; } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java index 6ee70bb8..bb21092e 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java @@ -7,15 +7,11 @@ import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.PetCache; -import de.hysky.skyblocker.skyblock.bazaar.BazaarHelper; import de.hysky.skyblocker.skyblock.experiment.ExperimentSolver; import de.hysky.skyblocker.skyblock.experiment.SuperpairsSolver; import de.hysky.skyblocker.skyblock.experiment.UltrasequencerSolver; import de.hysky.skyblocker.skyblock.garden.VisitorHelper; -import de.hysky.skyblocker.skyblock.item.ItemProtection; -import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds; -import de.hysky.skyblocker.skyblock.item.MuseumItemCache; -import de.hysky.skyblocker.skyblock.item.WikiLookup; +import de.hysky.skyblocker.skyblock.item.*; import de.hysky.skyblocker.skyblock.item.slottext.SlotTextManager; import de.hysky.skyblocker.skyblock.item.tooltip.BackpackPreview; import de.hysky.skyblocker.skyblock.item.tooltip.CompactorDeletorPreview; @@ -128,13 +124,13 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen if (ItemProtection.itemProtection.matchesKey(keyCode, scanCode)) { ItemProtection.handleKeyPressed(this.focusedSlot.getStack()); } - //Bazaar Lookup - if (config.helpers.bazaar.enableBazaarLookup && BazaarHelper.BAZAAR_LOOKUP.matchesKey(keyCode, scanCode)) { - BazaarHelper.bazaarLookup(client.player, this.focusedSlot); + //Item Price Lookup + if (config.helpers.itemPrice.enableItemPriceLookup && ItemPrice.ITEM_PRICE_LOOKUP.matchesKey(keyCode, scanCode)) { + ItemPrice.itemPriceLookup(client.player, this.focusedSlot); } //Refresh Item Prices - if (config.helpers.bazaar.enableBazaarRefresh && BazaarHelper.BAZAAR_REFRESH.matchesKey(keyCode, scanCode)) { - BazaarHelper.refreshItemPrices(this.client.player); + if (config.helpers.itemPrice.enableItemPriceRefresh && ItemPrice.ITEM_PRICE_REFRESH.matchesKey(keyCode, scanCode)) { + ItemPrice.refreshItemPrices(this.client.player); } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java index bcad179e..5e4c9fdc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java @@ -4,18 +4,7 @@ import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder; import de.hysky.skyblocker.skyblock.item.slottext.SlotText; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; -import de.hysky.skyblocker.skyblock.item.tooltip.info.DataTooltipInfoType; -import de.hysky.skyblocker.skyblock.item.tooltip.info.TooltipInfoType; -import de.hysky.skyblocker.skyblock.item.tooltip.adders.BazaarPriceTooltip; -import de.hysky.skyblocker.skyblock.item.tooltip.adders.LBinTooltip; -import de.hysky.skyblocker.skyblock.itemlist.ItemRepository; -import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.ItemUtils; -import de.hysky.skyblocker.utils.scheduler.MessageScheduler; -import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.option.KeyBinding; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; import net.minecraft.text.MutableText; @@ -24,10 +13,8 @@ import net.minecraft.util.Formatting; import org.apache.commons.lang3.math.NumberUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.lwjgl.glfw.GLFW; import java.util.List; -import java.util.concurrent.CompletableFuture; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; @@ -38,18 +25,7 @@ public class BazaarHelper extends SimpleSlotTextAdder { private static final int YELLOW = 0xe6ba0b; private static final int GREEN = 0x1ee60b; - public static final KeyBinding BAZAAR_LOOKUP = KeyBindingHelper.registerKeyBinding(new KeyBinding( - "key.bazaarLookup", - GLFW.GLFW_KEY_F6, - "key.categories.skyblocker" - )); - public static final KeyBinding BAZAAR_REFRESH = KeyBindingHelper.registerKeyBinding(new KeyBinding( - "key.bazaarRefresh", - GLFW.GLFW_KEY_Z, - "key.categories.skyblocker" - )); - - public BazaarHelper() { + public BazaarHelper() { super("(?:Co-op|Your) Bazaar Orders"); } @@ -105,35 +81,4 @@ public class BazaarHelper extends SimpleSlotTextAdder { if (filled < 100) return Text.literal("%").withColor(YELLOW).formatted(Formatting.BOLD); return Text.literal("✅").withColor(GREEN).formatted(Formatting.BOLD); } - - // ======== Other Bazaar Features ======== - - // TODO: Come up with another name? due to supporting AH searching - // TODO: Add Cookie Buff reqirement somewhere in the config screen? - public static void bazaarLookup(ClientPlayerEntity player, @NotNull Slot slot) { - ItemStack stack = ItemRepository.getItemStack(slot.getStack().getNeuName()); - if (stack != null && !stack.isEmpty()) { - String itemName = Formatting.strip(stack.getName().getString()); - if (BazaarPriceTooltip.bazaarExist) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemName); - } else if (LBinTooltip.lbinExist) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/ahsearch " + itemName); - } - } else { - player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.bazaar.bazaarLookupFailed"))); - } - } - - public static void refreshItemPrices(ClientPlayerEntity player) { - player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.bazaar.refreshingItemPrices"))); - CompletableFuture.allOf(Stream.of(TooltipInfoType.NPC, TooltipInfoType.BAZAAR, TooltipInfoType.LOWEST_BINS, TooltipInfoType.ONE_DAY_AVERAGE, TooltipInfoType.THREE_DAY_AVERAGE) - .map(DataTooltipInfoType::downloadIfEnabled) - .toArray(CompletableFuture[]::new) - ).thenRun(() -> player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.bazaar.refreshedItemPrices")))) - .exceptionally(e -> { - ItemTooltip.LOGGER.error("[Skyblocker] Failed to refresh item prices", e); - player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.bazaar.refreshItemPricesFailed"))); - return null; - }); - } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java new file mode 100644 index 00000000..efbb8520 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java @@ -0,0 +1,67 @@ +package de.hysky.skyblocker.skyblock.item; + +import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; +import de.hysky.skyblocker.skyblock.item.tooltip.adders.BazaarPriceTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.adders.LBinTooltip; +import de.hysky.skyblocker.skyblock.itemlist.ItemRepository; +import de.hysky.skyblocker.utils.Constants; +import de.hysky.skyblocker.utils.scheduler.MessageScheduler; +import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.option.KeyBinding; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.jetbrains.annotations.NotNull; +import org.lwjgl.glfw.GLFW; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class ItemPrice { + public static final KeyBinding ITEM_PRICE_LOOKUP = KeyBindingHelper.registerKeyBinding(new KeyBinding( + "key.itemPriceLookup", + GLFW.GLFW_KEY_F6, + "key.categories.skyblocker" + )); + public static final KeyBinding ITEM_PRICE_REFRESH = KeyBindingHelper.registerKeyBinding(new KeyBinding( + "key.itemPriceRefresh", + GLFW.GLFW_KEY_Z, + "key.categories.skyblocker" + )); + + // TODO: fix pet items + public static void itemPriceLookup(ClientPlayerEntity player, @NotNull Slot slot) { + ItemStack stack = ItemRepository.getItemStack(slot.getStack().getNeuName()); + if (stack != null && !stack.isEmpty()) { + String itemName = Formatting.strip(stack.getName().getString()); + if (TooltipInfoType.BAZAAR.getData() != null) { + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemName); + } else if (TooltipInfoType.LOWEST_BINS.getData() != null) { + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/ahsearch " + itemName); + } + } else { + player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.itemPriceLookupFailed"))); + } + } + + public static void refreshItemPrices(ClientPlayerEntity player) { + player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.refreshingItemPrices"))); + List<CompletableFuture<Void>> futureList = new ArrayList<>(); + TooltipInfoType.NPC.downloadIfEnabled(futureList); + TooltipInfoType.BAZAAR.downloadIfEnabled(futureList); + TooltipInfoType.LOWEST_BINS.downloadIfEnabled(futureList); + TooltipInfoType.ONE_DAY_AVERAGE.downloadIfEnabled(futureList); + TooltipInfoType.THREE_DAY_AVERAGE.downloadIfEnabled(futureList); + CompletableFuture.allOf(futureList.toArray(CompletableFuture[]::new)) + .thenRun(() -> player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.refreshedItemPrices")))) + .exceptionally(e -> { + ItemTooltip.LOGGER.error("[Skyblocker] Failed to refresh item prices", e); + player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.itemPriceRefreshFailed"))); + return null; + }); + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java index 4d0e32a4..7fe67c7c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java @@ -19,6 +19,7 @@ public class AvgBinTooltip extends SimpleTooltipAdder { @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { + String skyblockApiId = stack.getSkyblockApiId(); String neuName = stack.getNeuName(); if (TooltipInfoType.ONE_DAY_AVERAGE.getData() == null || TooltipInfoType.THREE_DAY_AVERAGE.getData() == null) { @@ -28,7 +29,7 @@ public class AvgBinTooltip extends SimpleTooltipAdder { We are skipping check average prices for potions, runes and enchanted books because there is no data for their in API. */ - if (!neuName.isEmpty() && LBinTooltip.lbinExist) { + if (!neuName.isEmpty() && TooltipInfoType.LOWEST_BINS.hasOrNullWarning(skyblockApiId)) { GeneralConfig.Average type = ItemTooltip.config.avg; // "No data" line because of API not keeping old data, it causes NullPointerException diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java index 7c8c60cd..6d7d26c5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java @@ -14,15 +14,12 @@ import org.jetbrains.annotations.Nullable; import java.util.List; public class BazaarPriceTooltip extends SimpleTooltipAdder { - public static boolean bazaarExist = false; - - public BazaarPriceTooltip(int priority) { + public BazaarPriceTooltip(int priority) { super(priority); } @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { - bazaarExist = false; String skyblockApiId = stack.getSkyblockApiId(); if (TooltipInfoType.BAZAAR.hasOrNullWarning(skyblockApiId)) { @@ -46,7 +43,6 @@ public class BazaarPriceTooltip extends SimpleTooltipAdder { .append(product.sellPrice().isEmpty() ? Text.literal("No data").formatted(Formatting.RED) : ItemTooltip.getCoinsMessage(product.sellPrice().getAsDouble(), amount))); - bazaarExist = true; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java index 3838974a..8aabc13f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java @@ -12,9 +12,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; public class LBinTooltip extends SimpleTooltipAdder { - public static boolean lbinExist = false; - - public LBinTooltip(int priority) { + public LBinTooltip(int priority) { super(priority); } @@ -25,15 +23,13 @@ public class LBinTooltip extends SimpleTooltipAdder { @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { - lbinExist = false; String skyblockApiId = stack.getSkyblockApiId(); - // bazaarOpened & bazaarExist check for lbin, because Skytils keeps some bazaar item data in lbin api - if (TooltipInfoType.LOWEST_BINS.hasOrNullWarning(skyblockApiId) && !BazaarPriceTooltip.bazaarExist) { + // Check for whether the item exist in bazaar price data, because Skytils keeps some bazaar item data in lbin api + if (TooltipInfoType.LOWEST_BINS.hasOrNullWarning(skyblockApiId) && !TooltipInfoType.BAZAAR.hasOrNullWarning(skyblockApiId)) { lines.add(Text.literal(String.format("%-19s", "Lowest BIN Price:")) .formatted(Formatting.GOLD) .append(ItemTooltip.getCoinsMessage(TooltipInfoType.LOWEST_BINS.getData().getDouble(skyblockApiId), stack.getCount()))); - lbinExist = true; } } } |
