From 2d7545a345e5a64f1217c8a6d1a426ec132b7389 Mon Sep 17 00:00:00 2001 From: VeritasDL <121319869+VeritasDL@users.noreply.github.com> Date: Thu, 1 Aug 2024 19:52:56 -0400 Subject: edit --- .../de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/main/java') 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 ddbe7620..bcad179e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java @@ -7,6 +7,8 @@ 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; @@ -106,10 +108,17 @@ public class BazaarHelper extends SimpleSlotTextAdder { // ======== 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()); + ItemStack stack = ItemRepository.getItemStack(slot.getStack().getNeuName()); if (stack != null && !stack.isEmpty()) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + Formatting.strip(stack.getName().getString())); + 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"))); } -- cgit From 55c6846526acad6a4e519d9ede6c9a62d3c8d518 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:30:16 +0800 Subject: Rename to ItemPrice --- .../config/categories/HelperCategory.java | 20 +++---- .../skyblocker/config/configs/HelperConfig.java | 9 ++- .../skyblocker/mixins/HandledScreenMixin.java | 16 ++---- .../skyblocker/skyblock/bazaar/BazaarHelper.java | 57 +----------------- .../hysky/skyblocker/skyblock/item/ItemPrice.java | 67 ++++++++++++++++++++++ .../item/tooltip/adders/AvgBinTooltip.java | 3 +- .../item/tooltip/adders/BazaarPriceTooltip.java | 6 +- .../skyblock/item/tooltip/adders/LBinTooltip.java | 10 +--- 8 files changed, 97 insertions(+), 91 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java (limited to 'src/main/java') 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.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.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 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> 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 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 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 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; } } } -- cgit From f9801bf87301b3d5c85db26fb6f4fb77f1863e43 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:40:24 +0800 Subject: Fix pet item names --- src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java index efbb8520..227fdf1d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java @@ -2,8 +2,6 @@ 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; @@ -33,11 +31,10 @@ public class ItemPrice { "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()); + String itemName = Formatting.strip(stack.getName().getString()).replaceFirst("\\[Lvl \\d+ ➡ \\d+] ", ""); if (TooltipInfoType.BAZAAR.getData() != null) { MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemName); } else if (TooltipInfoType.LOWEST_BINS.getData() != null) { @@ -59,7 +56,7 @@ public class ItemPrice { 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); + ItemTooltip.LOGGER.error("[Skyblocker Item Price] Failed to refresh item prices", e); player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.itemPriceRefreshFailed"))); return null; }); -- cgit From 963793473c4e3bb62065eae5cba27a798b243ca3 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sat, 31 Aug 2024 20:22:56 -0400 Subject: Fix merge conflicts --- .../de/hysky/skyblocker/skyblock/item/ItemPrice.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java index 227fdf1d..82a6d785 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java @@ -1,7 +1,8 @@ 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.info.DataTooltipInfoType; +import de.hysky.skyblocker.skyblock.item.tooltip.info.TooltipInfoType; import de.hysky.skyblocker.skyblock.itemlist.ItemRepository; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; @@ -15,9 +16,8 @@ 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; +import java.util.stream.Stream; public class ItemPrice { public static final KeyBinding ITEM_PRICE_LOOKUP = KeyBindingHelper.registerKeyBinding(new KeyBinding( @@ -47,14 +47,10 @@ public class ItemPrice { public static void refreshItemPrices(ClientPlayerEntity player) { player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.refreshingItemPrices"))); - List> 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")))) + 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.itemPrice.refreshedItemPrices")))) .exceptionally(e -> { ItemTooltip.LOGGER.error("[Skyblocker Item Price] Failed to refresh item prices", e); player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.itemPriceRefreshFailed"))); -- cgit From 91a2bb9068a142c91e935f687885e8b1643bc934 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sat, 31 Aug 2024 21:06:27 -0400 Subject: Fix item lookup --- .../skyblocker/skyblock/bazaar/BazaarHelper.java | 4 ---- .../hysky/skyblocker/skyblock/item/ItemPrice.java | 27 ++++++++++++++++++---- .../skyblock/searchoverlay/SearchOverManager.java | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'src/main/java') 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 5e4c9fdc..7fcbfac5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java @@ -17,7 +17,6 @@ import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Stream; public class BazaarHelper extends SimpleSlotTextAdder { private static final Pattern FILLED_PATTERN = Pattern.compile("Filled: \\S+ \\(?([\\d.]+)%\\)?!?"); @@ -29,9 +28,6 @@ public class BazaarHelper extends SimpleSlotTextAdder { super("(?:Co-op|Your) Bazaar Orders"); } - @Init - public static void init() {} - @Override public boolean isEnabled() { return SkyblockerConfigManager.get().helpers.bazaar.enableBazaarHelper; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java index 82a6d785..74acb0c3 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java @@ -4,6 +4,7 @@ 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.itemlist.ItemRepository; +import de.hysky.skyblocker.skyblock.searchoverlay.SearchOverManager; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; @@ -31,13 +32,29 @@ public class ItemPrice { "key.categories.skyblocker" )); + public static void init() {} + 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()).replaceFirst("\\[Lvl \\d+ ➡ \\d+] ", ""); - if (TooltipInfoType.BAZAAR.getData() != null) { + ItemStack stack = slot.getStack(); + String skyblockApiId = stack.getSkyblockApiId(); + ItemStack neuStack = ItemRepository.getItemStack(stack.getNeuName()); + if (neuStack != null && !neuStack.isEmpty()) { + String itemName = Formatting.strip(neuStack.getName().getString()); + + // Handle Pets + if (stack.getSkyblockId().equals("PET")) { + itemName = itemName.replaceFirst("\\[Lvl \\d+ ➡ \\d+] ", ""); + } + + // Handle Enchanted Books + if (itemName.equals("Enchanted Book")) { + itemName = SearchOverManager.capitalizeFully(skyblockApiId.replace("ENCHANTMENT_", "").replaceAll("_\\d+", "")); + } + + // Search up the item in the bazaar or auction house + if (TooltipInfoType.BAZAAR.hasOrNullWarning(skyblockApiId)) { MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemName); - } else if (TooltipInfoType.LOWEST_BINS.getData() != null) { + } else if (TooltipInfoType.LOWEST_BINS.hasOrNullWarning(skyblockApiId)) { MessageScheduler.INSTANCE.sendMessageAfterCooldown("/ahsearch " + itemName); } } else { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java b/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java index 905fc062..f3c36d8e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java @@ -183,7 +183,7 @@ public class SearchOverManager { * * @param str string to capitalize */ - private static String capitalizeFully(String str) { + public static String capitalizeFully(String str) { if (str == null || str.isEmpty()) { return str; } -- cgit From bbfc1021c48886e5d65c9f600858d7ca7ec46bb1 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 5 Sep 2024 10:34:32 -0400 Subject: Fix init merge conflicts --- src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java | 1 - src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main/java') 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 7fcbfac5..8fbeb6e0 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java @@ -1,6 +1,5 @@ package de.hysky.skyblocker.skyblock.bazaar; -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; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java index 74acb0c3..d682884d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.item; +import de.hysky.skyblocker.annotations.Init; 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; @@ -32,6 +33,7 @@ public class ItemPrice { "key.categories.skyblocker" )); + @Init public static void init() {} public static void itemPriceLookup(ClientPlayerEntity player, @NotNull Slot slot) { -- cgit