Fix flipping Ticker#isEnabled more than twice on same tick causing it to be added twice to ticking list
This commit is contained in:
parent
bc75b61852
commit
b65c80d55e
@ -1,16 +1,13 @@
|
|||||||
package ru.dbotthepony.mc.otm.core.util
|
package ru.dbotthepony.mc.otm.core.util
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList
|
||||||
import it.unimi.dsi.fastutil.objects.ObjectAVLTreeSet
|
import it.unimi.dsi.fastutil.objects.ObjectArraySet
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import ru.dbotthepony.mc.otm.core.addSorted
|
import java.util.*
|
||||||
import java.util.LinkedList
|
|
||||||
import java.util.PriorityQueue
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
|
||||||
|
|
||||||
class TickList : ITickable {
|
class TickList : ITickable {
|
||||||
private val tickers = LinkedList<IConditionalTickable>()
|
private val tickers = LinkedList<IConditionalTickable>()
|
||||||
private val queuedTickers = ArrayList<IConditionalTickable>()
|
private val queuedTickers = ObjectArraySet<IConditionalTickable>()
|
||||||
|
|
||||||
private val timers = PriorityQueue<Timer>()
|
private val timers = PriorityQueue<Timer>()
|
||||||
private val namedTimers = HashMap<Any?, Timer>()
|
private val namedTimers = HashMap<Any?, Timer>()
|
||||||
@ -71,6 +68,10 @@ class TickList : ITickable {
|
|||||||
add(this)
|
add(this)
|
||||||
} else {
|
} else {
|
||||||
queuedTickers.remove(this)
|
queuedTickers.remove(this)
|
||||||
|
|
||||||
|
if (!inTicker) {
|
||||||
|
tickers.remove(this)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user