mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-14 09:56:37 -04:00
KeyHandler: Don't queue first tick twice
The RepeatedTask instantly executed in kutil 1.27 (additionally with the onTick call).
This commit is contained in:
parent
5bab0bf394
commit
c51e0cdaee
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* Copyright (C) 2020-2023 Moritz Zwerger
|
||||
* Copyright (C) 2020-2025 Moritz Zwerger
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
@ -17,8 +17,10 @@ import de.bixilon.kutil.concurrent.pool.ThreadPool
|
||||
import de.bixilon.kutil.concurrent.schedule.RepeatedTask
|
||||
import de.bixilon.kutil.concurrent.schedule.TaskScheduler
|
||||
import de.bixilon.kutil.exception.Broken
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
||||
import de.bixilon.minosoft.protocol.network.session.play.tick.TickUtil
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.KUtil.skip
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
|
||||
abstract class KeyHandler {
|
||||
@ -28,6 +30,7 @@ abstract class KeyHandler {
|
||||
|
||||
private fun queueTick() {
|
||||
val task = RepeatedTask(TickUtil.INTERVAL, priority = ThreadPool.HIGH) { onTick() }
|
||||
task.skip(1)
|
||||
this.task = task
|
||||
TaskScheduler += task
|
||||
}
|
||||
|
@ -30,12 +30,14 @@ import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf
|
||||
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
|
||||
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
|
||||
import de.bixilon.kutil.concurrent.pool.runnable.ForcePooledRunnable
|
||||
import de.bixilon.kutil.concurrent.schedule.RepeatedTask
|
||||
import de.bixilon.kutil.concurrent.schedule.TaskScheduler
|
||||
import de.bixilon.kutil.primitive.DoubleUtil
|
||||
import de.bixilon.kutil.primitive.DoubleUtil.matches
|
||||
import de.bixilon.kutil.primitive.IntUtil.isIntSafe
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.field
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.forceInit
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.getUnsafeField
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.realName
|
||||
import de.bixilon.kutil.shutdown.ShutdownManager
|
||||
@ -78,7 +80,6 @@ import java.util.*
|
||||
import javax.net.ssl.SSLContext
|
||||
import kotlin.time.Duration
|
||||
import kotlin.time.Duration.Companion.nanoseconds
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
import kotlin.time.ExperimentalTime
|
||||
|
||||
|
||||
@ -361,4 +362,9 @@ object KUtil {
|
||||
@OptIn(ExperimentalTime::class)
|
||||
@Deprecated("kutil 1.27.2")
|
||||
fun SimpleDateFormat.format1(instant: kotlin.time.Instant) = format(instant.toEpochMilliseconds())
|
||||
|
||||
@Deprecated("Kutil 1.27.2")
|
||||
fun RepeatedTask.skip(count: Int = 1) {
|
||||
this::next.forceSet(now() + this.interval * count)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user