Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -21,7 +23,7 @@ object ElementLobby : Element() {
override val group = ElementGroup.HEADER


private val roomIdRegex = "\\d+/\\d+/\\d+ \\w+ (?<roomId>[\\w,-]+)".toRegex()
private val roomIdRegex by RemoteStrings.resolve().regex("\\d+/\\d+/\\d+ \\w+ (?<roomId>[\\w,-]+)")

override fun onScoreboardUpdate(event: ScoreboardUpdateEvent) {
val found = roomIdRegex.anyFound(event.new, "roomId") { (roomId) ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<Component>()

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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<Component>()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -23,7 +24,7 @@ object EventBroodmother : Event() {

private var stateString: Component? = null

private val broodmotherRegex = ComponentRegex(" Broodmother: (?<state>.*)")
private val broodmotherRegex by RemoteStrings.resolve().componentRegex(" Broodmother: (?<state>.*)")

@Subscription
@OnlyWidget(TabWidget.AREA)
Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -18,15 +19,16 @@ object EventCarnival : Event() {

private val formattedLines = mutableListOf<Component>()

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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -18,8 +19,9 @@ object EventDamage : Event() {

private val formattedLines = mutableListOf<Component>()

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)

Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -19,9 +20,10 @@ object EventDarkAuction : Event() {

private val formattedLines = mutableListOf<Component>()

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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -22,10 +23,11 @@ object EventDojo : Event() {

private val formattedLines = mutableListOf<Component>()

private val challengeRegex = ComponentRegex("Challenge: (?<challenge>.+)")
private val difficultyRegex = ComponentRegex("Difficulty: (?<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: (?<challenge>.+)")
private val difficultyRegex by remote.componentRegex("Difficulty: (?<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)

Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -18,16 +19,16 @@ object EventDungeons : Event() {

private val formattedLines = mutableListOf<Component>()

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: (?<time>(\\w+[ydhms] ?)+)")
private val clearedRegex = ComponentRegex("Cleared: (?<percent>[\\w,.]+)% \\((?<score>[\\w,.]+)\\)")
private val soloRegex = ComponentRegex("Solo")
private val teammatesRegex =
ComponentRegex("(?<classAbbv>\\[\\w]) (?<username>\\w{2,16}) ((?<classLevel>\\[Lvl?(?<level>[\\w,.]+)?]?)|(?<health>[\\w,.]+).?)")
private val f3guardianRegex = ComponentRegex(" - (?:Healthy|Reinforced|Laser|Chaos) [\\w,.]*❤?")
private val remote = RemoteStrings.resolve()
private val m7dragonsRegex by remote.componentRegex("No Alive Dragons|- [\\w\\s]+Dragon [\\w,.]+")
private val autoCloseRegex by remote.componentRegex("Auto-closing in: [\\d+:,.]+")
private val startingInRegex by remote.componentRegex("Starting in: [\\d+:,.]+")
private val keyRegex by remote.componentRegex("Keys: ■ [✗✓] ■ .x")
private val timeElapsedRegex by remote.componentRegex("Time Elapsed: (?<time>(\\w+[ydhms] ?)+)")
private val clearedRegex by remote.componentRegex("Cleared: (?<percent>[\\w,.]+)% \\((?<score>[\\w,.]+)\\)")
private val soloRegex by remote.componentRegex("Solo")
private val teammatesRegex by remote.componentRegex("(?<classAbbv>\\[\\w]) (?<username>\\w{2,16}) ((?<classLevel>\\[Lvl?(?<level>[\\w,.]+)?]?)|(?<health>[\\w,.]+).?)")
private val f3guardianRegex by remote.componentRegex(" - (?:Healthy|Reinforced|Laser|Chaos) [\\w,.]*❤?")

private val patterns = listOf(
m7dragonsRegex,
Expand Down
Original file line number Diff line number Diff line change
@@ -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 EventEssence : Event() {
Expand All @@ -14,7 +15,7 @@ object EventEssence : Event() {

private var formattedLine: Component? = null

private val essenceRegex = ComponentRegex(".*Essence: [\\d,.]+")
private val essenceRegex by RemoteStrings.resolve().componentRegex(".*Essence: [\\d,.]+")

override fun onScoreboardUpdate(event: ScoreboardUpdateEvent) {
formattedLine = event.components.find(essenceRegex::matches)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
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.api.location.SkyBlockIsland
import tech.thatgravyboat.skyblockapi.utils.regex.component.ComponentRegex

@AutoElement
object EventFlightDuration : Event() {
Expand All @@ -17,7 +18,7 @@ object EventFlightDuration : Event() {

private var formattedLine: Component? = null

private val flightRegex = ComponentRegex("Flight Duration: [\\d:]+")
private val flightRegex by RemoteStrings.resolve().componentRegex("Flight Duration: [\\d:]+")

override fun onScoreboardUpdate(event: ScoreboardUpdateEvent) {
formattedLine = event.components.find(flightRegex::matches)
Expand Down
Loading
Loading