From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ivan Pekov <ivan@mrivanplays.com>
Date: Tue, 29 Sep 2020 19:25:49 +0300
Subject: [PATCH] Fix IndexOutOfBoundsException when sending too many changes


diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMultiBlockChange.java b/src/main/java/net/minecraft/server/PacketPlayOutMultiBlockChange.java
index f260459d70053ffd17952aebf3e0410666f9bcd0..a28b6a44e744f16598419d20f4fe5d55016213e4 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutMultiBlockChange.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMultiBlockChange.java
@@ -20,12 +20,16 @@ public class PacketPlayOutMultiBlockChange implements Packet<PacketListenerPlayO
         this.a(shortset.size());
         int i = 0;
 
-        for (ShortIterator shortiterator = shortset.iterator(); shortiterator.hasNext(); ++i) {
-            short short0 = (Short) shortiterator.next();
+        // Yatopia start - fix IndexOutOfBounds exception when doing too many changes
+        ShortIterator shortiterator = shortset.iterator();
+        while (shortiterator.hasNext()) {
+            short short0 = (Short) shortiterator.nextShort();
 
             this.b[i] = short0;
             this.c[i] = (chunksection != null) ? chunksection.getType(SectionPosition.a(short0), SectionPosition.b(short0), SectionPosition.c(short0)) : Blocks.AIR.getBlockData(); // CraftBukkit - SPIGOT-6076, Mojang bug when empty chunk section notified
+            i++;
         }
+        // Yatopia end
 
     }
 
