diff options
| author | Alex <8379108+Alex33856@users.noreply.github.com> | 2025-07-05 14:27:32 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-05 20:27:32 +0200 |
| commit | e56ef986b422f5e6677a1bc36cec864f470cd447 (patch) | |
| tree | fd7164834384ddf2bebd92a55644ec44f4e0ac82 /src/main/java | |
| parent | 955a57e233d8584b811d4c6a1c623be089f7767b (diff) | |
| download | Skyblocker-e56ef986b422f5e6677a1bc36cec864f470cd447.tar.gz Skyblocker-e56ef986b422f5e6677a1bc36cec864f470cd447.tar.bz2 Skyblocker-e56ef986b422f5e6677a1bc36cec864f470cd447.zip | |
Prevent crash if matcher doesn't match (#1460)
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java index adaeb3b9..c24356d9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java @@ -23,7 +23,7 @@ import java.util.regex.Pattern; public class GuardianHealth { private static final Box bossRoom = new Box(34, 65, -32, -32, 100, 36); private static final Pattern guardianRegex = Pattern.compile("^(.*?) Guardian (.*?)([A-Za-z])❤$"); - private static final Pattern professorRegex = Pattern.compile("^﴾ The Professor (.*?)([A-za-z])❤ ﴿$"); + private static final Pattern professorRegex = Pattern.compile("^﴾ (The Professor) (.*?)([A-za-z])❤ ﴿$"); private static boolean inBoss; @Init @@ -51,16 +51,17 @@ public class GuardianHealth { GuardianHealth::isGuardianName); for (ArmorStandEntity armorStand : armorStands) { + if (armorStand.getDisplayName() == null) continue; String display = armorStand.getDisplayName().getString(); boolean professor = display.contains("The Professor"); Matcher matcher = professor ? professorRegex.matcher(display) : guardianRegex.matcher(display); - matcher.matches(); // name is validated in isGuardianName + if (!matcher.matches()) continue; - String health = matcher.group(professor ? 1 : 2); - String quantity = matcher.group(professor ? 2 : 3); + String health = matcher.group(2); + String quantity = matcher.group(3); double distance = context.camera().getPos().distanceTo(guardian.getPos()); @@ -88,6 +89,7 @@ public class GuardianHealth { } private static boolean isGuardianName(ArmorStandEntity entity) { + if (entity.getDisplayName() == null) return false; String display = entity.getDisplayName().getString(); if (display.contains("The Professor")) { |
