diff options
| author | J10a1n15 <45315647+j10a1n15@users.noreply.github.com> | 2024-03-16 16:14:08 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-16 16:14:08 +0100 |
| commit | 7d8d2dffb98d78cade5f2b8fb5223d92cf66c6c8 (patch) | |
| tree | 74f981aa260797f6edd995da8d9c64be69585b3f /src/main/java/at/hannibal2/skyhanni/data | |
| parent | 4f696dca502d52d77a941c0504006878d2133d1f (diff) | |
| download | skyhanni-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.kt | 50 |
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() |
