From 38cad3b0f1b1898ca58a069f5b46f659b2a58a84 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 24 Jan 2017 21:21:02 +0000 Subject: [PATCH] Should remove the last few issues with the power net, closes #924 and #930 --- .../java/techreborn/power/TRPowerNet.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/techreborn/power/TRPowerNet.java b/src/main/java/techreborn/power/TRPowerNet.java index 3ce1945ae..135842c5a 100644 --- a/src/main/java/techreborn/power/TRPowerNet.java +++ b/src/main/java/techreborn/power/TRPowerNet.java @@ -57,25 +57,24 @@ public class TRPowerNet { } @SubscribeEvent - public void tick(PowerTickEvent evt) { + public synchronized void tick(PowerTickEvent evt) { evt.getWorld().theProfiler.startSection("TechRebornPowerNet"); if (tick < 20) { tick++; return; } if (tick % 80 == 0) { - List oldCables = new ArrayList<>(); - for (CableMultipart cableMultipart : cables) { + for (Iterator it = cables.iterator(); it.hasNext(); ) { + CableMultipart cableMultipart = it.next(); if (cableMultipart.getWorld() == null || cableMultipart.getPos() == null) { - oldCables.add(cableMultipart); + it.remove(); } CableMultipart mp = cableMultipart.getPartFromWorld(cableMultipart.getWorld(), cableMultipart.getPos(), null); if (mp == null) { - oldCables.add(cableMultipart); + it.remove(); } } - cables.removeAll(oldCables); } if (!cables.isEmpty()) { ArrayList collectibles = new ArrayList(); @@ -106,13 +105,17 @@ public class TRPowerNet { } public void addElement(CableMultipart te) { - if (!cables.contains(te)) { - cables.add(te); + synchronized (cables){ + if (!cables.contains(te)) { + cables.add(te); + } } } public void removeElement(CableMultipart te) { - cables.remove(te); + synchronized (cables){ + cables.remove(te); + } this.rebuild(); this.checkAndRemoveOldEndpoints(); }