diff options
author | nea <nea@nea.moe> | 2023-05-03 01:09:19 +0200 |
---|---|---|
committer | nea <nea@nea.moe> | 2023-05-03 01:09:19 +0200 |
commit | f93df266c60de0567be1c963d0fbc0861bc4f197 (patch) | |
tree | 5e699594a3664fd339283d3b111ad67ad2275c4a /src/main/kotlin | |
parent | 3be33bb522f468b812bb59b7f2edc8d1ca352661 (diff) | |
download | Firmament-f93df266c60de0567be1c963d0fbc0861bc4f197.tar.gz Firmament-f93df266c60de0567be1c963d0fbc0861bc4f197.tar.bz2 Firmament-f93df266c60de0567be1c963d0fbc0861bc4f197.zip |
Move WorldReadyEvent back more
Diffstat (limited to 'src/main/kotlin')
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt | 12 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/util/Timer.kt | 23 |
2 files changed, 28 insertions, 7 deletions
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt b/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt index 6d4af7e..393cdbb 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt @@ -11,12 +11,11 @@ import moe.nea.notenoughupdates.events.ServerChatLineReceivedEvent import moe.nea.notenoughupdates.events.SkyblockServerUpdateEvent import moe.nea.notenoughupdates.events.WorldReadyEvent -@OptIn(ExperimentalTime::class) object SBData { val profileRegex = "(?:Your profile was changed to: |You are playing on profile: )(.+)".toRegex() var profileCuteName: String? = null - private var lastLocrawSent: TimeSource.Monotonic.ValueTimeMark? = null + private var lastLocrawSent = Timer() private val locrawRoundtripTime: Duration = 5.seconds var locraw: Locraw? = null val skyblockLocation get() = locraw?.skyblockLocation @@ -29,9 +28,8 @@ object SBData { profileCuteName = profileMatch.groupValues[1] } if (event.unformattedString.startsWith("{")) { - val lLS = lastLocrawSent - if (tryReceiveLocraw(event.unformattedString) && lLS != null && lLS.elapsedNow() < locrawRoundtripTime) { - lastLocrawSent = null + if (tryReceiveLocraw(event.unformattedString) && lastLocrawSent.timePassed() < locrawRoundtripTime) { + lastLocrawSent.markFarPast() event.cancel() } } @@ -57,9 +55,9 @@ object SBData { } fun sendLocraw() { - lastLocrawSent = TimeSource.Monotonic.markNow() + lastLocrawSent.markNow() val nh = MC.player?.networkHandler ?: return -nh.sendChatCommand("locraw") + nh.sendChatCommand("locraw") } diff --git a/src/main/kotlin/moe/nea/notenoughupdates/util/Timer.kt b/src/main/kotlin/moe/nea/notenoughupdates/util/Timer.kt new file mode 100644 index 0000000..14f76f7 --- /dev/null +++ b/src/main/kotlin/moe/nea/notenoughupdates/util/Timer.kt @@ -0,0 +1,23 @@ +package moe.nea.notenoughupdates.util + +import kotlin.time.Duration +import kotlin.time.ExperimentalTime +import kotlin.time.TimeSource + +@OptIn(ExperimentalTime::class) +class Timer { + private var mark: TimeSource.Monotonic.ValueTimeMark? = null + + fun timePassed(): Duration { + return mark?.elapsedNow() ?: Duration.INFINITE + } + + fun markNow() { + mark = TimeSource.Monotonic.markNow() + } + + fun markFarPast() { + mark = null + } + +} |