mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-09-19 19:11:39 +02:00
30 lines
1.6 KiB
Diff
30 lines
1.6 KiB
Diff
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/network/protocol/game/PacketPlayOutMultiBlockChange.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.java
|
|
index e4bf350cb650d6deb0cea5f85fee66c6c92bc659..6d8727b116a88fd3d491102c1e3634890cdac05c 100644
|
|
--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.java
|
|
+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.java
|
|
@@ -27,12 +27,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)) : net.minecraft.world.level.block.Blocks.AIR.getBlockData(); // CraftBukkit - SPIGOT-6076, Mojang bug when empty chunk section notified
|
|
+ i++;
|
|
}
|
|
+ // Yatopia end
|
|
|
|
}
|
|
|