diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-26 10:25:40 +0200 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-26 10:25:40 +0200 |
commit | 768cb23a7fd6aa82af60129f7f3c9d17169f16bd (patch) | |
tree | 8fcb09ec3368ec49ec2e75c0aab8e39f3f86d1f4 /src/main/java/at/hannibal2/skyhanni/features/dungeon | |
parent | 7e1b3cab73cb3f1c6131db3125736af86daa0e30 (diff) | |
download | skyhanni-768cb23a7fd6aa82af60129f7f3c9d17169f16bd.tar.gz skyhanni-768cb23a7fd6aa82af60129f7f3c9d17169f16bd.tar.bz2 skyhanni-768cb23a7fd6aa82af60129f7f3c9d17169f16bd.zip |
showing mm floor in rcp
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/dungeon')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt | 29 |
1 files changed, 9 insertions, 20 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 4d00de168..fa627eec0 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonAPI.kt @@ -3,7 +3,6 @@ package at.hannibal2.skyhanni.features.dungeon import at.hannibal2.skyhanni.data.ProfileStorageData import at.hannibal2.skyhanni.data.ScoreboardData import at.hannibal2.skyhanni.events.* -import at.hannibal2.skyhanni.features.dungeon.DungeonAPI.DungeonFloor.Companion.toFloor import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.LorenzUtils @@ -39,7 +38,6 @@ class DungeonAPI { var isUniqueClass = false val bossStorage: MutableMap<DungeonFloor, Int>? get() = ProfileStorageData.profileSpecific?.dungeons?.bosses - private val areaPattern = "The Catacombs \\((?<floor>.+)\\)".toPattern() private val timePattern = "Time Elapsed:( )?(?:(?<minutes>\\d+)m)? (?<seconds>\\d+)s".toPattern() // Examples: Time Elapsed: 10m 10s, Time Elapsed: 2s @@ -76,14 +74,6 @@ class DungeonAPI { return bossName.endsWith(correctBoss) } - fun getFloor(): Int? { - val area = LorenzUtils.skyBlockArea - areaPattern.matchMatcher(area) { - if (matches()) return group("floor").last().digitToInt() - } - return null - } - fun getTime(): String { loop@ for (line in ScoreboardData.sidebarLinesFormatted) { timePattern.matchMatcher(line.removeColor()) { @@ -93,6 +83,11 @@ class DungeonAPI { } return "" } + + fun getCurrentBoss(): DungeonFloor? { + val floor = dungeonFloor ?: return null + return DungeonFloor.valueOf(floor.replace("M", "F")) + } } @SubscribeEvent @@ -168,7 +163,7 @@ class DungeonAPI { item.getLore().getOrNull(0)?.let { firstLine -> if (firstLine == "ยง7To Boss Collections") { val name = inventoryName.split(" ").dropLast(1).joinToString(" ") - val floor = name.toFloor() ?: return + val floor = DungeonFloor.byBossName(name) ?: return val lore = inventoryItems[4]?.getLore() ?: return val line = lore.find { it.contains("Total Kills:") } ?: return val kills = totalKillsPattern.matchMatcher(line) { @@ -202,7 +197,7 @@ class DungeonAPI { } } } - val floor = name.toFloor() ?: continue + val floor = DungeonFloor.byBossName(name) ?: continue bossCollections[floor] = kills } } @@ -212,7 +207,7 @@ class DungeonAPI { if (!LorenzUtils.inDungeons) return killPattern.matchMatcher(event.message.removeColor()) { val bossCollections = bossStorage ?: return - val boss = group("boss").toFloor() + val boss = DungeonFloor.byBossName(group("boss")) if (matches() && boss != null && boss !in bossCollections) { bossCollections.addOrPut(boss, 1) } @@ -230,13 +225,7 @@ class DungeonAPI { F7("Necron"); companion object { - fun Int.toBoss(): DungeonFloor { - return entries[this] - } - - fun String.toFloor(): DungeonFloor? { - return entries.firstOrNull { it.bossName == this } - } + fun byBossName(bossName: String) = DungeonFloor.entries.firstOrNull { it.bossName == bossName } } } |