From 823e3fb0c6cd03a3142fdf28438e82969eab4552 Mon Sep 17 00:00:00 2001
From: feildmaster <admin@feildmaster.com>
Date: Sat, 4 Aug 2012 03:07:27 -0500
Subject: [PATCH] Correctly detect invalid PistonExtension's to allow removal
 of StickyPistons. Fixes BUKKIT-2059

---
 src/main/java/net/minecraft/server/BlockPistonExtension.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/net/minecraft/server/BlockPistonExtension.java b/src/main/java/net/minecraft/server/BlockPistonExtension.java
index 289671756c..19ec8d5d4d 100644
--- a/src/main/java/net/minecraft/server/BlockPistonExtension.java
+++ b/src/main/java/net/minecraft/server/BlockPistonExtension.java
@@ -15,7 +15,7 @@ public class BlockPistonExtension extends Block {
 
     public void remove(World world, int i, int j, int k, int l, int i1) {
         super.remove(world, i, j, k, l, i1);
-        if (i1 > 5 || i1 < 0) return; // CraftBukkit - fixed a piston AIOOBE issue
+        if ((i1 & 7) >= Facing.OPPOSITE_FACING.length) return; // CraftBukkit - fixed a piston AIOOBE issue
         int j1 = Facing.OPPOSITE_FACING[f(i1)];
 
         i += Facing.b[j1];
@@ -142,7 +142,7 @@ public class BlockPistonExtension extends Block {
 
     public void doPhysics(World world, int i, int j, int k, int l) {
         int i1 = f(world.getData(i, j, k));
-        if (i1 > 5 || i1 < 0) return; // CraftBukkit - fixed a piston AIOOBE issue
+        if ((i1 & 7) >= Facing.OPPOSITE_FACING.length) return; // CraftBukkit - fixed a piston AIOOBE issue
         int j1 = world.getTypeId(i - Facing.b[i1], j - Facing.c[i1], k - Facing.d[i1]);
 
         if (j1 != Block.PISTON.id && j1 != Block.PISTON_STICKY.id) {