aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java41
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java55
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java3
3 files changed, 62 insertions, 37 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java
index 505c4c8b..5183e901 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java
@@ -26,7 +26,10 @@ import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Optional;
import java.util.concurrent.CompletableFuture;
public class ItemTooltip {
@@ -125,40 +128,6 @@ public class ItemTooltip {
}
}
- final Map<Integer, String> itemTierFloors = Map.ofEntries(
- Map.entry(0, "E"),
- Map.entry(1, "F1"),
- Map.entry(2, "F2"),
- Map.entry(3, "F3"),
- Map.entry(4, "F4/M1"),
- Map.entry(5, "F5/M2"),
- Map.entry(6, "F6/M3"),
- Map.entry(7, "F7/M4"),
- Map.entry(8, "M5"),
- Map.entry(9, "M6"),
- Map.entry(10, "M7")
- );
-
- if (SkyblockerConfigManager.get().general.itemTooltip.dungeonQuality) {
- NbtCompound customData = ItemUtils.getCustomData(stack);
- if (customData != null && customData.contains("baseStatBoostPercentage")) {
- int baseStatBoostPercentage = customData.getInt("baseStatBoostPercentage");
- boolean maxQuality = baseStatBoostPercentage == 50;
- if (maxQuality) {
- lines.add(Text.literal(String.format("%-17s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.RED).formatted(Formatting.BOLD));
- } else {
- 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) {
- lines.add(Text.literal(String.format("%-17s", "Floor Tier:") + itemTier + " (" + itemTierFloors.get(itemTier) + ")").formatted(Formatting.RED).formatted(Formatting.BOLD));
- } else {
- lines.add(Text.literal(String.format("%-21s", "Floor Tier:") + itemTier + " (" + itemTierFloors.get(itemTier) + ")").formatted(Formatting.BLUE));
- }
- }
- }
- }
if (TooltipInfoType.MOTES.isTooltipEnabledAndHasOrNullWarning(internalID)) {
lines.add(Text.literal(String.format("%-20s", "Motes Price:"))
@@ -436,4 +405,4 @@ public class ItemTooltip {
});
}, 1200, true);
}
-}
+} \ No newline at end of file
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java
new file mode 100644
index 00000000..f7be590e
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java
@@ -0,0 +1,55 @@
+package de.hysky.skyblocker.utils.tooltip;
+
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.ItemUtils;
+import net.minecraft.nbt.NbtCompound;
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+import java.util.List;
+
+public class DungeonQualityTooltip extends TooltipAdder {
+ protected DungeonQualityTooltip(int priority) {
+ super(priority);
+ }
+
+ @Override
+ public void addToTooltip(List<Text> lore, 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));
+ } else {
+ lore.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));
+ } else {
+ lore.add(Text.literal(String.format("%-21s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.BLUE));
+ }
+ }
+ }
+
+ final String getItemTierFloor(int tier) {
+ return switch (tier) {
+ case 1 -> "F1";
+ case 2 -> "F2";
+ case 3 -> "F3";
+ case 4 -> "F4/M1";
+ case 5 -> "F5/M2";
+ case 6 -> "F6/M3";
+ case 7 -> "F7/M4";
+ case 8 -> "M5";
+ case 9 -> "M6";
+ case 10 -> "M7";
+ default -> "Unknown";
+ };
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
index 7d32e3cd..82f02445 100644
--- a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
@@ -12,7 +12,8 @@ import java.util.List;
public class TooltipManager {
private static final TooltipAdder[] adders = new TooltipAdder[]{
- new LineSmoothener()
+ new LineSmoothener(),
+ new DungeonQualityTooltip(0)
};
private static final ArrayList<TooltipAdder> currentScreenAdders = new ArrayList<>();