From 168850f61e816522c5115ebe28c38df6d164ce56 Mon Sep 17 00:00:00 2001 From: pk910 Date: Sat, 14 Dec 2019 06:31:15 +0100 Subject: [PATCH] fixed biome data handling in MapChunkCache115.java --- .../bukkit/helper/v115/MapChunkCache115.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/bukkit-helper-115/src/main/java/org/dynmap/bukkit/helper/v115/MapChunkCache115.java b/bukkit-helper-115/src/main/java/org/dynmap/bukkit/helper/v115/MapChunkCache115.java index e14aecce..d79ca4ff 100644 --- a/bukkit-helper-115/src/main/java/org/dynmap/bukkit/helper/v115/MapChunkCache115.java +++ b/bukkit-helper-115/src/main/java/org/dynmap/bukkit/helper/v115/MapChunkCache115.java @@ -223,17 +223,25 @@ public class MapChunkCache115 extends AbstractMapChunkCache { BiomeBase[] bbl = (BiomeBase[])BukkitVersionHelper.helper.getBiomeBaseList(); if (nbt.hasKey("Biomes")) { int[] bb = nbt.getIntArray("Biomes"); - if (bb != null) { + if (bb != null && bb.length <= 256) { for (int i = 0; i < bb.length; i++) { int bv = bb[i]; if (bv < 0) bv = 0; this.biomebase[i] = bbl[bv]; } + } + else if (bb != null && bb.length > 256) { biomestorage = new BiomeStorage(cc, ((CraftWorld)w).getHandle().getChunkProvider().getChunkGenerator().getWorldChunkManager(), bb); - } + for(int iz = 0; iz < 16; iz++) { + for(int ix = 0; ix < 16; ix++) { + this.biomebase[iz << 4 | ix] = biomestorage.getBiome(ix >> 2, 0, iz >> 2); + } + } + } + } if(biomestorage == null) { - biomestorage = new BiomeStorage(this.biomebase); + biomestorage = new BiomeStorage(cc, ((CraftWorld)w).getHandle().getChunkProvider().getChunkGenerator().getWorldChunkManager()); } this.biomestorage = biomestorage; }