Fix flipping Ticker#isEnabled more than twice on same tick causing it to be added twice to ticking list

This commit is contained in:
DBotThePony 2024-08-30 19:44:06 +07:00
parent bc75b61852
commit b65c80d55e
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -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)
}
}
}
}