From 84958cfd022b308b4cb2d8018846b598dd1f7f73 Mon Sep 17 00:00:00 2001 From: c0508383 Date: Wed, 6 Jul 2022 15:28:25 -0500 Subject: [PATCH] DataTimers: -Prevented concurrent modification error when removing a ticking timer. --- .../java/noppes/npcs/entity/data/DataTimers.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/entity/data/DataTimers.java b/src/main/java/noppes/npcs/entity/data/DataTimers.java index fd77c92cd..f3c2c65a2 100644 --- a/src/main/java/noppes/npcs/entity/data/DataTimers.java +++ b/src/main/java/noppes/npcs/entity/data/DataTimers.java @@ -5,7 +5,10 @@ package noppes.npcs.entity.data; +import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; + import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import noppes.npcs.EventHooks; @@ -94,8 +97,10 @@ public class DataTimers implements ITimers { public void writeToNBT(NBTTagCompound compound) { NBTTagList list = new NBTTagList(); + Iterator var3 = this.timers.values().iterator(); - for (Timer timer : this.timers.values()) { + while(var3.hasNext()) { + DataTimers.Timer timer = (DataTimers.Timer)var3.next(); NBTTagCompound c = new NBTTagCompound(); c.setInteger("ID", timer.id); c.setInteger("TimerTicks", timer.timerTicks); @@ -130,7 +135,10 @@ public class DataTimers implements ITimers { } public void update() { - for (Timer timer : this.timers.values()) { + Iterator var1 = (new ArrayList<>(this.timers.values())).iterator(); + + while (var1.hasNext()) { + DataTimers.Timer timer = var1.next(); timer.update(); } }