aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java6
16 files changed, 68 insertions, 52 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
index 35b91639..6a3fe0a5 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
@@ -191,8 +191,8 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen
@SuppressWarnings("deprecation")
@ModifyReturnValue(method = "getTooltipFromItem", at = @At("RETURN"))
- private List<Text> skyblocker$tooltips$addToTooltip(List<Text> tooltip) {
- return TooltipManager.addToTooltip(tooltip, focusedSlot);
+ private List<Text> skyblocker$tooltips$addToTooltip(List<Text> tooltip, ItemStack stack) {
+ return TooltipManager.addToTooltip(focusedSlot, stack, tooltip);
}
@ModifyVariable(method = "drawSlot", at = @At(value = "LOAD", ordinal = 3), ordinal = 0)
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java
index d33a83e9..02e0e8af 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java
@@ -18,6 +18,7 @@ import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
+import org.jetbrains.annotations.Nullable;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
@@ -255,8 +256,8 @@ public class ChocolateFactorySolver extends ContainerSolver {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- if (!SkyblockerConfigManager.get().helpers.chocolateFactory.enableChocolateFactoryHelper) return;
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ if (!SkyblockerConfigManager.get().helpers.chocolateFactory.enableChocolateFactoryHelper || focusedSlot == null) return;
int lineIndex = lines.size();
//This boolean is used to determine if we should add a smooth line to separate the added information from the rest of the tooltip.
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 07b9ac30..9bd63adc 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,8 +1,10 @@
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 org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.regex.Pattern;
@@ -39,5 +41,5 @@ public abstract class TooltipAdder extends AbstractContainerMatcher {
* @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);
+ public abstract void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines);
}
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 319df71a..1e7950e3 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
@@ -5,8 +5,10 @@ import de.hysky.skyblocker.skyblock.item.tooltip.adders.*;
import de.hysky.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.item.ItemStack;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
+import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Comparator;
@@ -42,6 +44,7 @@ public class TooltipManager {
private static void onScreenChange(Screen screen) {
final String title = screen.getTitle().getString();
+ currentScreenAdders.clear();
for (TooltipAdder adder : adders) {
if (adder.titlePattern == null || adder.titlePattern.matcher(title).find()) {
currentScreenAdders.add(adder);
@@ -56,16 +59,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 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.
+ * @param stack The stack to render the tooltip for.
+ * @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).
* @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> lines, Slot focusedSlot) {
+ public static List<Text> addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
if (!Utils.isOnSkyblock()) return lines;
for (TooltipAdder adder : currentScreenAdders) {
- adder.addToTooltip(lines, focusedSlot);
+ 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 3b150488..caed0e0e 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
@@ -4,10 +4,12 @@ import de.hysky.skyblocker.skyblock.item.tooltip.AccessoriesHelper;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
import it.unimi.dsi.fastutil.Pair;
+import net.minecraft.item.ItemStack;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -17,8 +19,8 @@ public class AccessoryTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- final String internalID = focusedSlot.getStack().getSkyblockId();
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ final String internalID = stack.getSkyblockId();
if (TooltipInfoType.ACCESSORIES.isTooltipEnabledAndHasOrNullWarning(internalID)) {
Pair<AccessoriesHelper.AccessoryReport, String> report = AccessoriesHelper.calculateReport4Accessory(internalID);
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 a36f30e9..d7a56b95 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
@@ -9,6 +9,7 @@ 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.Nullable;
import java.util.List;
@@ -18,10 +19,9 @@ public class AvgBinTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- final ItemStack itemStack = focusedSlot.getStack();
- String neuName = itemStack.getNeuName();
- String internalID = itemStack.getSkyblockId();
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ String neuName = stack.getNeuName();
+ String internalID = stack.getSkyblockId();
if (neuName == null || internalID == null) return;
if (SkyblockerConfigManager.get().general.itemTooltip.enableAvgBIN) {
@@ -42,7 +42,7 @@ public class AvgBinTooltip extends TooltipAdder {
.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(), itemStack.getCount())
+ : ItemTooltip.getCoinsMessage(TooltipInfoType.ONE_DAY_AVERAGE.getData().get(neuName).getAsDouble(), stack.getCount())
)
);
}
@@ -52,7 +52,7 @@ public class AvgBinTooltip extends TooltipAdder {
.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(), itemStack.getCount())
+ : ItemTooltip.getCoinsMessage(TooltipInfoType.THREE_DAY_AVERAGE.getData().get(neuName).getAsDouble(), stack.getCount())
)
);
}
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 0aab21c0..d2fa563b 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
@@ -9,6 +9,7 @@ import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.apache.commons.lang3.math.NumberUtils;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -20,12 +21,11 @@ public class BazaarPriceTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
bazaarExist = false;
- final ItemStack itemStack = focusedSlot.getStack();
- final String internalID = itemStack.getSkyblockId();
+ final String internalID = stack.getSkyblockId();
if (internalID == null) return;
- String name = itemStack.getSkyblockApiId();
+ String name = stack.getSkyblockApiId();
if (name == null) return;
if (name.startsWith("ISSHINY_")) name = "SHINY_" + internalID;
@@ -36,9 +36,9 @@ public class BazaarPriceTooltip extends TooltipAdder {
//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();
+ amount = NumberUtils.isParsable(line) && !line.equals("0") ? Integer.parseInt(line) : stack.getCount();
} else {
- amount = itemStack.getCount();
+ amount = stack.getCount();
}
JsonObject getItem = TooltipInfoType.BAZAAR.getData().getAsJsonObject(name);
lines.add(Text.literal(String.format("%-18s", "Bazaar buy Price:"))
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 2b576be6..26a040ec 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
@@ -14,6 +14,7 @@ import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.StringIdentifiable;
+import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -27,14 +28,13 @@ public class ColorTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- final ItemStack itemStack = focusedSlot.getStack();
- final String internalID = itemStack.getSkyblockId();
- if (TooltipInfoType.COLOR.isTooltipEnabledAndHasOrNullWarning(internalID) && itemStack.contains(DataComponentTypes.DYED_COLOR)) {
- String uuid = ItemUtils.getItemUuid(itemStack);
+ 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)) {
+ String uuid = ItemUtils.getItemUuid(stack);
boolean hasCustomDye = SkyblockerConfigManager.get().general.customDyeColors.containsKey(uuid) || SkyblockerConfigManager.get().general.customAnimatedDyes.containsKey(uuid);
//DyedColorComponent#getColor returns ARGB so we mask out the alpha bits
- int dyeColor = DyedColorComponent.getColor(itemStack, 0);
+ int dyeColor = DyedColorComponent.getColor(stack, 0);
// dyeColor will have alpha = 255 if it's dyed, and alpha = 0 if it's not dyed,
if (!hasCustomDye && dyeColor != 0) {
@@ -48,13 +48,13 @@ public class ColorTooltip extends TooltipAdder {
if (existingTooltip.startsWith("Color: ")) {
correctLine = true;
- addExoticTooltip(lines, internalID, ItemUtils.getCustomData(itemStack), colorHex, expectedHex, existingTooltip);
+ addExoticTooltip(lines, internalID, ItemUtils.getCustomData(stack), colorHex, expectedHex, existingTooltip);
break;
}
}
if (!correctLine) {
- addExoticTooltip(lines, internalID, ItemUtils.getCustomData(itemStack), colorHex, expectedHex, "");
+ addExoticTooltip(lines, internalID, ItemUtils.getCustomData(stack), 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 05e9887c..0b1d993d 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
@@ -3,10 +3,12 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder;
import de.hysky.skyblocker.utils.ItemUtils;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -16,9 +18,9 @@ public class DungeonQualityTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
if (!SkyblockerConfigManager.get().general.itemTooltip.dungeonQuality) return;
- NbtCompound customData = ItemUtils.getCustomData(focusedSlot.getStack());
+ NbtCompound customData = ItemUtils.getCustomData(stack);
if (customData == null || !customData.contains("baseStatBoostPercentage")) return;
int baseStatBoostPercentage = customData.getInt("baseStatBoostPercentage");
boolean maxQuality = baseStatBoostPercentage == 50;
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 45cfe3e4..e6930c32 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
@@ -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.jetbrains.annotations.Nullable;
import java.util.List;
@@ -18,12 +19,11 @@ public class LBinTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
lbinExist = false;
- final ItemStack itemStack = focusedSlot.getStack();
- final String internalID = itemStack.getSkyblockId();
+ final String internalID = stack.getSkyblockId();
if (internalID == null) return;
- String name = itemStack.getSkyblockApiId();
+ String name = stack.getSkyblockApiId();
if (name == null) return;
if (name.startsWith("ISSHINY_")) name = "SHINY_" + internalID;
@@ -33,7 +33,7 @@ public class LBinTooltip extends TooltipAdder {
if (TooltipInfoType.LOWEST_BINS.isTooltipEnabledAndHasOrNullWarning(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(), itemStack.getCount())));
+ .append(ItemTooltip.getCoinsMessage(TooltipInfoType.LOWEST_BINS.getData().get(name).getAsDouble(), stack.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 e3ce12df..0e997834 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
@@ -1,9 +1,11 @@
package de.hysky.skyblocker.skyblock.item.tooltip.adders;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder;
+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.Nullable;
import java.util.List;
@@ -20,7 +22,7 @@ public class LineSmoothener extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
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
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 64640b95..a0aa8d94 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
@@ -8,6 +8,7 @@ import net.minecraft.screen.slot.Slot;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Locale;
@@ -18,13 +19,12 @@ public class MotesTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- final ItemStack itemStack = focusedSlot.getStack();
- final String internalID = itemStack.getSkyblockId();
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ final String internalID = stack.getSkyblockId();
if (internalID != null && TooltipInfoType.MOTES.isTooltipEnabledAndHasOrNullWarning(internalID)) {
lines.add(Text.literal(String.format("%-20s", "Motes Price:"))
.formatted(Formatting.LIGHT_PURPLE)
- .append(getMotesMessage(TooltipInfoType.MOTES.getData().get(internalID).getAsInt(), itemStack.getCount())));
+ .append(getMotesMessage(TooltipInfoType.MOTES.getData().get(internalID).getAsInt(), stack.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 1c64760a..5c21d2df 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
@@ -9,6 +9,7 @@ import net.minecraft.nbt.NbtCompound;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -18,9 +19,8 @@ public class MuseumTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- final ItemStack itemStack = focusedSlot.getStack();
- final String internalID = itemStack.getSkyblockId();
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ final String internalID = stack.getSkyblockId();
if (TooltipInfoType.MUSEUM.isTooltipEnabledAndHasOrNullWarning(internalID)) {
String itemCategory = TooltipInfoType.MUSEUM.getData().get(internalID).getAsString();
String format = switch (itemCategory) {
@@ -34,7 +34,7 @@ public class MuseumTooltip extends TooltipAdder {
lines.add(Text.literal(String.format(format, "Museum: (" + itemCategory + ")"))
.formatted(Formatting.LIGHT_PURPLE));
} else {
- NbtCompound customData = ItemUtils.getCustomData(itemStack);
+ NbtCompound customData = ItemUtils.getCustomData(stack);
boolean isInMuseum = (customData.contains("donated_museum") && customData.getBoolean("donated_museum")) || MuseumItemCache.hasItemInMuseum(internalID);
Formatting donatedIndicatorFormatting = isInMuseum ? Formatting.GREEN : Formatting.RED;
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 3ac7d298..672201d5 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
@@ -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.jetbrains.annotations.Nullable;
import java.util.List;
@@ -16,8 +17,7 @@ public class NpcPriceTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- final ItemStack stack = focusedSlot.getStack();
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
final String internalID = stack.getSkyblockId();
if (internalID != null && TooltipInfoType.NPC.isTooltipEnabledAndHasOrNullWarning(internalID)) {
lines.add(Text.literal(String.format("%-21s", "NPC Sell Price:"))
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 9cc03b4d..9f405c58 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
@@ -9,6 +9,7 @@ import net.minecraft.nbt.NbtElement;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import java.time.Instant;
import java.time.ZoneId;
@@ -26,9 +27,9 @@ public class ObtainedDateTooltip extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
if (TooltipInfoType.OBTAINED.isTooltipEnabled()) {
- String timestamp = getTimestamp(focusedSlot.getStack());
+ String timestamp = getTimestamp(stack);
if (!timestamp.isEmpty()) {
lines.add(Text.empty()
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 8a8f198c..47d2bd48 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
@@ -2,10 +2,12 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder;
import de.hysky.skyblocker.utils.ItemUtils;
+import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.regex.Pattern;
@@ -19,8 +21,8 @@ public class SupercraftReminder extends TooltipAdder {
}
@Override
- public void addToTooltip(List<Text> lines, Slot focusedSlot) {
- if (focusedSlot.id != SUPERCRAFT_SLOT || !focusedSlot.getStack().isOf(Items.GOLDEN_PICKAXE)) return;
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ if (focusedSlot == null || focusedSlot.id != SUPERCRAFT_SLOT || !stack.isOf(Items.GOLDEN_PICKAXE)) return;
String uuid = ItemUtils.getItemUuid(focusedSlot.inventory.getStack(RECIPE_RESULT_SLOT));
if (!uuid.isEmpty()) return; //Items with UUID can't be stacked, and therefore the shift-click feature doesn't matter
int index = lines.size() - 1;