diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementArea.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementArea.kt index c48088c..a9cb2df 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementArea.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementArea.kt @@ -1,12 +1,13 @@ package me.owdding.customscoreboard.feature.customscoreboard.elements import me.owdding.customscoreboard.utils.ElementGroup +import me.owdding.customscoreboard.utils.RemoteStrings import me.owdding.customscoreboard.utils.ScoreboardElement +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.TextUtils.trim import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.utils.regex.RegexUtils.anyMatch -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex import tech.thatgravyboat.skyblockapi.utils.regex.component.anyMatch @ScoreboardElement @@ -17,10 +18,10 @@ object ElementArea : Element() { override fun getDisplay() = listOfNotNull(formattedLocation, formattedGardenPlot, formattedVisiting) - - private val locationComponentRegex = ComponentRegex("\\s*[⏣ф] .+") - private val gardenPlotComponentRegex = ComponentRegex("\\s*Plot -.+") - private val visitingComponentRegex = ComponentRegex("\\s*✌ \\(\\d+/\\d+\\)") + private val remote = RemoteStrings.resolve() + private val locationComponentRegex by remote.componentRegex("\\s*[⏣ф] .+") + private val gardenPlotComponentRegex by remote.componentRegex("\\s*Plot -.+") + private val visitingComponentRegex by remote.componentRegex("\\s*✌ \\(\\d+/\\d+\\)") private val gardenPlotRegex = gardenPlotComponentRegex.regex() private val visitingRegex = visitingComponentRegex.regex() diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementLobby.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementLobby.kt index 36c9b79..2b4ae63 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementLobby.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementLobby.kt @@ -2,7 +2,9 @@ package me.owdding.customscoreboard.feature.customscoreboard.elements import me.owdding.customscoreboard.config.categories.LinesConfig import me.owdding.customscoreboard.utils.ElementGroup +import me.owdding.customscoreboard.utils.RemoteStrings import me.owdding.customscoreboard.utils.ScoreboardElement +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import tech.thatgravyboat.skyblockapi.api.events.hypixel.ServerChangeEvent import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.utils.regex.RegexUtils.anyFound @@ -21,7 +23,7 @@ object ElementLobby : Element() { override val group = ElementGroup.HEADER - private val roomIdRegex = "\\d+/\\d+/\\d+ \\w+ (?[\\w,-]+)".toRegex() + private val roomIdRegex by RemoteStrings.resolve().regex("\\d+/\\d+/\\d+ \\w+ (?[\\w,-]+)") override fun onScoreboardUpdate(event: ScoreboardUpdateEvent) { val found = roomIdRegex.anyFound(event.new, "roomId") { (roomId) -> diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementObjective.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementObjective.kt index fdd0916..40502bb 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementObjective.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementObjective.kt @@ -2,7 +2,9 @@ package me.owdding.customscoreboard.feature.customscoreboard.elements import me.owdding.customscoreboard.feature.customscoreboard.ScoreboardLine.Companion.withActions import me.owdding.customscoreboard.utils.CommonRegexes +import me.owdding.customscoreboard.utils.RemoteStrings import me.owdding.customscoreboard.utils.ScoreboardElement +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.TextUtils.isBlank import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent @@ -22,7 +24,7 @@ object ElementObjective : Element() { override val id = "OBJECTIVE" - private val objectiveTitleRegex = "^(?:Objective|Quest)".toRegex() + private val objectiveTitleRegex by RemoteStrings.resolve().regex("^(?:Objective|Quest)") private val objectiveLines = mutableListOf() diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSlayer.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSlayer.kt index b79568b..72e9fd0 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSlayer.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSlayer.kt @@ -1,6 +1,8 @@ package me.owdding.customscoreboard.feature.customscoreboard.elements +import me.owdding.customscoreboard.utils.RemoteStrings import me.owdding.customscoreboard.utils.ScoreboardElement +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.TextUtils.trim import me.owdding.customscoreboard.utils.Utils.sublistFromFirst import me.owdding.ktmodules.Module @@ -10,7 +12,6 @@ import tech.thatgravyboat.skyblockapi.api.events.base.predicates.OnlyWidget import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.api.events.info.TabWidget import tech.thatgravyboat.skyblockapi.api.events.info.TabWidgetChangeEvent -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @Module @ScoreboardElement @@ -21,7 +22,7 @@ object ElementSlayer : Element() { override val id = "SLAYER" - private val slayerQuestRegex = ComponentRegex("Slayer(?::| Quest)") + private val slayerQuestRegex by RemoteStrings.resolve().componentRegex("Slayer(?::| Quest)") private var formattedLines = emptyList() diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSoulflow.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSoulflow.kt index 16d3029..9667c4a 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSoulflow.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/elements/ElementSoulflow.kt @@ -3,7 +3,9 @@ package me.owdding.customscoreboard.feature.customscoreboard.elements import me.owdding.customscoreboard.feature.customscoreboard.CustomScoreboardRenderer import me.owdding.customscoreboard.feature.customscoreboard.NumberTrackingElement import me.owdding.customscoreboard.utils.NumberUtils.format +import me.owdding.customscoreboard.utils.RemoteStrings import me.owdding.customscoreboard.utils.ScoreboardElement +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.TextUtils.anyMatch import me.owdding.ktmodules.Module import tech.thatgravyboat.skyblockapi.api.events.base.Subscription @@ -33,7 +35,7 @@ object ElementSoulflow : NumberTrackingElement("§3") { override val configLineHover = listOf("Requires the Soulflow option enabled in the Profile category in /tablist.", "Will not show if disabled.") private var soulflowInTablist = false - private val soulflowRegex = " Soulflow: .*".toRegex() + private val soulflowRegex by RemoteStrings.resolve().regex(" Soulflow: .*") @Subscription @OnlyWidget(TabWidget.PROFILE) diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventAnniversary.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventAnniversary.kt index b9cc624..6cdb395 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventAnniversary.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventAnniversary.kt @@ -1,9 +1,10 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @AutoElement object EventAnniversary : Event() { @@ -14,7 +15,7 @@ object EventAnniversary : Event() { private var formattedLine: Component? = null - private val restartRegex = ComponentRegex("\\d+th Anniversary [\\d:]+") + private val restartRegex by RemoteStrings.resolve().componentRegex("\\d+th Anniversary [\\d:]+") override fun onScoreboardUpdate(event: ScoreboardUpdateEvent) { formattedLine = event.components.find(restartRegex::matches) diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventBroodmother.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventBroodmother.kt index 4fbdbd3..d6bd767 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventBroodmother.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventBroodmother.kt @@ -1,6 +1,8 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.TextUtils.trim import me.owdding.ktmodules.Module import net.minecraft.network.chat.Component @@ -9,7 +11,6 @@ import tech.thatgravyboat.skyblockapi.api.events.base.predicates.OnlyWidget import tech.thatgravyboat.skyblockapi.api.events.info.TabWidget import tech.thatgravyboat.skyblockapi.api.events.info.TabWidgetChangeEvent import tech.thatgravyboat.skyblockapi.api.location.SkyBlockIsland -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @Module @AutoElement @@ -23,7 +24,7 @@ object EventBroodmother : Event() { private var stateString: Component? = null - private val broodmotherRegex = ComponentRegex(" Broodmother: (?.*)") + private val broodmotherRegex by RemoteStrings.resolve().componentRegex(" Broodmother: (?.*)") @Subscription @OnlyWidget(TabWidget.AREA) diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventCarnival.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventCarnival.kt index d0132eb..2cd1c42 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventCarnival.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventCarnival.kt @@ -1,11 +1,12 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.Utils.replaceWithMatches import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.api.location.SkyBlockIsland -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @AutoElement object EventCarnival : Event() { @@ -18,15 +19,16 @@ object EventCarnival : Event() { private val formattedLines = mutableListOf() - private val timeRegex = ComponentRegex("Carnival [\\d:,.]+") - private val tokensRegex = ComponentRegex("Carnival Tokens: [\\d,.]+") - private val taskRegex = ComponentRegex("Catch a Fish|Fruit Digging|Zombie Shootout") - private val timeLeftRegex = ComponentRegex("Time Left: [\\w:,.\\s]+") - private val fruitsRegex = ComponentRegex("Fruits: \\d+/\\d+") - private val scoreRegex = ComponentRegex("Score: \\d+.*") - private val catchStreakRegex = ComponentRegex("Catch Streak: \\d+") - private val accuracyRegex = ComponentRegex("Accuracy: [\\d.,]+%") - private val killsRegex = ComponentRegex("Kills: \\d+") + private val remote = RemoteStrings.resolve() + private val timeRegex by remote.componentRegex("Carnival [\\d:,.]+") + private val tokensRegex by remote.componentRegex("Carnival Tokens: [\\d,.]+") + private val taskRegex by remote.componentRegex("Catch a Fish|Fruit Digging|Zombie Shootout") + private val timeLeftRegex by remote.componentRegex("Time Left: [\\w:,.\\s]+") + private val fruitsRegex by remote.componentRegex("Fruits: \\d+/\\d+") + private val scoreRegex by remote.componentRegex("Score: \\d+.*") + private val catchStreakRegex by remote.componentRegex("Catch Streak: \\d+") + private val accuracyRegex by remote.componentRegex("Accuracy: [\\d.,]+%") + private val killsRegex by remote.componentRegex("Kills: \\d+") private val patterns = listOf(timeRegex, tokensRegex, taskRegex, timeLeftRegex, fruitsRegex, scoreRegex, catchStreakRegex, accuracyRegex, killsRegex) diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDamage.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDamage.kt index a12612f..1e3d737 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDamage.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDamage.kt @@ -1,11 +1,12 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.Utils.replaceWithMatches import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.api.location.SkyBlockIsland -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @AutoElement object EventDamage : Event() { @@ -18,8 +19,9 @@ object EventDamage : Event() { private val formattedLines = mutableListOf() - private val hpRegex = ComponentRegex("(?:Protector|Dragon) HP: [\\d,.]* ❤") - private val damageRegex = ComponentRegex("Your Damage: [\\d,.]+") + private val remote = RemoteStrings.resolve() + private val hpRegex by remote.componentRegex("(?:Protector|Dragon) HP: [\\d,.]* ❤") + private val damageRegex by remote.componentRegex("Your Damage: [\\d,.]+") private val patterns = listOf(hpRegex, damageRegex) diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDarkAuction.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDarkAuction.kt index f1ea435..50fd396 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDarkAuction.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDarkAuction.kt @@ -1,12 +1,13 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.Utils.replaceWith import me.owdding.customscoreboard.utils.Utils.sublistFromFirst import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.api.location.SkyBlockIsland -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @AutoElement object EventDarkAuction : Event() { @@ -19,9 +20,10 @@ object EventDarkAuction : Event() { private val formattedLines = mutableListOf() - private val startingInRegex = ComponentRegex("Starting in: [\\w:,.\\s]+") - private val timeLeftRegex = ComponentRegex("Time Left: [\\w:,.\\s]+") - private val currentItemRegex = ComponentRegex("Current Item:") + private val remote = RemoteStrings.resolve() + private val startingInRegex by remote.componentRegex("Starting in: [\\w:,.\\s]+") + private val timeLeftRegex by remote.componentRegex("Time Left: [\\w:,.\\s]+") + private val currentItemRegex by remote.componentRegex("Current Item:") override fun onScoreboardUpdate(event: ScoreboardUpdateEvent) { diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDojo.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDojo.kt index f53ebcb..073a76a 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDojo.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDojo.kt @@ -1,13 +1,14 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.Utils.replaceWithMatches import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.api.location.SkyBlockArea import tech.thatgravyboat.skyblockapi.api.location.SkyBlockAreas import tech.thatgravyboat.skyblockapi.api.location.SkyBlockIsland -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @AutoElement object EventDojo : Event() { @@ -22,10 +23,11 @@ object EventDojo : Event() { private val formattedLines = mutableListOf() - private val challengeRegex = ComponentRegex("Challenge: (?.+)") - private val difficultyRegex = ComponentRegex("Difficulty: (?.+)") - private val pointsRegex = ComponentRegex("Points: -?[\\w.]+.*") - private val timeRegex = ComponentRegex("Time: [\\w.]+.*") + private val remote = RemoteStrings.resolve() + private val challengeRegex by remote.componentRegex("Challenge: (?.+)") + private val difficultyRegex by remote.componentRegex("Difficulty: (?.+)") + private val pointsRegex by remote.componentRegex("Points: -?[\\w.]+.*") + private val timeRegex by remote.componentRegex("Time: [\\w.]+.*") private val patterns = listOf(challengeRegex, difficultyRegex, pointsRegex, timeRegex) diff --git a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDungeons.kt b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDungeons.kt index f79bc1b..0ac0743 100644 --- a/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDungeons.kt +++ b/src/main/kotlin/me/owdding/customscoreboard/feature/customscoreboard/events/EventDungeons.kt @@ -1,11 +1,12 @@ package me.owdding.customscoreboard.feature.customscoreboard.events import me.owdding.customscoreboard.AutoElement +import me.owdding.customscoreboard.utils.RemoteStrings +import me.owdding.customscoreboard.utils.StringGroup.Companion.resolve import me.owdding.customscoreboard.utils.Utils.replaceWithMatches import net.minecraft.network.chat.Component import tech.thatgravyboat.skyblockapi.api.events.info.ScoreboardUpdateEvent import tech.thatgravyboat.skyblockapi.api.location.SkyBlockIsland -import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex @AutoElement object EventDungeons : Event() { @@ -18,16 +19,16 @@ object EventDungeons : Event() { private val formattedLines = mutableListOf() - private val m7dragonsRegex = ComponentRegex("No Alive Dragons|- [\\w\\s]+Dragon [\\w,.]+❤") - private val autoCloseRegex = ComponentRegex("Auto-closing in: [\\d+:,.]+") - private val startingInRegex = ComponentRegex("Starting in: [\\d+:,.]+") - private val keyRegex = ComponentRegex("Keys: ■ [✗✓] ■ .x") - private val timeElapsedRegex = ComponentRegex("Time Elapsed: (?