summaryrefslogtreecommitdiffstats
path: root/nms-patches/DataPaletteBlock.patch
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2016-03-01 08:32:46 +1100
committermd_5 <git@md-5.net>2016-03-01 09:32:45 +1100
commitaa008dff0f9bedbe88e1fe79831776b0a52eb90a (patch)
treecb520e0f4cc5d683fb9b7fb95de37480a7443dfb /nms-patches/DataPaletteBlock.patch
parente1ebe524a78e27f6a2829ed4574fded3779094e1 (diff)
downloadcraftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar.gz
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar.lz
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar.xz
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.zip
Update to Minecraft 1.9
Diffstat (limited to 'nms-patches/DataPaletteBlock.patch')
-rw-r--r--nms-patches/DataPaletteBlock.patch25
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
+ }
+
+ }