mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-14 18:05:51 -04:00
fix infinite ticking after disconnect
This commit is contained in:
parent
cd5d438743
commit
035a60dae2
@ -79,7 +79,7 @@ class PlayConnection(
|
|||||||
private set
|
private set
|
||||||
|
|
||||||
private lateinit var entityTickTask: TimeWorkerTask
|
private lateinit var entityTickTask: TimeWorkerTask
|
||||||
private lateinit var blockEntityTickTask: TimeWorkerTask
|
private lateinit var worldTickTask: TimeWorkerTask
|
||||||
private lateinit var randomTickTask: TimeWorkerTask
|
private lateinit var randomTickTask: TimeWorkerTask
|
||||||
val collisionDetector = CollisionDetector(this)
|
val collisionDetector = CollisionDetector(this)
|
||||||
var retry = true
|
var retry = true
|
||||||
@ -124,18 +124,17 @@ class PlayConnection(
|
|||||||
if (CLI.getCurrentConnection() == null) {
|
if (CLI.getCurrentConnection() == null) {
|
||||||
CLI.setCurrentConnection(this)
|
CLI.setCurrentConnection(this)
|
||||||
}
|
}
|
||||||
entityTickTask = TimeWorkerTask(ProtocolDefinition.TICK_TIME / 5) {
|
entityTickTask = TimeWorker.addTask(TimeWorkerTask(ProtocolDefinition.TICK_TIME / 5) {
|
||||||
for (entity in world.entities) {
|
for (entity in world.entities) {
|
||||||
entity.tick()
|
entity.tick()
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
TimeWorker.addTask(entityTickTask)
|
|
||||||
|
|
||||||
TimeWorker.addTask(TimeWorkerTask(ProtocolDefinition.TICK_TIME, maxDelayTime = ProtocolDefinition.TICK_TIME / 2) {
|
worldTickTask = TimeWorker.addTask(TimeWorkerTask(ProtocolDefinition.TICK_TIME, maxDelayTime = ProtocolDefinition.TICK_TIME / 2) {
|
||||||
world.realTick()
|
world.realTick()
|
||||||
})
|
})
|
||||||
|
|
||||||
TimeWorker.addTask(TimeWorkerTask(ProtocolDefinition.TICK_TIME, maxDelayTime = ProtocolDefinition.TICK_TIME / 2) {
|
randomTickTask = TimeWorker.addTask(TimeWorkerTask(ProtocolDefinition.TICK_TIME, maxDelayTime = ProtocolDefinition.TICK_TIME / 2) {
|
||||||
world.randomTick()
|
world.randomTick()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -162,8 +161,8 @@ class PlayConnection(
|
|||||||
if (this::entityTickTask.isInitialized) {
|
if (this::entityTickTask.isInitialized) {
|
||||||
TimeWorker.removeTask(entityTickTask)
|
TimeWorker.removeTask(entityTickTask)
|
||||||
}
|
}
|
||||||
if (this::blockEntityTickTask.isInitialized) {
|
if (this::worldTickTask.isInitialized) {
|
||||||
TimeWorker.removeTask(blockEntityTickTask)
|
TimeWorker.removeTask(worldTickTask)
|
||||||
}
|
}
|
||||||
if (this::randomTickTask.isInitialized) {
|
if (this::randomTickTask.isInitialized) {
|
||||||
TimeWorker.removeTask(randomTickTask)
|
TimeWorker.removeTask(randomTickTask)
|
||||||
|
@ -56,8 +56,9 @@ object TimeWorker {
|
|||||||
TASKS += task
|
TASKS += task
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addTask(task: TimeWorkerTask) {
|
fun addTask(task: TimeWorkerTask): TimeWorkerTask {
|
||||||
TASKS += task
|
TASKS += task
|
||||||
|
return task
|
||||||
}
|
}
|
||||||
|
|
||||||
fun removeTask(task: TimeWorkerTask) {
|
fun removeTask(task: TimeWorkerTask) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user