aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt')
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt b/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt
deleted file mode 100644
index 393cdbb..0000000
--- a/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt
+++ /dev/null
@@ -1,64 +0,0 @@
-package moe.nea.notenoughupdates.util
-
-import kotlinx.serialization.SerializationException
-import kotlinx.serialization.decodeFromString
-import kotlin.time.Duration
-import kotlin.time.Duration.Companion.seconds
-import kotlin.time.ExperimentalTime
-import kotlin.time.TimeSource
-import moe.nea.notenoughupdates.NotEnoughUpdates
-import moe.nea.notenoughupdates.events.ServerChatLineReceivedEvent
-import moe.nea.notenoughupdates.events.SkyblockServerUpdateEvent
-import moe.nea.notenoughupdates.events.WorldReadyEvent
-
-object SBData {
- val profileRegex = "(?:Your profile was changed to: |You are playing on profile: )(.+)".toRegex()
- var profileCuteName: String? = null
-
- private var lastLocrawSent = Timer()
- private val locrawRoundtripTime: Duration = 5.seconds
- var locraw: Locraw? = null
- val skyblockLocation get() = locraw?.skyblockLocation
-
-
- fun init() {
- ServerChatLineReceivedEvent.subscribe { event ->
- val profileMatch = profileRegex.matchEntire(event.unformattedString)
- if (profileMatch != null) {
- profileCuteName = profileMatch.groupValues[1]
- }
- if (event.unformattedString.startsWith("{")) {
- if (tryReceiveLocraw(event.unformattedString) && lastLocrawSent.timePassed() < locrawRoundtripTime) {
- lastLocrawSent.markFarPast()
- event.cancel()
- }
- }
- }
-
- WorldReadyEvent.subscribe {
- sendLocraw()
- locraw = null
- }
- }
-
- private fun tryReceiveLocraw(unformattedString: String): Boolean = try {
- val lastLocraw = locraw
- locraw = NotEnoughUpdates.json.decodeFromString<Locraw>(unformattedString)
- SkyblockServerUpdateEvent.publish(SkyblockServerUpdateEvent(lastLocraw, locraw))
- true
- } catch (e: SerializationException) {
- e.printStackTrace()
- false
- } catch (e: IllegalArgumentException) {
- e.printStackTrace()
- false
- }
-
- fun sendLocraw() {
- lastLocrawSent.markNow()
- val nh = MC.player?.networkHandler ?: return
- nh.sendChatCommand("locraw")
- }
-
-
-}