From 00e6a3aa65e1bd534149b0600d3820a97615c55a Mon Sep 17 00:00:00 2001 From: snaxson Date: Sun, 5 Aug 2012 22:41:48 -0700 Subject: [PATCH] Fix loading schematic files with block data values >127 Minecraft 1.3 introduces several blocks with data values over 127, such as sandstone stairs (128). Since byte is signed, implicit conversion to short results in negative block data values that cause later IndexOutOfBounds exceptions. This change explicitly masks off the extended sign bits so the result is positive. --- .../com/sk89q/worldedit/schematic/MCEditSchematicFormat.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java b/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java index 44abfa99f..cc932076e 100644 --- a/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java +++ b/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java @@ -121,7 +121,7 @@ public class MCEditSchematicFormat extends SchematicFormat { } } else { for (int i = 0; i < rawBlocks.length; ++i) { - blocks[i] = rawBlocks[i]; + blocks[i] = (short) (rawBlocks[i] & 0xFF); } }