From f683c76a7b46ff59b43dc6839fb49b0a85f23d33 Mon Sep 17 00:00:00 2001 From: ceikry Date: Wed, 21 Jul 2021 18:52:31 -0500 Subject: [PATCH] Corrected tick timing --- Server/src/main/kotlin/rs09/Server.kt | 1 + Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Server/src/main/kotlin/rs09/Server.kt b/Server/src/main/kotlin/rs09/Server.kt index 14c79a264..2a98df8d6 100644 --- a/Server/src/main/kotlin/rs09/Server.kt +++ b/Server/src/main/kotlin/rs09/Server.kt @@ -101,6 +101,7 @@ object Server { delay(20000) while(running){ if(System.currentTimeMillis() - lastHeartbeat > 1800){ + SystemLogger.logErr("Triggering reboot due to heartbeat timeout") running = false exitProcess(0) } diff --git a/Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt b/Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt index 56a18ee0d..d63df86fe 100644 --- a/Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt +++ b/Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt @@ -10,11 +10,14 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import rs09.Server import rs09.ServerConstants +import rs09.game.system.SystemLogger import rs09.game.world.GameWorld import rs09.game.world.repository.Repository import rs09.game.world.update.UpdateSequence import rs09.net.packet.PacketWriteQueue import rs09.tools.stringtools.colorize +import java.lang.Long.max +import java.lang.Long.min import java.text.SimpleDateFormat import java.util.* import kotlin.collections.ArrayList @@ -29,8 +32,9 @@ class MajorUpdateWorker { val sdf = SimpleDateFormat("HHmm") fun start() = GlobalScope.launch { started = true + delay(600L) while(true){ - delay(600L) + val start = System.currentTimeMillis() val rmlist = ArrayList() val list = ArrayList(GameWorld.Pulser.TASKS) @@ -75,6 +79,9 @@ class MajorUpdateWorker { } }) } + + val end = System.currentTimeMillis() + delay(max(600 - (end - start), 0)) } } } \ No newline at end of file