From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Thu, 9 Dec 2021 00:08:11 -0800 Subject: [PATCH] Fix ChunkSnapshot#isSectionEmpty(int) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java index db344e5b9f96f317a232304587e6b1673fc6067d..b4f7b91ac165e3171ffcf7d6a993af248d268959 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java @@ -286,8 +286,15 @@ public class CraftChunk implements Chunk { for (int i = 0; i < cs.length; i++) { CompoundTag data = new CompoundTag(); + // Paper start + sectionEmpty[i] = cs[i].hasOnlyAir(); + if (!sectionEmpty[i]) { data.put("block_states", ChunkSerializer.BLOCK_STATE_CODEC.encodeStart(NbtOps.INSTANCE, cs[i].getStates()).get().left().get()); sectionBlockIDs[i] = ChunkSerializer.BLOCK_STATE_CODEC.parse(NbtOps.INSTANCE, data.getCompound("block_states")).get().left().get(); + } else { + sectionBlockIDs[i] = CraftChunk.emptyBlockIDs; + } + // Paper end LevelLightEngine lightengine = chunk.level.getLightEngine(); DataLayer skyLightArray = lightengine.getLayerListener(LightLayer.SKY).getDataLayerData(SectionPos.of(x, i, z));