diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-01 14:01:14 +0300 | 
|---|---|---|
| committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 | 
| commit | d5a5fc05b8d7f73c16b069d45396e55e4d0b3efa (patch) | |
| tree | f3358c8645728e29ec38c20dea098cac54919a41 /src/main/java | |
| parent | 8eab800571a599ef5f5ec7c3a353e8bb3b948b69 (diff) | |
| download | Skyblocker-d5a5fc05b8d7f73c16b069d45396e55e4d0b3efa.tar.gz Skyblocker-d5a5fc05b8d7f73c16b069d45396e55e4d0b3efa.tar.bz2 Skyblocker-d5a5fc05b8d7f73c16b069d45396e55e4d0b3efa.zip | |
Switch to interface injection to cache the items' internal ids and neu names
Diffstat (limited to 'src/main/java')
14 files changed, 133 insertions, 97 deletions
| diff --git a/src/main/java/de/hysky/skyblocker/injected/ItemStackInternalIdGetter.java b/src/main/java/de/hysky/skyblocker/injected/ItemStackInternalIdGetter.java new file mode 100644 index 00000000..25b84516 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/injected/ItemStackInternalIdGetter.java @@ -0,0 +1,11 @@ +package de.hysky.skyblocker.injected; + +public interface ItemStackInternalIdGetter { +	default String skyblocker$getInternalId(boolean internalIdOnly) { +		return ""; +	} + +	default String skyblocker$getNeuName() { +		return ""; +	} +} diff --git a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java index 878a93ac..48710bc0 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java @@ -1,13 +1,19 @@  package de.hysky.skyblocker.mixins; +import com.google.gson.JsonObject;  import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import de.hysky.skyblocker.SkyblockerMod;  import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.injected.ItemStackInternalIdGetter; +import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.utils.ItemUtils;  import de.hysky.skyblocker.utils.Utils;  import it.unimi.dsi.fastutil.ints.IntIntPair;  import net.minecraft.component.type.ItemEnchantmentsComponent;  import net.minecraft.item.ItemStack;  import net.minecraft.item.TooltipAppender; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement;  import net.minecraft.text.Text;  import org.spongepowered.asm.mixin.Mixin;  import org.spongepowered.asm.mixin.Shadow; @@ -17,8 +23,11 @@ import org.spongepowered.asm.mixin.injection.Inject;  import org.spongepowered.asm.mixin.injection.ModifyVariable;  import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.Locale; +import java.util.Optional; +  @Mixin(ItemStack.class) -public abstract class ItemStackMixin { +public abstract class ItemStackMixin implements ItemStackInternalIdGetter {  	@Shadow  	public abstract int getDamage(); @@ -29,6 +38,15 @@ public abstract class ItemStackMixin {  	@Unique  	private int maxDamage; +	@Unique +	private String internalId; + +	@Unique +	private String internalName; + +	@Unique +	private String neuName; +  	@ModifyReturnValue(method = "getName", at = @At("RETURN"))  	private Text skyblocker$customItemNames(Text original) {  		if (Utils.isOnSkyblock()) { @@ -103,4 +121,91 @@ public abstract class ItemStackMixin {  		setDamage(durability.rightInt() - durability.leftInt());  		return true;  	} + +	@Override +	public String skyblocker$getInternalId(boolean internalIDOnly) { +		if (internalIDOnly) { +			if (internalId != null && !internalId.isEmpty()) return internalId; +			internalId = skyblocker$getInternalNameFromNBT(true); +			return internalId; +		} // else +		if (internalName != null && !internalName.isEmpty()) return internalName; +		internalName = skyblocker$getInternalNameFromNBT(false); +		return internalName; +	} + +	@Override +	public String skyblocker$getNeuName() { +		if (neuName != null && !neuName.isEmpty()) return neuName; +		String name = skyblocker$getInternalId(false); +		String internalId = skyblocker$getInternalId(true); +		if (name == null || internalId == null) return ""; + +		if (name.startsWith("ISSHINY_")) name = internalId; + +		neuName = ItemTooltip.getNeuName(internalId, name); +		return neuName; +	} + +	@Unique +	private String skyblocker$getInternalNameFromNBT(boolean internalIDOnly) { +		NbtCompound customData = ItemUtils.getCustomData((ItemStack) (Object) this); + +		if (customData == null || !customData.contains(ItemUtils.ID, NbtElement.STRING_TYPE)) { +			return null; +		} +		String customDataString = customData.getString(ItemUtils.ID); + +		if (internalIDOnly) { +			return customDataString; +		} + +		// Transformation to API format. +		if (customData.contains("is_shiny")) { +			return "ISSHINY_" + customDataString; +		} + +		switch (customDataString) { +			case "ENCHANTED_BOOK" -> { +				if (customData.contains("enchantments")) { +					NbtCompound enchants = customData.getCompound("enchantments"); +					Optional<String> firstEnchant = enchants.getKeys().stream().findFirst(); +					String enchant = firstEnchant.orElse(""); +					return "ENCHANTMENT_" + enchant.toUpperCase(Locale.ENGLISH) + "_" + enchants.getInt(enchant); +				} +			} +			case "PET" -> { +				if (customData.contains("petInfo")) { +					JsonObject petInfo = SkyblockerMod.GSON.fromJson(customData.getString("petInfo"), JsonObject.class); +					return "LVL_1_" + petInfo.get("tier").getAsString() + "_" + petInfo.get("type").getAsString(); +				} +			} +			case "POTION" -> { +				String enhanced = customData.contains("enhanced") ? "_ENHANCED" : ""; +				String extended = customData.contains("extended") ? "_EXTENDED" : ""; +				String splash = customData.contains("splash") ? "_SPLASH" : ""; +				if (customData.contains("potion") && customData.contains("potion_level")) { +					return (customData.getString("potion") + "_" + customDataString + "_" + customData.getInt("potion_level") +							+ enhanced + extended + splash).toUpperCase(Locale.ENGLISH); +				} +			} +			case "RUNE" -> { +				if (customData.contains("runes")) { +					NbtCompound runes = customData.getCompound("runes"); +					Optional<String> firstRunes = runes.getKeys().stream().findFirst(); +					String rune = firstRunes.orElse(""); +					return rune.toUpperCase(Locale.ENGLISH) + "_RUNE_" + runes.getInt(rune); +				} +			} +			case "ATTRIBUTE_SHARD" -> { +				if (customData.contains("attributes")) { +					NbtCompound shards = customData.getCompound("attributes"); +					Optional<String> firstShards = shards.getKeys().stream().findFirst(); +					String shard = firstShards.orElse(""); +					return customDataString + "-" + shard.toUpperCase(Locale.ENGLISH) + "_" + shards.getInt(shard); +				} +			} +		} +		return customDataString; +	}  } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java b/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java index 7f8b2c71..0ca15e81 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java @@ -6,7 +6,6 @@ import de.hysky.skyblocker.config.configs.DungeonsConfig;  import de.hysky.skyblocker.config.configs.UIAndVisualsConfig;  import de.hysky.skyblocker.mixins.accessors.HandledScreenAccessor;  import de.hysky.skyblocker.mixins.accessors.ScreenAccessor; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;  import de.hysky.skyblocker.utils.ItemUtils;  import de.hysky.skyblocker.utils.Utils; @@ -81,7 +80,7 @@ public class ChestValue {  				}  				String name = stack.getName().getString(); -				String id = ItemTooltip.getInternalNameFromNBT(stack, false); +				String id = stack.skyblocker$getInternalId(false);  				//Regular item price  				if (id != null) { @@ -160,7 +159,7 @@ public class ChestValue {  					continue;  				} -				String id = ItemTooltip.getInternalNameFromNBT(stack, false); +				String id = stack.skyblocker$getInternalId(false);  				if (id != null) {  					LongBooleanPair priceData = getItemPrice(id); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java index 042b126b..b431dcc9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java @@ -1,7 +1,6 @@  package de.hysky.skyblocker.skyblock;  import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.utils.ItemUtils;  import de.hysky.skyblocker.utils.Utils;  import de.hysky.skyblocker.utils.render.RenderHelper; @@ -27,7 +26,7 @@ public class TeleportOverlay {      private static void render(WorldRenderContext wrc) {          if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableTeleportOverlays && client.player != null && client.world != null) {              ItemStack heldItem = client.player.getMainHandStack(); -            String itemId = ItemTooltip.getInternalNameFromNBT(heldItem, true); +            String itemId = heldItem.skyblocker$getInternalId(true);              NbtCompound customData = ItemUtils.getCustomData(heldItem);              if (itemId != null) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java index fd69d886..3a825e81 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java @@ -295,8 +295,8 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS                              String coins = split[1].replace(",", "").replace("coins", "").trim();                              try {                                  long parsed = Long.parseLong(coins); -                                String name = ItemTooltip.getInternalNameFromNBT(stack, false); -                                String internalID = ItemTooltip.getInternalNameFromNBT(stack, true); +                                String name = stack.skyblocker$getInternalId(false); +                                String internalID = stack.skyblocker$getInternalId(true);                                  String neuName = name;                                  if (name == null || internalID == null) break;                                  if (name.startsWith("ISSHINY_")) { 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 00ca80e6..e6a364e4 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 @@ -1,17 +1,11 @@  package de.hysky.skyblocker.skyblock.item.tooltip; -import com.google.gson.JsonObject; -import de.hysky.skyblocker.SkyblockerMod;  import de.hysky.skyblocker.config.SkyblockerConfigManager;  import de.hysky.skyblocker.config.configs.GeneralConfig;  import de.hysky.skyblocker.utils.Constants; -import de.hysky.skyblocker.utils.ItemUtils;  import de.hysky.skyblocker.utils.Utils;  import de.hysky.skyblocker.utils.scheduler.Scheduler;  import net.minecraft.client.MinecraftClient; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement;  import net.minecraft.text.Text;  import net.minecraft.util.Formatting;  import org.jetbrains.annotations.NotNull; @@ -21,7 +15,6 @@ import org.slf4j.LoggerFactory;  import java.util.ArrayList;  import java.util.List;  import java.util.Locale; -import java.util.Optional;  import java.util.concurrent.CompletableFuture;  public class ItemTooltip { @@ -56,7 +49,6 @@ public class ItemTooltip {          return neuName;      } -      public static void nullWarning() {          if (!sentNullWarning && client.player != null) {              LOGGER.warn(Constants.PREFIX.get().append(Text.translatable("skyblocker.itemTooltip.nullMessage")).getString()); @@ -64,68 +56,6 @@ public class ItemTooltip {          }      } -    // TODO What in the world is this? -    public static String getInternalNameFromNBT(ItemStack stack, boolean internalIDOnly) { -        NbtCompound customData = ItemUtils.getCustomData(stack); - -        if (customData == null || !customData.contains(ItemUtils.ID, NbtElement.STRING_TYPE)) { -            return null; -        } -        String internalName = customData.getString(ItemUtils.ID); - -        if (internalIDOnly) { -            return internalName; -        } - -        // Transformation to API format. -        if (customData.contains("is_shiny")) { -            return "ISSHINY_" + internalName; -        } - -        switch (internalName) { -            case "ENCHANTED_BOOK" -> { -                if (customData.contains("enchantments")) { -                    NbtCompound enchants = customData.getCompound("enchantments"); -                    Optional<String> firstEnchant = enchants.getKeys().stream().findFirst(); -                    String enchant = firstEnchant.orElse(""); -                    return "ENCHANTMENT_" + enchant.toUpperCase(Locale.ENGLISH) + "_" + enchants.getInt(enchant); -                } -            } -            case "PET" -> { -                if (customData.contains("petInfo")) { -                    JsonObject petInfo = SkyblockerMod.GSON.fromJson(customData.getString("petInfo"), JsonObject.class); -                    return "LVL_1_" + petInfo.get("tier").getAsString() + "_" + petInfo.get("type").getAsString(); -                } -            } -            case "POTION" -> { -                String enhanced = customData.contains("enhanced") ? "_ENHANCED" : ""; -                String extended = customData.contains("extended") ? "_EXTENDED" : ""; -                String splash = customData.contains("splash") ? "_SPLASH" : ""; -                if (customData.contains("potion") && customData.contains("potion_level")) { -                    return (customData.getString("potion") + "_" + internalName + "_" + customData.getInt("potion_level") -                            + enhanced + extended + splash).toUpperCase(Locale.ENGLISH); -                } -            } -            case "RUNE" -> { -                if (customData.contains("runes")) { -                    NbtCompound runes = customData.getCompound("runes"); -                    Optional<String> firstRunes = runes.getKeys().stream().findFirst(); -                    String rune = firstRunes.orElse(""); -                    return rune.toUpperCase(Locale.ENGLISH) + "_RUNE_" + runes.getInt(rune); -                } -            } -            case "ATTRIBUTE_SHARD" -> { -                if (customData.contains("attributes")) { -                    NbtCompound shards = customData.getCompound("attributes"); -                    Optional<String> firstShards = shards.getKeys().stream().findFirst(); -                    String shard = firstShards.orElse(""); -                    return internalName + "-" + shard.toUpperCase(Locale.ENGLISH) + "_" + shards.getInt(shard); -                } -            } -        } -        return internalName; -    } -      public static Text getCoinsMessage(double price, int count) {          // Format the price string once          String priceString = String.format(Locale.ENGLISH, "%1$,.1f", price); 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 d26e1846..18991a1c 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 @@ -1,7 +1,6 @@  package de.hysky.skyblocker.skyblock.item.tooltip.adders;  import de.hysky.skyblocker.skyblock.item.tooltip.AccessoriesHelper; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;  import it.unimi.dsi.fastutil.Pair;  import net.minecraft.screen.slot.Slot; @@ -18,7 +17,7 @@ public class AccessoryTooltip extends TooltipAdder {  	@Override  	public void addToTooltip(List<Text> lines, Slot focusedSlot) { -		final String internalID = ItemTooltip.getInternalNameFromNBT(focusedSlot.getStack(), true); +		final String internalID = focusedSlot.getStack().skyblocker$getInternalId(true);  		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 8bb71c9a..85c8d4e1 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,12 +19,10 @@ public class AvgBinTooltip extends TooltipAdder {  	@Override  	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); +		String neuName = itemStack.skyblocker$getNeuName(); +		String internalID = itemStack.skyblocker$getInternalId(true);  		if (neuName == null || internalID == null) return; -		if (neuName.startsWith("ISSHINY_")) neuName = internalID; -  		if (SkyblockerConfigManager.get().general.itemTooltip.enableAvgBIN) {  			if (TooltipInfoType.ONE_DAY_AVERAGE.getData() == null || TooltipInfoType.THREE_DAY_AVERAGE.getData() == null) {  				ItemTooltip.nullWarning(); @@ -33,8 +31,6 @@ public class AvgBinTooltip extends TooltipAdder {                    We are skipping check average prices for potions, runes                    and enchanted books because there is no data for their in API.                   */ -				neuName = ItemTooltip.getNeuName(internalID, neuName); -  				if (!neuName.isEmpty() && LBinTooltip.lbinExist) {  					GeneralConfig.Average type = ItemTooltip.config.avg; 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 12d7e821..5ebe1f30 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 @@ -22,9 +22,9 @@ public class BazaarPriceTooltip extends TooltipAdder {  	public void addToTooltip(List<Text> lines, Slot focusedSlot) {  		bazaarExist = false;  		final ItemStack itemStack = focusedSlot.getStack(); -		final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); +		final String internalID = itemStack.skyblocker$getInternalId(true);  		if (internalID == null) return; -		String name = ItemTooltip.getInternalNameFromNBT(itemStack, false); +		String name = itemStack.skyblocker$getInternalId(false);  		if (name == null) return;  		if (name.startsWith("ISSHINY_")) name = "SHINY_" + internalID; 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 d806faa8..ac28e08b 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 @@ -1,7 +1,6 @@  package de.hysky.skyblocker.skyblock.item.tooltip.adders;  import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;  import de.hysky.skyblocker.utils.Constants;  import de.hysky.skyblocker.utils.ItemUtils; @@ -29,7 +28,7 @@ public class ColorTooltip extends TooltipAdder {  	@Override  	public void addToTooltip(List<Text> lines, Slot focusedSlot) {  		final ItemStack itemStack = focusedSlot.getStack(); -		final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); +		final String internalID = itemStack.skyblocker$getInternalId(true);  		if (TooltipInfoType.COLOR.isTooltipEnabledAndHasOrNullWarning(internalID) && itemStack.contains(DataComponentTypes.DYED_COLOR)) {  			String uuid = ItemUtils.getItemUuid(itemStack);  			boolean hasCustomDye = SkyblockerConfigManager.get().general.customDyeColors.containsKey(uuid) || SkyblockerConfigManager.get().general.customAnimatedDyes.containsKey(uuid); 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 7d109081..8f3bfe09 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 @@ -20,9 +20,9 @@ public class LBinTooltip extends TooltipAdder {  	public void addToTooltip(List<Text> lines, Slot focusedSlot) {  		lbinExist = false;  		final ItemStack itemStack = focusedSlot.getStack(); -		final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); +		final String internalID = itemStack.skyblocker$getInternalId(true);  		if (internalID == null) return; -		String name = ItemTooltip.getInternalNameFromNBT(itemStack, false); +		String name = itemStack.skyblocker$getInternalId(false);  		if (name == null) return;  		if (name.startsWith("ISSHINY_")) name = "SHINY_" + internalID; 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 285a1449..7311e614 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 @@ -1,7 +1,6 @@  package de.hysky.skyblocker.skyblock.item.tooltip.adders;  import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;  import net.minecraft.item.ItemStack;  import net.minecraft.screen.slot.Slot; @@ -20,7 +19,7 @@ public class MotesTooltip extends TooltipAdder {  	@Override  	public void addToTooltip(List<Text> lines, Slot focusedSlot) {  		final ItemStack itemStack = focusedSlot.getStack(); -		final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); +		final String internalID = itemStack.skyblocker$getInternalId(true);  		if (internalID != null && TooltipInfoType.MOTES.isTooltipEnabledAndHasOrNullWarning(internalID)) {  			lines.add(Text.literal(String.format("%-20s", "Motes Price:"))  			              .formatted(Formatting.LIGHT_PURPLE) 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 734dd508..d6e2c13b 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 @@ -1,7 +1,6 @@  package de.hysky.skyblocker.skyblock.item.tooltip.adders;  import de.hysky.skyblocker.skyblock.item.MuseumItemCache; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;  import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;  import de.hysky.skyblocker.utils.ItemUtils;  import net.minecraft.item.ItemStack; @@ -20,7 +19,7 @@ public class MuseumTooltip extends TooltipAdder {  	@Override  	public void addToTooltip(List<Text> lines, Slot focusedSlot) {  		final ItemStack itemStack = focusedSlot.getStack(); -		final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); +		final String internalID = itemStack.skyblocker$getInternalId(true);  		if (TooltipInfoType.MUSEUM.isTooltipEnabledAndHasOrNullWarning(internalID)) {  			String itemCategory = TooltipInfoType.MUSEUM.getData().get(internalID).getAsString();  			String format = switch (itemCategory) { 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 3b12f482..3ffdc003 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 @@ -17,7 +17,7 @@ public class NpcPriceTooltip extends TooltipAdder {  	@Override  	public void addToTooltip(List<Text> lines, Slot focusedSlot) {  		final ItemStack stack = focusedSlot.getStack(); -		final String internalID = ItemTooltip.getInternalNameFromNBT(stack, true); +		final String internalID = stack.skyblocker$getInternalId(true);  		if (internalID != null && TooltipInfoType.NPC.isTooltipEnabledAndHasOrNullWarning(internalID)) {  			lines.add(Text.literal(String.format("%-21s", "NPC Sell Price:"))  			              .formatted(Formatting.YELLOW) | 
