From ab5518bd7e4f51225180b1d80faa65b5ecacd358 Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Mon, 10 Jun 2024 08:32:15 +0300 Subject: Fix MinionLevelAdder matching an item in the Community Shop screen --- .../skyblock/item/slottext/adders/MinionLevelAdder.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/item/slottext') 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 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))); } } -- cgit