From 44770abb621167802883abd18b34479e861326e5 Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Sat, 27 Jul 2024 11:42:37 +0300 Subject: Fix slot text not working on favorited pets --- .../skyblock/item/slottext/adders/PetLevelAdder.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PetLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PetLevelAdder.java index fbacc65c..e940b17a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PetLevelAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PetLevelAdder.java @@ -1,7 +1,7 @@ package de.hysky.skyblocker.skyblock.item.slottext.adders; -import de.hysky.skyblocker.skyblock.item.slottext.SlotText; import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder; +import de.hysky.skyblocker.skyblock.item.slottext.SlotText; import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -12,18 +12,22 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class PetLevelAdder extends SimpleSlotTextAdder { + private static final Pattern LEVEL_PATTERN = Pattern.compile("⭐? ?\\[Lvl (\\d+)].*"); public PetLevelAdder() { super(); } @Override public @NotNull List getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) { - if (!stack.isOf(Items.PLAYER_HEAD)) return List.of(); - String level = CatacombsLevelAdder.getBracketedLevelFromName(stack); + if (!stack.isOf(Items.PLAYER_HEAD) || !ItemUtils.getItemId(stack).equals("PET")) return List.of(); + Matcher matcher = LEVEL_PATTERN.matcher(stack.getName().getString()); + if (!matcher.matches()) return List.of(); + String level = matcher.group(1); if (!NumberUtils.isDigits(level) || "100".equals(level) || "200".equals(level)) return List.of(); - if (!ItemUtils.getItemId(stack).equals("PET")) return List.of(); - return List.of(SlotText.topLeft(Text.literal(level).withColor(0xFFDDC1))); + return SlotText.topLeftList(Text.literal(level).withColor(0xFFDDC1)); } } -- cgit