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<IConditionalTickable>() - private val queuedTickers = ArrayList<IConditionalTickable>() + private val queuedTickers = ObjectArraySet<IConditionalTickable>() private val timers = PriorityQueue<Timer>() private val namedTimers = HashMap<Any?, Timer>() @@ -71,6 +68,10 @@ class TickList : ITickable { add(this) } else { queuedTickers.remove(this) + + if (!inTicker) { + tickers.remove(this) + } } } }