aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt12
2 files changed, 13 insertions, 9 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt
index fca4e0668..264f31bf2 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt
@@ -58,6 +58,10 @@ object DungeonAPI {
"complete",
"§.\\s+§.§.(?:The|Master Mode) Catacombs §.§.- §.§.(?:Floor )?(?<floor>M?[IV]{1,3}|Entrance)"
)
+ private val dungeonRoomPattern by patternGroup.pattern(
+ "room",
+ "§7\\d+\\/\\d+\\/\\d+ §\\w+ (?<roomId>[\\w,-]+)"
+ )
fun inDungeon() = IslandType.CATACOMBS.isInIsland()
@@ -102,7 +106,11 @@ object DungeonAPI {
return DungeonFloor.valueOf(floor.replace("M", "F"))
}
- fun getRoomID() = ScoreboardData.sidebarLines.firstOrNull()?.removeColor()?.split(" ")?.getOrNull(2)
+ fun getRoomID(): String? {
+ return ScoreboardData.sidebarLinesFormatted.matchFirst(dungeonRoomPattern) {
+ group("roomId")
+ }
+ }
fun getColor(level: Int): String = when {
level >= 50 -> "§c§l"
diff --git a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt
index 8c1c1afc1..f8b8d5c71 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt
@@ -524,14 +524,10 @@ private fun getTimeDisplayPair(): List<ScoreboardElementType> {
}
private fun getLobbyDisplayPair(): List<ScoreboardElementType> {
- val lobbyCode = HypixelData.serverId ?: "<hidden>"
- return listOf(
- if (lobbyCode == "<hidden>") {
- "<hidden>"
- } else {
- "§8$lobbyCode"
- } to HorizontalAlignment.LEFT
- )
+ val lobbyCode = HypixelData.serverId
+ val roomId = DungeonAPI.getRoomID().let { if (it == null) "" else "§8$it" }
+ val lobbyDisplay = if (lobbyCode == null) "<hidden>" else "§8$lobbyCode $roomId"
+ return listOf(lobbyDisplay to HorizontalAlignment.LEFT)
}
private fun getPowerDisplayPair() = listOf(