From b65c80d55e7b16ec729d326f2b2ad7ffd8e6fa52 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 30 Aug 2024 19:44:06 +0700 Subject: [PATCH] Fix flipping Ticker#isEnabled more than twice on same tick causing it to be added twice to ticking list --- .../ru/dbotthepony/mc/otm/core/util/TickList.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/TickList.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/TickList.kt index d76dd95e1..ed53c1e2e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/TickList.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/TickList.kt @@ -1,16 +1,13 @@ package ru.dbotthepony.mc.otm.core.util -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap -import it.unimi.dsi.fastutil.objects.ObjectAVLTreeSet +import it.unimi.dsi.fastutil.objects.ObjectArrayList +import it.unimi.dsi.fastutil.objects.ObjectArraySet import org.apache.logging.log4j.LogManager -import ru.dbotthepony.mc.otm.core.addSorted -import java.util.LinkedList -import java.util.PriorityQueue -import java.util.concurrent.atomic.AtomicInteger +import java.util.* class TickList : ITickable { private val tickers = LinkedList() - private val queuedTickers = ArrayList() + private val queuedTickers = ObjectArraySet() private val timers = PriorityQueue() private val namedTimers = HashMap() @@ -71,6 +68,10 @@ class TickList : ITickable { add(this) } else { queuedTickers.remove(this) + + if (!inTicker) { + tickers.remove(this) + } } } }