aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-08-20 14:30:16 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-09-05 10:30:29 -0400
commit55c6846526acad6a4e519d9ede6c9a62d3c8d518 (patch)
tree3718086f4354320b77c88a9217b63026c378e20b /src/main/java
parent2d7545a345e5a64f1217c8a6d1a426ec132b7389 (diff)
downloadSkyblocker-55c6846526acad6a4e519d9ede6c9a62d3c8d518.tar.gz
Skyblocker-55c6846526acad6a4e519d9ede6c9a62d3c8d518.tar.bz2
Skyblocker-55c6846526acad6a4e519d9ede6c9a62d3c8d518.zip
Rename to ItemPrice
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java57
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java67
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java10
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;
}
}
}