Skip to content

Commit ab5518b

Browse files
committed
Fix MinionLevelAdder matching an item in the Community Shop screen
1 parent 64ba9c1 commit ab5518b

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@
1111
import org.jetbrains.annotations.NotNull;
1212

1313
import java.util.List;
14+
import java.util.regex.Matcher;
15+
import java.util.regex.Pattern;
1416

1517
public class MinionLevelAdder extends SlotTextAdder {
18+
private static final Pattern MINION_PATTERN = Pattern.compile(".* Minion ([IVXLCDM]+)");
1619
public MinionLevelAdder() {
1720
super();
1821
}
@@ -21,11 +24,11 @@ public MinionLevelAdder() {
2124
public @NotNull List<SlotText> getText(Slot slot) {
2225
ItemStack itemStack = slot.getStack();
2326
if (!itemStack.isOf(Items.PLAYER_HEAD)) return List.of();
24-
String name = itemStack.getName().getString();
25-
if (!name.contains("Minion")) return List.of();
26-
String romanNumeral = name.substring(name.lastIndexOf(' ') + 1); //+1 because we don't need the space itself
27+
Matcher matcher = MINION_PATTERN.matcher(itemStack.getName().getString());
28+
if (!matcher.matches()) return List.of();
29+
String romanNumeral = matcher.group(1);
30+
if (!RomanNumerals.isValidRomanNumeral(romanNumeral)) return List.of();
2731
int level = RomanNumerals.romanToDecimal(romanNumeral);
28-
if (level == 0) return List.of();
2932
return List.of(SlotText.topRight(Text.literal(String.valueOf(level)).formatted(Formatting.AQUA)));
3033
}
3134
}

0 commit comments

Comments
 (0)