diff options
Diffstat (limited to 'nms-patches/DataPaletteBlock.patch')
-rw-r--r-- | nms-patches/DataPaletteBlock.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/nms-patches/DataPaletteBlock.patch b/nms-patches/DataPaletteBlock.patch new file mode 100644 index 00000000..d761b41d --- /dev/null +++ b/nms-patches/DataPaletteBlock.patch @@ -0,0 +1,25 @@ +--- a/net/minecraft/server/DataPaletteBlock.java ++++ b/net/minecraft/server/DataPaletteBlock.java +@@ -109,7 +109,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 + } + + } |