--- a/net/minecraft/server/DataPaletteBlock.java +++ b/net/minecraft/server/DataPaletteBlock.java @@ -112,7 +112,21 @@ int i1 = nibblearray1 == null ? 0 : nibblearray1.a(j, k, l); int j1 = i1 << 12 | (abyte[i] & 255) << 4 | nibblearray.a(j, k, l); - this.setBlockIndex(i, (IBlockData) Block.REGISTRY_ID.fromId(j1)); + // CraftBukkit start - fix blocks with random data values (caused by plugins) + IBlockData data = Block.REGISTRY_ID.fromId(j1); + if (data == null) { + Block block = Block.getById(j1 >> 4); + if (block != null) { + try { + data = block.fromLegacyData(j1 & 0xF); + } catch (Exception ignored) { + data = block.getBlockData(); + } + } + } + this.setBlockIndex(i, data); + // this.setBlockIndex(i, (IBlockData) Block.REGISTRY_ID.fromId(j1)); + // CraftBukkit end } }