From 2243d4035b522cc872393801edea7600be84ad05 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Thu, 13 Jul 2023 01:10:06 -0400 Subject: Fix rank prefixes and emblems showing in some player lists --- .../skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java | 6 +++--- .../skyblocker/skyblock/tabhud/widget/IslandOwnersWidget.java | 3 ++- .../skyblocker/skyblock/tabhud/widget/IslandSelfWidget.java | 7 +++++-- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java index c1f9e235..443cca55 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java @@ -25,10 +25,10 @@ public class DungeonPlayerWidget extends Widget { // group 1: name // group 2: class (or literal "EMPTY" pre dungeon start) // group 3: level (or nothing, if pre dungeon start) - // as a side effect, this regex keeps the iron man icon in the name - // not sure if that should be + // this regex filters out the ironman icon as well as rank prefixes and emblems + // \[\d*\] (?:\[[A-Za-z]+\] )?(?[A-Za-z0-9_]*) (?:.* )?\((?\S*) ?(?[LXVI]*)\) private static final Pattern PLAYER_PATTERN = Pattern - .compile("\\[\\d*\\] (?.*) \\((?\\S*) ?(?[LXVI]*)\\)"); + .compile("\\[\\d*\\] (?:\\[[A-Za-z]+\\] )?(?[A-Za-z0-9_]*) (?:.* )?\\((?\\S*) ?(?[LXVI]*)\\)"); private static final HashMap ICOS = new HashMap<>(); private static final ArrayList MSGS = new ArrayList<>(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandOwnersWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandOwnersWidget.java index 6c2d6b47..e81a6d85 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandOwnersWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandOwnersWidget.java @@ -20,8 +20,9 @@ public class IslandOwnersWidget extends Widget { // matches an owner // group 1: player name // group 2: last seen, if owner not online + // ^(?.*) \((?.*)\)$|^\[\d*\] (?:\[[A-Za-z]+\] )?(?[A-Za-z0-9_]*)(?: .*)?$|^(?.*)$ private static final Pattern OWNER_PATTERN = Pattern - .compile("^(?.*) \\((?.*)\\)$|^\\[\\d*\\] (?.*)$|^(?.*)$"); + .compile("^(?.*) \\((?.*)\\)$|^\\[\\d*\\] (?:\\[[A-Za-z]+\\] )?(?[A-Za-z0-9_]*)(?: .*)?$|^(?.*)$"); public IslandOwnersWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandSelfWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandSelfWidget.java index 4324dad9..45cad6c3 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandSelfWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandSelfWidget.java @@ -19,7 +19,8 @@ public class IslandSelfWidget extends Widget { // matches an owner // group 1: player name, optionally offline time - private static final Pattern OWNER_PATTERN = Pattern.compile("^\\[\\d*\\] (.*)$|^(.*)$"); + // ^\[\d*\] (?:\[[A-Za-z]+\] )?([A-Za-z0-9_() ]*)(?: .*)?$|^(.*)$ + private static final Pattern OWNER_PATTERN = Pattern.compile("^\\[\\d*\\] (?:\\[[A-Za-z]+\\] )?([A-Za-z0-9_() ]*)(?: .*)?$|^(.*)$"); public IslandSelfWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); @@ -28,7 +29,9 @@ public class IslandSelfWidget extends Widget { if (m == null) { break; } - PlainTextComponent ptc = new PlainTextComponent(Text.of(m.group(1))); + + Text entry = (m.group(1) != null) ? Text.of(m.group(1)) : Text.of(m.group(2)); + PlainTextComponent ptc = new PlainTextComponent(entry); this.addComponent(ptc); } this.pack(); -- cgit