aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/MinionLevelAdder.java11
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)));
}
}