diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-29 16:39:36 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 |
commit | 00faab7a0f29e1c1723464d7aa4975383f99a67b (patch) | |
tree | e38071e62cd051fb9fcf0b29cfc5f0d118b13f0f /src/main | |
parent | b8682b30ba5d4cd4efdbef74681f6f4fb9c207d7 (diff) | |
download | Skyblocker-00faab7a0f29e1c1723464d7aa4975383f99a67b.tar.gz Skyblocker-00faab7a0f29e1c1723464d7aa4975383f99a67b.tar.bz2 Skyblocker-00faab7a0f29e1c1723464d7aa4975383f99a67b.zip |
Added item price multiplication on sacks when there's multiple items
Basically price*<amount in sack>.
Also renamed `lore` to `lines` in all `TooltipAdder`s.
Diffstat (limited to 'src/main')
13 files changed, 70 insertions, 57 deletions
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 6108dbf8..6c055975 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 @@ -53,17 +53,17 @@ public class TooltipManager { * * <p>If you want to add info to the tooltips of multiple items, consider using a switch statement with {@code focusedSlot.getIndex()}</p> * - * @param lore The lore of the focused item. + * @param lines The tooltip lines of the focused item. This includes the display name, as it's a part of the tooltip (at index 0). * @param focusedSlot The slot that is currently focused by the cursor. - * @return The lore itself after all adders have added their text. + * @return The lines list itself after all adders have added their text. * @deprecated This method is public only for the sake of the mixin. Don't call directly, not that there is any point to it. */ @Deprecated - public static List<Text> addToTooltip(List<Text> lore, Slot focusedSlot) { - if (!Utils.isOnSkyblock()) return lore; + public static List<Text> addToTooltip(List<Text> lines, Slot focusedSlot) { + if (!Utils.isOnSkyblock()) return lines; for (TooltipAdder adder : currentScreenAdders) { - adder.addToTooltip(lore, focusedSlot); + adder.addToTooltip(lines, focusedSlot); } - return lore; + 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 b35ba0a1..d26e1846 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 @@ -17,7 +17,7 @@ public class AccessoryTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { final String internalID = ItemTooltip.getInternalNameFromNBT(focusedSlot.getStack(), true); if (TooltipInfoType.ACCESSORIES.isTooltipEnabledAndHasOrNullWarning(internalID)) { Pair<AccessoriesHelper.AccessoryReport, String> report = AccessoriesHelper.calculateReport4Accessory(internalID); @@ -36,7 +36,7 @@ public class AccessoryTooltip extends TooltipAdder { default -> Text.literal("? Unknown").formatted(Formatting.GRAY); }; - lore.add(title.append(stateText)); + lines.add(title.append(stateText)); } } } 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 70dc3b21..8bb71c9a 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 @@ -17,7 +17,7 @@ public class AvgBinTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { final ItemStack itemStack = focusedSlot.getStack(); String neuName = ItemTooltip.getInternalNameFromNBT(itemStack, false); String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); @@ -40,7 +40,7 @@ public class AvgBinTooltip extends TooltipAdder { // "No data" line because of API not keeping old data, it causes NullPointerException if (type == GeneralConfig.Average.ONE_DAY || type == GeneralConfig.Average.BOTH) { - lore.add( + lines.add( Text.literal(String.format("%-19s", "1 Day Avg. Price:")) .formatted(Formatting.GOLD) .append(TooltipInfoType.ONE_DAY_AVERAGE.getData().get(neuName) == null @@ -50,7 +50,7 @@ public class AvgBinTooltip extends TooltipAdder { ); } if (type == GeneralConfig.Average.THREE_DAY || type == GeneralConfig.Average.BOTH) { - lore.add( + lines.add( Text.literal(String.format("%-19s", "3 Day Avg. Price:")) .formatted(Formatting.GOLD) .append(TooltipInfoType.THREE_DAY_AVERAGE.getData().get(neuName) == null 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 8266aa87..12d7e821 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 @@ -7,6 +7,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import org.apache.commons.lang3.math.NumberUtils; import java.util.List; @@ -18,7 +19,7 @@ public class BazaarPriceTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { bazaarExist = false; final ItemStack itemStack = focusedSlot.getStack(); final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); @@ -29,17 +30,26 @@ public class BazaarPriceTooltip extends TooltipAdder { if (name.startsWith("ISSHINY_")) name = "SHINY_" + internalID; if (TooltipInfoType.BAZAAR.isTooltipEnabledAndHasOrNullWarning(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 + //Example line: empty[style={color=dark_purple,!italic}, siblings=[literal{Stored: }[style={color=gray}], literal{0}[style={color=dark_gray}], literal{/20k}[style={color=gray}]] + String line = lines.get(3).getSiblings().get(1).getString().replace(",", ""); + amount = NumberUtils.isParsable(line) && !line.equals("0") ? Integer.parseInt(line) : itemStack.getCount(); + } else { + amount = itemStack.getCount(); + } JsonObject getItem = TooltipInfoType.BAZAAR.getData().getAsJsonObject(name); - lore.add(Text.literal(String.format("%-18s", "Bazaar buy Price:")) - .formatted(Formatting.GOLD) - .append(getItem.get("buyPrice").isJsonNull() + lines.add(Text.literal(String.format("%-18s", "Bazaar buy Price:")) + .formatted(Formatting.GOLD) + .append(getItem.get("buyPrice").isJsonNull() ? Text.literal("No data").formatted(Formatting.RED) - : ItemTooltip.getCoinsMessage(getItem.get("buyPrice").getAsDouble(), itemStack.getCount()))); - lore.add(Text.literal(String.format("%-19s", "Bazaar sell Price:")) - .formatted(Formatting.GOLD) - .append(getItem.get("sellPrice").isJsonNull() + : ItemTooltip.getCoinsMessage(getItem.get("buyPrice").getAsDouble(), amount))); + lines.add(Text.literal(String.format("%-19s", "Bazaar sell Price:")) + .formatted(Formatting.GOLD) + .append(getItem.get("sellPrice").isJsonNull() ? Text.literal("No data").formatted(Formatting.RED) - : ItemTooltip.getCoinsMessage(getItem.get("sellPrice").getAsDouble(), itemStack.getCount()))); + : ItemTooltip.getCoinsMessage(getItem.get("sellPrice").getAsDouble(), amount))); bazaarExist = true; } } 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 253626ef..d806faa8 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 @@ -27,7 +27,7 @@ public class ColorTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { final ItemStack itemStack = focusedSlot.getStack(); final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); if (TooltipInfoType.COLOR.isTooltipEnabledAndHasOrNullWarning(internalID) && itemStack.contains(DataComponentTypes.DYED_COLOR)) { @@ -43,18 +43,18 @@ public class ColorTooltip extends TooltipAdder { String expectedHex = getExpectedHex(internalID); boolean correctLine = false; - for (Text text : lore) { + for (Text text : lines) { String existingTooltip = text.getString() + " "; if (existingTooltip.startsWith("Color: ")) { correctLine = true; - addExoticTooltip(lore, internalID, ItemUtils.getCustomData(itemStack), colorHex, expectedHex, existingTooltip); + addExoticTooltip(lines, internalID, ItemUtils.getCustomData(itemStack), colorHex, expectedHex, existingTooltip); break; } } if (!correctLine) { - addExoticTooltip(lore, internalID, ItemUtils.getCustomData(itemStack), colorHex, expectedHex, ""); + addExoticTooltip(lines, internalID, ItemUtils.getCustomData(itemStack), colorHex, expectedHex, ""); } } } 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 7f928e75..54616963 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 @@ -15,24 +15,24 @@ public class DungeonQualityTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { if (!SkyblockerConfigManager.get().general.itemTooltip.dungeonQuality) return; NbtCompound customData = ItemUtils.getCustomData(focusedSlot.getStack()); if (customData == null || !customData.contains("baseStatBoostPercentage")) return; int baseStatBoostPercentage = customData.getInt("baseStatBoostPercentage"); boolean maxQuality = baseStatBoostPercentage == 50; if (maxQuality) { - lore.add(Text.literal(String.format("%-17s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.RED).formatted(Formatting.BOLD)); + lines.add(Text.literal(String.format("%-17s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.RED).formatted(Formatting.BOLD)); } else { - lore.add(Text.literal(String.format("%-21s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.BLUE)); + lines.add(Text.literal(String.format("%-21s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.BLUE)); } if (customData.contains("item_tier")) { // sometimes it just isn't here? int itemTier = customData.getInt("item_tier"); if (maxQuality) { - lore.add(Text.literal(String.format("%-17s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.RED).formatted(Formatting.BOLD)); + lines.add(Text.literal(String.format("%-17s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.RED).formatted(Formatting.BOLD)); } else { - lore.add(Text.literal(String.format("%-21s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.BLUE)); + lines.add(Text.literal(String.format("%-21s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.BLUE)); } } } 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 f5332215..7d109081 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 @@ -17,7 +17,7 @@ public class LBinTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { lbinExist = false; final ItemStack itemStack = focusedSlot.getStack(); final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); @@ -30,9 +30,9 @@ 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) { - lore.add(Text.literal(String.format("%-19s", "Lowest BIN Price:")) - .formatted(Formatting.GOLD) - .append(ItemTooltip.getCoinsMessage(TooltipInfoType.LOWEST_BINS.getData().get(name).getAsDouble(), itemStack.getCount()))); + lines.add(Text.literal(String.format("%-19s", "Lowest BIN Price:")) + .formatted(Formatting.GOLD) + .append(ItemTooltip.getCoinsMessage(TooltipInfoType.LOWEST_BINS.getData().get(name).getAsDouble(), itemStack.getCount()))); lbinExist = true; } } 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 b527284a..9a5b2a79 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 @@ -19,12 +19,12 @@ public class LineSmoothener extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { - for (int i = 0; i < lore.size(); i++) { - List<Text> lineSiblings = lore.get(i).getSiblings(); + public void addToTooltip(List<Text> lines, Slot focusedSlot) { + for (int i = 0; i < lines.size(); i++) { + List<Text> lineSiblings = lines.get(i).getSiblings(); //Compare the first sibling rather than the whole object as the style of the root object can change while visually staying the same if (lineSiblings.size() == 1 && lineSiblings.getFirst().equals(BUMPY_LINE)) { - lore.set(i, createSmoothLine()); + lines.set(i, createSmoothLine()); } } } 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 23a88d55..285a1449 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 @@ -18,13 +18,13 @@ public class MotesTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { final ItemStack itemStack = focusedSlot.getStack(); final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); if (internalID != null && TooltipInfoType.MOTES.isTooltipEnabledAndHasOrNullWarning(internalID)) { - lore.add(Text.literal(String.format("%-20s", "Motes Price:")) - .formatted(Formatting.LIGHT_PURPLE) - .append(getMotesMessage(TooltipInfoType.MOTES.getData().get(internalID).getAsInt(), itemStack.getCount()))); + lines.add(Text.literal(String.format("%-20s", "Motes Price:")) + .formatted(Formatting.LIGHT_PURPLE) + .append(getMotesMessage(TooltipInfoType.MOTES.getData().get(internalID).getAsInt(), itemStack.getCount()))); } } 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 ced3fe76..734dd508 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 @@ -18,7 +18,7 @@ public class MuseumTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { final ItemStack itemStack = focusedSlot.getStack(); final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); if (TooltipInfoType.MUSEUM.isTooltipEnabledAndHasOrNullWarning(internalID)) { @@ -31,18 +31,18 @@ public class MuseumTooltip extends TooltipAdder { //Special case the special category so that it doesn't always display not donated if (itemCategory.equals("Special")) { - lore.add(Text.literal(String.format(format, "Museum: (" + itemCategory + ")")) - .formatted(Formatting.LIGHT_PURPLE)); + lines.add(Text.literal(String.format(format, "Museum: (" + itemCategory + ")")) + .formatted(Formatting.LIGHT_PURPLE)); } else { NbtCompound customData = ItemUtils.getCustomData(itemStack); boolean isInMuseum = (customData.contains("donated_museum") && customData.getBoolean("donated_museum")) || MuseumItemCache.hasItemInMuseum(internalID); Formatting donatedIndicatorFormatting = isInMuseum ? Formatting.GREEN : Formatting.RED; - lore.add(Text.literal(String.format(format, "Museum (" + itemCategory + "):")) - .formatted(Formatting.LIGHT_PURPLE) - .append(Text.literal(isInMuseum ? "✔" : "✖").formatted(donatedIndicatorFormatting, Formatting.BOLD)) - .append(Text.literal(isInMuseum ? " Donated" : " Not Donated").formatted(donatedIndicatorFormatting))); + lines.add(Text.literal(String.format(format, "Museum (" + itemCategory + "):")) + .formatted(Formatting.LIGHT_PURPLE) + .append(Text.literal(isInMuseum ? "✔" : "✖").formatted(donatedIndicatorFormatting, Formatting.BOLD)) + .append(Text.literal(isInMuseum ? " Donated" : " Not Donated").formatted(donatedIndicatorFormatting))); } } } 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 386e38a5..3b12f482 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 @@ -15,13 +15,13 @@ public class NpcPriceTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { final ItemStack stack = focusedSlot.getStack(); final String internalID = ItemTooltip.getInternalNameFromNBT(stack, true); if (internalID != null && TooltipInfoType.NPC.isTooltipEnabledAndHasOrNullWarning(internalID)) { - lore.add(Text.literal(String.format("%-21s", "NPC Sell Price:")) - .formatted(Formatting.YELLOW) - .append(ItemTooltip.getCoinsMessage(TooltipInfoType.NPC.getData().get(internalID).getAsDouble(), stack.getCount()))); + lines.add(Text.literal(String.format("%-21s", "NPC Sell Price:")) + .formatted(Formatting.YELLOW) + .append(ItemTooltip.getCoinsMessage(TooltipInfoType.NPC.getData().get(internalID).getAsDouble(), stack.getCount()))); } } } 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 03254225..e919122d 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 @@ -25,14 +25,14 @@ public class ObtainedDateTooltip extends TooltipAdder { } @Override - public void addToTooltip(List<Text> lore, Slot focusedSlot) { + public void addToTooltip(List<Text> lines, Slot focusedSlot) { if (TooltipInfoType.OBTAINED.isTooltipEnabled()) { String timestamp = getTimestamp(focusedSlot.getStack()); if (!timestamp.isEmpty()) { - lore.add(Text.empty() - .append(Text.literal(String.format("%-21s", "Obtained: ")).formatted(Formatting.LIGHT_PURPLE)) - .append(Text.literal(timestamp).formatted(Formatting.RED))); + 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/TooltipAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java index 254add09..a466faba 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java @@ -32,5 +32,8 @@ public abstract class TooltipAdder { this.priority = priority; } - public abstract void addToTooltip(List<Text> lore, Slot focusedSlot); + /** + * @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(List<Text> lines, Slot focusedSlot); } |