From 23278f006e47bf3d9287ad5b4ef3ec7d15c42ded Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal002@users.noreply.github.com> Date: Sat, 16 Mar 2024 10:43:42 +0100 Subject: Fix: Guesting Detection (#1188) Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/main/java/at') diff --git a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt index 9617d4e37..88c45566a 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt @@ -17,6 +17,7 @@ import at.hannibal2.skyhanni.utils.LorenzLogger import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TabListData import at.hannibal2.skyhanni.utils.UtilsPatterns @@ -53,6 +54,10 @@ class HypixelData { "lobbytype", "(?.*lobby)\\d+" ) + private val guestPattern by patternGroup.pattern( + "guesting.scoreboard", + "SKYBLOCK GUEST" + ) var hypixelLive = false var hypixelAlpha = false @@ -300,7 +305,6 @@ class HypixelData { private fun checkIsland() { var newIsland = "" - var guesting = false TabListData.fullyLoaded = false for (line in TabListData.getTabList()) { @@ -308,11 +312,10 @@ class HypixelData { newIsland = group("island").removeColor() TabListData.fullyLoaded = true } - if (line == " Status: §r§9Guest") { - guesting = true - } } + // Can not use color coding, because of the color effect (§f§lSKYB§6§lL§e§lOCK§A§L GUEST) + val guesting = guestPattern.matches(ScoreboardData.objectiveTitle.removeColor()) val islandType = getIslandType(newIsland, guesting) if (skyBlockIsland != islandType) { IslandChangeEvent(islandType, skyBlockIsland).postAndCatch() @@ -326,8 +329,8 @@ class HypixelData { } } - private fun getIslandType(newIsland: String, guesting: Boolean): IslandType { - val islandType = IslandType.getByNameOrUnknown(newIsland) + private fun getIslandType(name: String, guesting: Boolean): IslandType { + val islandType = IslandType.getByNameOrUnknown(name) if (guesting) { if (islandType == IslandType.PRIVATE_ISLAND) return IslandType.PRIVATE_ISLAND_GUEST if (islandType == IslandType.GARDEN) return IslandType.GARDEN_GUEST -- cgit