aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2025-01-25 16:03:14 +0300
committerGitHub <noreply@github.com>2025-01-25 14:03:14 +0100
commit76f0b6ea632cdef87e1791c8d96a2fbf586ef81f (patch)
treeff1097cd51d8f1eb203932e7b1de998024933ad8 /src/main/java/de
parent080aa301dcb36bc5f32dd72afb41ea5e1d805d60 (diff)
downloadSkyblocker-76f0b6ea632cdef87e1791c8d96a2fbf586ef81f.tar.gz
Skyblocker-76f0b6ea632cdef87e1791c8d96a2fbf586ef81f.tar.bz2
Skyblocker-76f0b6ea632cdef87e1791c8d96a2fbf586ef81f.zip
Fix dungeon score not working when fancy tab hud is disabled (#1145)
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListManager.java50
1 files changed, 33 insertions, 17 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListManager.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListManager.java
index c60601e9..64575800 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListManager.java
@@ -40,15 +40,18 @@ import java.util.regex.Pattern;
public class PlayerListManager {
public static final Logger LOGGER = LoggerFactory.getLogger("Skyblocker Regex");
- private static final Pattern PLAYERS_COLUMN_PATTERN = Pattern.compile("(^|\\s*)(Players \\(\\d+\\)|Island|Coop \\(\\d+\\))(\\s*|$)");
- private static final Pattern INFO_COLUMN_PATTERN = Pattern.compile("(^|\\s*)Info(\\s*|$)");
+ private static final Pattern PLAYERS_COLUMN_PATTERN = Pattern.compile("\\s*(Players \\(\\d+\\)|Island|Coop \\(\\d+\\))\\s*");
+ private static final Pattern INFO_COLUMN_PATTERN = Pattern.compile("\\s*Info\\s*");
/**
* The player list in tab.
*/
private static List<PlayerListEntry> playerList = new ArrayList<>(); // Initialize to prevent npe.
+
/**
* The player list in tab, but a list of strings instead of {@link PlayerListEntry}s.
+ *
+ * @implNote All leading and trailing whitespace is removed from the strings.
*/
private static List<String> playerStringList = new ArrayList<>();
@Nullable
@@ -56,31 +59,44 @@ public class PlayerListManager {
public static final Map<String, TabHudWidget> tabWidgetInstances = new Object2ObjectOpenHashMap<>();
public static final List<TabHudWidget> tabWidgetsToShow = new ObjectArrayList<>(5);
- public static void updateList() {
+ private static void reset() {
+ if (!tabWidgetsToShow.isEmpty()) {
+ tabWidgetsToShow.clear();
+ ScreenBuilder.positionsNeedsUpdating = true;
+ }
+ }
- if (!Utils.isOnSkyblock() || !SkyblockerConfigManager.get().uiAndVisuals.tabHud.tabHudEnabled) {
- if (!tabWidgetsToShow.isEmpty()) {
- tabWidgetsToShow.clear();
- ScreenBuilder.positionsNeedsUpdating = true;
- }
+ public static void updateList() {
+ if (!Utils.isOnSkyblock()) {
+ reset();
return;
}
- ClientPlayNetworkHandler cpnwh = MinecraftClient.getInstance().getNetworkHandler();
+ ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
// check is needed, else game crashes on server leave
- if (cpnwh != null) {
- playerList = cpnwh.getPlayerList().stream().sorted(PlayerListHudAccessor.getOrdering()).toList();
- playerStringList = playerList.stream().map(PlayerListEntry::getDisplayName).filter(Objects::nonNull).map(Text::getString).map(String::strip).toList();
+ if (networkHandler != null) {
+ playerList = networkHandler.getPlayerList()
+ .stream()
+ .sorted(PlayerListHudAccessor.getOrdering())
+ .toList();
+ playerStringList = playerList.stream()
+ .map(PlayerListEntry::getDisplayName)
+ .filter(Objects::nonNull)
+ .map(Text::getString)
+ .map(String::strip)
+ .toList();
+ }
+
+ if (!SkyblockerConfigManager.get().uiAndVisuals.tabHud.tabHudEnabled) {
+ reset();
+ return;
}
if (MinecraftClient.getInstance().currentScreen instanceof WidgetsConfigurationScreen widgetsConfigurationScreen && widgetsConfigurationScreen.isPreviewVisible()) return;
- if (Utils.isInDungeons()) {
- updateDungeons(null);
- } else {
- updateWidgetsFrom(playerList);
- }
+ if (Utils.isInDungeons()) updateDungeons(null);
+ else updateWidgetsFrom(playerList);
}
/**