summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorJ10a1n15 <45315647+j10a1n15@users.noreply.github.com>2024-03-16 16:14:08 +0100
committerGitHub <noreply@github.com>2024-03-16 16:14:08 +0100
commit7d8d2dffb98d78cade5f2b8fb5223d92cf66c6c8 (patch)
tree74f981aa260797f6edd995da8d9c64be69585b3f /src/main/java/at/hannibal2/skyhanni/data
parent4f696dca502d52d77a941c0504006878d2133d1f (diff)
downloadskyhanni-7d8d2dffb98d78cade5f2b8fb5223d92cf66c6c8.tar.gz
skyhanni-7d8d2dffb98d78cade5f2b8fb5223d92cf66c6c8.tar.bz2
skyhanni-7d8d2dffb98d78cade5f2b8fb5223d92cf66c6c8.zip
Improvement + Fix: Custom Scoreboard Part 3 (#1183)
Co-authored-by: hannibal2 <24389977+hannibal002@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
index 88c45566a..eb38187ca 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
@@ -54,6 +54,26 @@ class HypixelData {
"lobbytype",
"(?<lobbyType>.*lobby)\\d+"
)
+ private val playerAmountPattern by patternGroup.pattern(
+ "playeramount",
+ "^\\s*(?:§.)+Players (?:§.)+\\((?<amount>\\d+)\\)\\s*$"
+ )
+ private val playerAmountCoopPattern by patternGroup.pattern(
+ "playeramount.coop",
+ "^\\s*(?:§.)*Coop (?:§.)*\\((?<amount>\\d+)\\)\\s*$"
+ )
+ private val playerAmountGuestingPattern by patternGroup.pattern(
+ "playeramount.guesting",
+ "^\\s*(?:§.)*Guests (?:§.)*\\((?<amount>\\d+)\\)\\s*$"
+ )
+ private val soloProfileAmountPattern by patternGroup.pattern(
+ "solo.profile.amount",
+ "^\\s*(?:§.)*Island\\s*$"
+ )
+ private val scoreboardVisitingAmoutPattern by patternGroup.pattern(
+ "scoreboard.visiting.amount",
+ "\\s+§.✌ §.\\(§.(?<currentamount>\\d+)§.\\/(?<maxamount>\\d+)\\)"
+ )
private val guestPattern by patternGroup.pattern(
"guesting.scoreboard",
"SKYBLOCK GUEST"
@@ -119,6 +139,36 @@ class HypixelData {
return serverId
}
+ fun getPlayersOnCurrentServer(): Int {
+ var amount = 0
+ val playerPatternList = listOf(
+ playerAmountPattern,
+ playerAmountCoopPattern,
+ playerAmountGuestingPattern
+ )
+
+ out@for (pattern in playerPatternList) {
+ for (line in TabListData.getTabList()) {
+ pattern.matchMatcher(line) {
+ amount += group("amount").toInt()
+ continue@out
+ }
+ }
+ }
+ amount += TabListData.getTabList().count { soloProfileAmountPattern.matches(it) }
+
+ return amount
+ }
+
+ fun getMaxPlayersForCurrentServer(): Int {
+ for (line in ScoreboardData.sidebarLinesFormatted) {
+ scoreboardVisitingAmoutPattern.matchMatcher(line) {
+ return group("maxamount").toInt()
+ }
+ }
+ return if (serverId?.startsWith("mega") == true) 80 else 26
+ }
+
// This code is modified from NEU, and depends on NEU (or another mod) sending /locraw.
private val jsonBracketPattern = "^\\{.+}".toPattern()