diff options
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java index b54b6a89..b9fe130f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java @@ -11,8 +11,11 @@ import net.minecraft.util.Formatting; import org.jetbrains.annotations.NotNull; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class MinionLevelAdder extends SlotTextAdder { + private static final Pattern MINION_PATTERN = Pattern.compile(".* Minion ([IVXLCDM]+)"); public MinionLevelAdder() { super(); } @@ -21,11 +24,11 @@ public class MinionLevelAdder extends SlotTextAdder { public @NotNull List<SlotText> getText(Slot slot) { ItemStack itemStack = slot.getStack(); if (!itemStack.isOf(Items.PLAYER_HEAD)) return List.of(); - String name = itemStack.getName().getString(); - if (!name.contains("Minion")) return List.of(); - String romanNumeral = name.substring(name.lastIndexOf(' ') + 1); //+1 because we don't need the space itself + Matcher matcher = MINION_PATTERN.matcher(itemStack.getName().getString()); + if (!matcher.matches()) return List.of(); + String romanNumeral = matcher.group(1); + if (!RomanNumerals.isValidRomanNumeral(romanNumeral)) return List.of(); int level = RomanNumerals.romanToDecimal(romanNumeral); - if (level == 0) return List.of(); return List.of(SlotText.topRight(Text.literal(String.valueOf(level)).formatted(Formatting.AQUA))); } } |