diff --git a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java index 159e7c5e..7b25b636 100644 --- a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java +++ b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java @@ -41,6 +41,9 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.relauncher.Side; import org.lwjgl.opengl.GL11; +import java.util.ArrayList; +import java.util.List; + /** * Event handler responsible for client-side only events, mostly rendering. * @@ -138,7 +141,10 @@ public final class WizardryClientEventHandler { if(world == null) return; - for(TileEntity tileentity : world.loadedTileEntityList){ + // Somehow this was throwing a CME, I have no idea why so I'm just going to cheat and copy the list + List tileEntities = new ArrayList<>(world.loadedTileEntityList); + + for(TileEntity tileentity : tileEntities){ if(tileentity instanceof TileEntityDispenser){ if(DispenserCastingData.get((TileEntityDispenser)tileentity) != null){ DispenserCastingData.get((TileEntityDispenser)tileentity).update(); diff --git a/src/main/java/electroblob/wizardry/data/DispenserCastingData.java b/src/main/java/electroblob/wizardry/data/DispenserCastingData.java index 28d0fe56..226c4abc 100644 --- a/src/main/java/electroblob/wizardry/data/DispenserCastingData.java +++ b/src/main/java/electroblob/wizardry/data/DispenserCastingData.java @@ -166,7 +166,10 @@ public class DispenserCastingData extends BlockCastingData // This will fire once for each dimension, but since we want dispenser-casting to work in all dimensions, // this is correct (the loaded tile entity list will of course be different in each case. - for(TileEntity tileentity : event.world.loadedTileEntityList){ + // Somehow this was throwing a CME, I have no idea why so I'm just going to cheat and copy the list + List tileEntities = new ArrayList<>(event.world.loadedTileEntityList); + + for(TileEntity tileentity : tileEntities){ if(tileentity instanceof TileEntityDispenser){ if(DispenserCastingData.get((TileEntityDispenser)tileentity) != null){ DispenserCastingData.get((TileEntityDispenser)tileentity).update();