diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/item')
17 files changed, 151 insertions, 109 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextAdder.java index 71d9aa30..7ac403df 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextAdder.java @@ -1,18 +1,18 @@ package de.hysky.skyblocker.skyblock.item.slottext; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.render.gui.AbstractContainerMatcher; -import net.minecraft.screen.slot.Slot; +import de.hysky.skyblocker.utils.container.AbstractSlotTextAdder; +import de.hysky.skyblocker.utils.container.RegexContainerMatcher; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NotNull; -import java.util.List; import java.util.regex.Pattern; /** + * Simple implementation of a slot text adder. * Extend this class and add it to {@link SlotTextManager#adders} to add text to any arbitrary slot. */ -public abstract class SlotTextAdder extends AbstractContainerMatcher { +public abstract class SlotTextAdder extends RegexContainerMatcher implements AbstractSlotTextAdder { /** * Utility constructor that will compile the given string into a pattern. * @@ -38,20 +38,7 @@ public abstract class SlotTextAdder extends AbstractContainerMatcher { super(); } - /** - * This method will be called for each rendered slot. Consider using a switch statement on {@link Slot#id} if you wish to add different text to different slots. - * - * @return A list of positioned text to be rendered. Return {@link List#of()} if no text should be rendered. - * @implNote By minecraft's design, scaled text inexplicably moves around. - * So, limit your text to 3 characters (or roughly less than 20 width) if you want it to not look horrible. - */ - public abstract @NotNull List<SlotText> getText(Slot slot); - - /** - * Override this method to add conditions to enable or disable this adder. - * @return Whether this adder is enabled. - * @implNote The slot text adders only work while in skyblock, so no need to check for that again. - */ + @Override public boolean isEnabled() { return SkyblockerConfigManager.get().general.itemInfoDisplay.slotText; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java index aa9bf939..fe38e340 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java @@ -3,8 +3,8 @@ package de.hysky.skyblocker.skyblock.item.slottext; import de.hysky.skyblocker.skyblock.bazaar.BazaarHelper; import de.hysky.skyblocker.skyblock.item.slottext.adders.*; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.container.AbstractSlotTextAdder; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; -import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.screen.slot.Slot; import org.jetbrains.annotations.NotNull; @@ -13,7 +13,7 @@ import java.util.ArrayList; import java.util.List; public class SlotTextManager { - private static final SlotTextAdder[] adders = new SlotTextAdder[]{ + private static final AbstractSlotTextAdder[] adders = new AbstractSlotTextAdder[]{ new EssenceShopAdder(), new EnchantmentLevelAdder(), new MinionLevelAdder(), @@ -34,25 +34,24 @@ public class SlotTextManager { new BazaarHelper(), new StatsTuningAdder() }; - private static final ArrayList<SlotTextAdder> currentScreenAdders = new ArrayList<>(); + private static final ArrayList<AbstractSlotTextAdder> currentScreenAdders = new ArrayList<>(); private SlotTextManager() { } public static void init() { ScreenEvents.AFTER_INIT.register((client, screen, width, height) -> { - if (screen instanceof HandledScreen<?> && Utils.isOnSkyblock()) { - onScreenChange(screen); + if (screen instanceof HandledScreen<?> handledScreen && Utils.isOnSkyblock()) { + onScreenChange(handledScreen); ScreenEvents.remove(screen).register(ignored -> currentScreenAdders.clear()); } }); } - private static void onScreenChange(Screen screen) { - final String title = screen.getTitle().getString(); - for (SlotTextAdder adder : adders) { + private static void onScreenChange(HandledScreen<?> screen) { + for (AbstractSlotTextAdder adder : adders) { if (!adder.isEnabled()) continue; - if (adder.titlePattern == null || adder.titlePattern.matcher(title).find()) { + if (adder.test(screen)) { currentScreenAdders.add(adder); } } @@ -68,7 +67,7 @@ public class SlotTextManager { @NotNull public static List<SlotText> getText(Slot slot) { if (currentScreenAdders.isEmpty()) return List.of(); - for (SlotTextAdder adder : currentScreenAdders) { + for (AbstractSlotTextAdder adder : currentScreenAdders) { List<SlotText> text = adder.getText(slot); if (!text.isEmpty()) return text; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java index f3395def..84571149 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java @@ -1,46 +1,57 @@ package de.hysky.skyblocker.skyblock.item.tooltip; -import de.hysky.skyblocker.utils.render.gui.AbstractContainerMatcher; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.slot.Slot; -import net.minecraft.text.Text; +import de.hysky.skyblocker.utils.container.RegexContainerMatcher; +import de.hysky.skyblocker.utils.container.AbstractTooltipAdder; import org.intellij.lang.annotations.Language; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; -import java.util.List; import java.util.regex.Pattern; /** + * Simple implementation of a tooltip adder. * Extend this class and add it to {@link TooltipManager#adders} to add additional text to tooltips. */ -public abstract class TooltipAdder extends AbstractContainerMatcher { +public abstract class TooltipAdder extends RegexContainerMatcher implements AbstractTooltipAdder { /** * The priority of this adder. Lower priority means it will be applied first. - * @apiNote Consider taking this value on your class' constructor and setting it from {@link TooltipManager#adders} to make it easy to read and maintain. + * @apiNote Consider adding this as a parameter to your class' constructor and + * setting it from {@link TooltipManager#adders} to make it easy to read and maintain. */ - public final int priority; + private final int priority; - protected TooltipAdder(@Language("RegExp") String titlePattern, int priority) { + /** + * Utility constructor that will compile the given string into a pattern. + * + * @see #TooltipAdder(Pattern, int) + */ + protected TooltipAdder(@NotNull @Language("RegExp") String titlePattern, int priority) { super(titlePattern); this.priority = priority; } - protected TooltipAdder(Pattern titlePattern, int priority) { + /** + * Creates a TooltipAdder that will be applied to screens with titles that match the given pattern. + * + * @param titlePattern The pattern to match the screen title against. + * @param priority The priority of this adder. Lower priority means it will be applied first. + */ + protected TooltipAdder(@NotNull Pattern titlePattern, int priority) { super(titlePattern); this.priority = priority; } /** * Creates a TooltipAdder that will be applied to all screens. + * + * @param priority The priority of this adder. Lower priority means it will be applied first. */ protected TooltipAdder(int priority) { super(); this.priority = priority; } - /** - * @implNote The first element of the lines list holds the item's display name, - * as it's a list of all lines that will be displayed in the tooltip. - */ - public abstract void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines); + @Override + public int getPriority() { + return priority; + } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java index 46f4cb58..d8327383 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipInfoType.java @@ -118,16 +118,6 @@ public enum TooltipInfoType implements Runnable { } /** - * Checks if the tooltip is enabled and the data has the given member name and sends a warning message if data is null. - * - * @param memberName the member name to check - * @return whether the tooltip is enabled and the data has the given member name or not - */ - public boolean isTooltipEnabledAndHasOrNullWarning(String memberName) { - return isTooltipEnabled() && hasOrNullWarning(memberName); - } - - /** * Downloads the data if it is enabled. * * @param futureList the list to add the future to diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java index c3399b58..2c81cff4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java @@ -6,10 +6,10 @@ import de.hysky.skyblocker.skyblock.chocolatefactory.ChocolateFactorySolver; import de.hysky.skyblocker.skyblock.item.tooltip.adders.*; import de.hysky.skyblocker.skyblock.item.tooltip.adders.CraftPriceTooltip; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.container.AbstractTooltipAdder; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; @@ -21,7 +21,7 @@ import java.util.Comparator; import java.util.List; public class TooltipManager { - private static final TooltipAdder[] adders = new TooltipAdder[]{ + private static final AbstractTooltipAdder[] adders = new AbstractTooltipAdder[]{ new LineSmoothener(), // Applies before anything else new SupercraftReminder(), new ChocolateFactorySolver.Tooltip(), @@ -39,7 +39,7 @@ public class TooltipManager { new ColorTooltip(11), new AccessoryTooltip(12), }; - private static final ArrayList<TooltipAdder> currentScreenAdders = new ArrayList<>(); + private static final ArrayList<AbstractTooltipAdder> currentScreenAdders = new ArrayList<>(); private TooltipManager() { } @@ -53,20 +53,21 @@ public class TooltipManager { } }); ScreenEvents.AFTER_INIT.register((client, screen, width, height) -> { - onScreenChange(screen); + if (screen instanceof HandledScreen<?> handledScreen) { + onScreenChange(handledScreen); + } ScreenEvents.remove(screen).register(ignored -> currentScreenAdders.clear()); }); } - private static void onScreenChange(Screen screen) { - final String title = screen.getTitle().getString(); + private static void onScreenChange(HandledScreen<?> screen) { currentScreenAdders.clear(); - for (TooltipAdder adder : adders) { - if (adder.titlePattern == null || adder.titlePattern.matcher(title).find()) { + for (AbstractTooltipAdder adder : adders) { + if (adder.isEnabled() && adder.test(screen)) { currentScreenAdders.add(adder); } } - currentScreenAdders.sort(Comparator.comparingInt(adder -> adder.priority)); + currentScreenAdders.sort(Comparator.comparingInt(AbstractTooltipAdder::getPriority)); } /** @@ -84,7 +85,7 @@ public class TooltipManager { @Deprecated public static List<Text> addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { if (!Utils.isOnSkyblock()) return lines; - for (TooltipAdder adder : currentScreenAdders) { + for (AbstractTooltipAdder adder : currentScreenAdders) { adder.addToTooltip(focusedSlot, stack, lines); } return lines; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java index caed0e0e..0aeb1cc6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java @@ -21,7 +21,7 @@ public class AccessoryTooltip extends TooltipAdder { @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { final String internalID = stack.getSkyblockId(); - if (TooltipInfoType.ACCESSORIES.isTooltipEnabledAndHasOrNullWarning(internalID)) { + if (TooltipInfoType.ACCESSORIES.hasOrNullWarning(internalID)) { Pair<AccessoriesHelper.AccessoryReport, String> report = AccessoriesHelper.calculateReport4Accessory(internalID); if (report.left() != AccessoriesHelper.AccessoryReport.INELIGIBLE) { @@ -42,4 +42,9 @@ public class AccessoryTooltip extends TooltipAdder { } } } + + @Override + public boolean isEnabled() { + return TooltipInfoType.ACCESSORIES.isTooltipEnabled(); + } } 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 d7a56b95..1f0180ff 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 @@ -1,6 +1,5 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; -import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.config.configs.GeneralConfig; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; @@ -24,40 +23,44 @@ public class AvgBinTooltip extends TooltipAdder { String internalID = stack.getSkyblockId(); if (neuName == null || internalID == null) return; - if (SkyblockerConfigManager.get().general.itemTooltip.enableAvgBIN) { - if (TooltipInfoType.ONE_DAY_AVERAGE.getData() == null || TooltipInfoType.THREE_DAY_AVERAGE.getData() == null) { - ItemTooltip.nullWarning(); - } else { + if (TooltipInfoType.ONE_DAY_AVERAGE.getData() == null || TooltipInfoType.THREE_DAY_AVERAGE.getData() == null) { + ItemTooltip.nullWarning(); + } else { /* 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) { - GeneralConfig.Average type = ItemTooltip.config.avg; + if (!neuName.isEmpty() && LBinTooltip.lbinExist) { + GeneralConfig.Average type = ItemTooltip.config.avg; - // "No data" line because of API not keeping old data, it causes NullPointerException - if (type == GeneralConfig.Average.ONE_DAY || type == GeneralConfig.Average.BOTH) { - lines.add( - Text.literal(String.format("%-19s", "1 Day Avg. Price:")) - .formatted(Formatting.GOLD) - .append(TooltipInfoType.ONE_DAY_AVERAGE.getData().get(neuName) == null - ? Text.literal("No data").formatted(Formatting.RED) - : ItemTooltip.getCoinsMessage(TooltipInfoType.ONE_DAY_AVERAGE.getData().get(neuName).getAsDouble(), stack.getCount()) - ) - ); - } - if (type == GeneralConfig.Average.THREE_DAY || type == GeneralConfig.Average.BOTH) { - lines.add( - Text.literal(String.format("%-19s", "3 Day Avg. Price:")) - .formatted(Formatting.GOLD) - .append(TooltipInfoType.THREE_DAY_AVERAGE.getData().get(neuName) == null - ? Text.literal("No data").formatted(Formatting.RED) - : ItemTooltip.getCoinsMessage(TooltipInfoType.THREE_DAY_AVERAGE.getData().get(neuName).getAsDouble(), stack.getCount()) - ) - ); - } + // "No data" line because of API not keeping old data, it causes NullPointerException + if (type == GeneralConfig.Average.ONE_DAY || type == GeneralConfig.Average.BOTH) { + lines.add( + Text.literal(String.format("%-19s", "1 Day Avg. Price:")) + .formatted(Formatting.GOLD) + .append(TooltipInfoType.ONE_DAY_AVERAGE.getData().get(neuName) == null + ? Text.literal("No data").formatted(Formatting.RED) + : ItemTooltip.getCoinsMessage(TooltipInfoType.ONE_DAY_AVERAGE.getData().get(neuName).getAsDouble(), stack.getCount()) + ) + ); + } + if (type == GeneralConfig.Average.THREE_DAY || type == GeneralConfig.Average.BOTH) { + lines.add( + Text.literal(String.format("%-19s", "3 Day Avg. Price:")) + .formatted(Formatting.GOLD) + .append(TooltipInfoType.THREE_DAY_AVERAGE.getData().get(neuName) == null + ? Text.literal("No data").formatted(Formatting.RED) + : ItemTooltip.getCoinsMessage(TooltipInfoType.THREE_DAY_AVERAGE.getData().get(neuName).getAsDouble(), stack.getCount()) + ) + ); } } } } + + @Override + public boolean isEnabled() { + //Both 1 day and 3 day averages use the same config option, so we only need to check one + return TooltipInfoType.THREE_DAY_AVERAGE.isTooltipEnabled(); + } } 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 d2fa563b..36023182 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 @@ -30,7 +30,7 @@ public class BazaarPriceTooltip extends TooltipAdder { if (name.startsWith("ISSHINY_")) name = "SHINY_" + internalID; - if (TooltipInfoType.BAZAAR.isTooltipEnabledAndHasOrNullWarning(name)) { + if (TooltipInfoType.BAZAAR.hasOrNullWarning(name)) { int amount; if (lines.get(1).getString().endsWith("Sack")) { //The amount is in the 2nd sibling of the 3rd line of the lore. here V @@ -54,4 +54,9 @@ public class BazaarPriceTooltip extends TooltipAdder { bazaarExist = true; } } + + @Override + public boolean isEnabled() { + return TooltipInfoType.BAZAAR.isTooltipEnabled(); + } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java index 7546d37a..d66ca378 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java @@ -26,9 +26,14 @@ public class ColorTooltip extends TooltipAdder { } @Override + public boolean isEnabled() { + return TooltipInfoType.COLOR.isTooltipEnabled(); + } + + @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { final String internalID = stack.getSkyblockId(); - if (TooltipInfoType.COLOR.isTooltipEnabledAndHasOrNullWarning(internalID) && stack.contains(DataComponentTypes.DYED_COLOR)) { + if (TooltipInfoType.COLOR.hasOrNullWarning(internalID) && stack.contains(DataComponentTypes.DYED_COLOR)) { //DyedColorComponent#getColor can be ARGB so we mask out the alpha bits int dyeColor = stack.get(DataComponentTypes.DYED_COLOR).rgb() & 0x00FFFFFF; String colorHex = String.format("%06X", dyeColor); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java index 0b1d993d..4cd1d2b5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java @@ -19,7 +19,6 @@ public class DungeonQualityTooltip extends TooltipAdder { @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { - if (!SkyblockerConfigManager.get().general.itemTooltip.dungeonQuality) return; NbtCompound customData = ItemUtils.getCustomData(stack); if (customData == null || !customData.contains("baseStatBoostPercentage")) return; int baseStatBoostPercentage = customData.getInt("baseStatBoostPercentage"); @@ -40,7 +39,7 @@ public class DungeonQualityTooltip extends TooltipAdder { } } - final String getItemTierFloor(int tier) { + private String getItemTierFloor(int tier) { return switch (tier) { case 0 -> "E"; case 1 -> "F1"; @@ -56,4 +55,9 @@ public class DungeonQualityTooltip extends TooltipAdder { default -> "Unknown"; }; } + + @Override + public boolean isEnabled() { + return SkyblockerConfigManager.get().general.itemTooltip.dungeonQuality; + } } 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 e6930c32..b2186203 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 @@ -19,6 +19,11 @@ public class LBinTooltip extends TooltipAdder { } @Override + public boolean isEnabled() { + return TooltipInfoType.LOWEST_BINS.isTooltipEnabled(); + } + + @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { lbinExist = false; final String internalID = stack.getSkyblockId(); @@ -30,7 +35,7 @@ public class LBinTooltip extends TooltipAdder { // bazaarOpened & bazaarExist check for lbin, because Skytils keeps some bazaar item data in lbin api - if (TooltipInfoType.LOWEST_BINS.isTooltipEnabledAndHasOrNullWarning(name) && !BazaarPriceTooltip.bazaarExist) { + if (TooltipInfoType.LOWEST_BINS.hasOrNullWarning(name) && !BazaarPriceTooltip.bazaarExist) { lines.add(Text.literal(String.format("%-19s", "Lowest BIN Price:")) .formatted(Formatting.GOLD) .append(ItemTooltip.getCoinsMessage(TooltipInfoType.LOWEST_BINS.getData().get(name).getAsDouble(), stack.getCount()))); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java index 0e997834..c459f76b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java @@ -17,6 +17,11 @@ public class LineSmoothener extends TooltipAdder { return Text.literal(" ").formatted(Formatting.DARK_GRAY, Formatting.STRIKETHROUGH, Formatting.BOLD); } + @Override + public boolean isEnabled() { + return true; + } + public LineSmoothener() { super(Integer.MIN_VALUE); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java index a0aa8d94..6a612594 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java @@ -21,13 +21,18 @@ public class MotesTooltip extends TooltipAdder { @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { final String internalID = stack.getSkyblockId(); - if (internalID != null && TooltipInfoType.MOTES.isTooltipEnabledAndHasOrNullWarning(internalID)) { + if (internalID != null && TooltipInfoType.MOTES.hasOrNullWarning(internalID)) { lines.add(Text.literal(String.format("%-20s", "Motes Price:")) .formatted(Formatting.LIGHT_PURPLE) .append(getMotesMessage(TooltipInfoType.MOTES.getData().get(internalID).getAsInt(), stack.getCount()))); } } + @Override + public boolean isEnabled() { + return TooltipInfoType.MOTES.isTooltipEnabled(); + } + private static Text getMotesMessage(int price, int count) { float motesMultiplier = SkyblockerConfigManager.get().otherLocations.rift.mcGrubberStacks * 0.05f + 1; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java index 5c21d2df..e6e06064 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java @@ -19,9 +19,14 @@ public class MuseumTooltip extends TooltipAdder { } @Override + public boolean isEnabled() { + return TooltipInfoType.MOTES.isTooltipEnabled(); + } + + @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { final String internalID = stack.getSkyblockId(); - if (TooltipInfoType.MUSEUM.isTooltipEnabledAndHasOrNullWarning(internalID)) { + if (TooltipInfoType.MUSEUM.hasOrNullWarning(internalID)) { String itemCategory = TooltipInfoType.MUSEUM.getData().get(internalID).getAsString(); String format = switch (itemCategory) { case "Weapons" -> "%-18s"; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java index d556c9b2..fcdd15e6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java @@ -18,9 +18,14 @@ public class NpcPriceTooltip extends TooltipAdder { } @Override + public boolean isEnabled() { + return TooltipInfoType.NPC.isTooltipEnabled(); + } + + @Override public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { final String internalID = stack.getSkyblockId(); - if (internalID != null && TooltipInfoType.NPC.isTooltipEnabledAndHasOrNullWarning(internalID)) { + if (internalID != null && TooltipInfoType.NPC.hasOrNullWarning(internalID)) { int amount; if (lines.get(1).getString().endsWith("Sack")) { //The amount is in the 2nd sibling of the 3rd line of the lore. here V diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java index 9f405c58..fc3ac28d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java @@ -27,15 +27,17 @@ public class ObtainedDateTooltip extends TooltipAdder { } @Override - public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { - if (TooltipInfoType.OBTAINED.isTooltipEnabled()) { - String timestamp = getTimestamp(stack); + public boolean isEnabled() { + return TooltipInfoType.OBTAINED.isTooltipEnabled(); + } - if (!timestamp.isEmpty()) { - lines.add(Text.empty() - .append(Text.literal(String.format("%-21s", "Obtained: ")).formatted(Formatting.LIGHT_PURPLE)) - .append(Text.literal(timestamp).formatted(Formatting.RED))); - } + @Override + public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) { + String timestamp = getTimestamp(stack); + if (!timestamp.isEmpty()) { + lines.add(Text.empty() + .append(Text.literal(String.format("%-21s", "Obtained: ")).formatted(Formatting.LIGHT_PURPLE)) + .append(Text.literal(timestamp).formatted(Formatting.RED))); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java index 47d2bd48..767832c0 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java @@ -29,4 +29,9 @@ public class SupercraftReminder extends TooltipAdder { if (lines.get(lines.size() - 2).getString().equals("Recipe not unlocked!")) index--; //Place it right below the "Right-Click to set amount" line lines.add(index, Text.literal("Shift-Click to maximize the amount!").formatted(Formatting.GOLD)); } + + @Override + public boolean isEnabled() { + return true; + } } |