Fix ConcurrentModificationException
Dieser Commit ist enthalten in:
Ursprung
29c3e954be
Commit
8d10a702b4
@ -21,6 +21,7 @@ class TNTTracer_15 {
|
||||
|
||||
private static TracerCallback_15 tracerCallback;
|
||||
private static TracerCallbackUpdatePoints_15 tracerCallbackUpdatePoints;
|
||||
private static TracerCallbackTracing_15 tracerCallbackTracing;
|
||||
private static TracerActionBarCallback_15 tracerActionBarCallback;
|
||||
private static TNTShowCallback_15 tntShowCallback;
|
||||
private static CacheUpdateCallback_15 cacheUpdateCallback;
|
||||
@ -39,7 +40,7 @@ class TNTTracer_15 {
|
||||
return d * d;
|
||||
}
|
||||
|
||||
static void init(Plugin plugin, TracerCallback_15 tracerCallback, TracerCallbackUpdatePoints_15 tracerCallbackUpdatePoints, TracerActionBarCallback_15 tracerActionBarCallback, TNTShowCallback_15 tntShowCallback, CacheUpdateCallback_15 cacheUpdateCallback) {
|
||||
static void init(Plugin plugin, TracerCallback_15 tracerCallback, TracerCallbackUpdatePoints_15 tracerCallbackUpdatePoints, TracerActionBarCallback_15 tracerActionBarCallback, TNTShowCallback_15 tntShowCallback, CacheUpdateCallback_15 cacheUpdateCallback, TracerCallbackTracing_15 tracerCallbackTracing) {
|
||||
Bukkit.getScheduler().runTaskTimer(plugin, () -> {
|
||||
synchronized (synchronizer) {
|
||||
synchronizer.notifyAll();
|
||||
@ -63,6 +64,7 @@ class TNTTracer_15 {
|
||||
TNTTracer_15.tracerActionBarCallback = tracerActionBarCallback;
|
||||
TNTTracer_15.tntShowCallback = tntShowCallback;
|
||||
TNTTracer_15.cacheUpdateCallback = cacheUpdateCallback;
|
||||
TNTTracer_15.tracerCallbackTracing = tracerCallbackTracing;
|
||||
}
|
||||
|
||||
static void initWorld() {
|
||||
@ -100,6 +102,10 @@ class TNTTracer_15 {
|
||||
private static float[] noValue = new float[0];
|
||||
|
||||
private static void update(Player p, PlayerTraceCache_15 traceCache) {
|
||||
if (tracerCallbackTracing.run()) {
|
||||
return;
|
||||
}
|
||||
|
||||
float[] floats = tracerCallback.run(p);
|
||||
if (floats.length == 0 || floats.length % 3 != 0) {
|
||||
traceCache.setPositions(noValue);
|
||||
|
@ -0,0 +1,8 @@
|
||||
package de.steamwar.bausystem.tracer.showcallback;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface TracerCallbackTracing_15 {
|
||||
|
||||
boolean run();
|
||||
|
||||
}
|
@ -44,7 +44,7 @@ public class TNTTracer15 {
|
||||
private static final float[] noValue = new float[0];
|
||||
|
||||
public static void initTNTTracer_15() {
|
||||
TNTTracer_15.init(BauSystem.getPlugin(), TNTTracer15::getTracePoints, TNTTracer15::getTraceUpdatePoints, TNTTracer15::getActionBar, TNTTracer15::showMode, p -> ShowManager.get(p).isDirty());
|
||||
TNTTracer_15.init(BauSystem.getPlugin(), TNTTracer15::getTracePoints, TNTTracer15::getTraceUpdatePoints, TNTTracer15::getActionBar, TNTTracer15::showMode, p -> ShowManager.get(p).isDirty(), () -> status == Status.RECORD || status == Status.RECORD_AUTO);
|
||||
}
|
||||
|
||||
private static float[] accumulate(LinkedList<TNTTrace> traces) {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren