aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAlex <8379108+Alex33856@users.noreply.github.com>2025-07-05 14:27:32 -0400
committerGitHub <noreply@github.com>2025-07-05 20:27:32 +0200
commite56ef986b422f5e6677a1bc36cec864f470cd447 (patch)
treefd7164834384ddf2bebd92a55644ec44f4e0ac82 /src/main/java
parent955a57e233d8584b811d4c6a1c623be089f7767b (diff)
downloadSkyblocker-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.java10
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")) {