From e5cb122db3cf069822b6aa69ecba7759c0531f51 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:59:10 -0400 Subject: [PATCH] Use normal biome data for non-extended world height --- .../geysermc/connector/utils/ChunkUtils.java | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java b/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java index 1ca18c4ac..c4e2162ad 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java @@ -85,27 +85,32 @@ public class ChunkUtils { public static final byte[] EMPTY_BIOME_DATA; static { - ByteBuf byteBuf = Unpooled.buffer(); - try { - BlockStorage blockStorage = new BlockStorage(0); - blockStorage.writeToNetwork(byteBuf); + if (GeyserConnector.getInstance().getConfig().isExtendedWorldHeight()) { + ByteBuf byteBuf = Unpooled.buffer(); + try { + BlockStorage blockStorage = new BlockStorage(0); + blockStorage.writeToNetwork(byteBuf); - EMPTY_BIOME_DATA = new byte[byteBuf.readableBytes()]; - byteBuf.readBytes(EMPTY_BIOME_DATA); - } finally { - byteBuf.release(); - } - - byteBuf = Unpooled.buffer(); - try { - for (int i = 0; i < 32; i++) { - byteBuf.writeBytes(EMPTY_BIOME_DATA); + EMPTY_BIOME_DATA = new byte[byteBuf.readableBytes()]; + byteBuf.readBytes(EMPTY_BIOME_DATA); + } finally { + byteBuf.release(); } - EMPTY_CHUNK_DATA = new byte[byteBuf.readableBytes()]; - byteBuf.readBytes(EMPTY_CHUNK_DATA); - } finally { - byteBuf.release(); + byteBuf = Unpooled.buffer(); + try { + for (int i = 0; i < 32; i++) { + byteBuf.writeBytes(EMPTY_BIOME_DATA); + } + + EMPTY_CHUNK_DATA = new byte[byteBuf.readableBytes()]; + byteBuf.readBytes(EMPTY_CHUNK_DATA); + } finally { + byteBuf.release(); + } + } else { + EMPTY_BIOME_DATA = null; // Unused + EMPTY_CHUNK_DATA = new byte[257]; // 256 bytes for biomes, one for borders } }