29 lines
1.4 KiB
Diff
29 lines
1.4 KiB
Diff
|
--- ../src-base/minecraft/net/minecraft/block/BlockPistonExtension.java
|
||
|
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonExtension.java
|
||
|
@@ -55,6 +55,12 @@
|
||
|
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
|
||
|
{
|
||
|
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||
|
+
|
||
|
+ if ((p_149749_6_ & 7) >= Facing.oppositeSide.length)
|
||
|
+ {
|
||
|
+ return; // CraftBukkit - fix a piston AIOOBE issue
|
||
|
+ }
|
||
|
+
|
||
|
int i1 = Facing.oppositeSide[getDirectionMeta(p_149749_6_)];
|
||
|
p_149749_2_ += Facing.offsetsXForSide[i1];
|
||
|
p_149749_3_ += Facing.offsetsYForSide[i1];
|
||
|
@@ -200,6 +206,12 @@
|
||
|
public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
|
||
|
{
|
||
|
int l = getDirectionMeta(p_149695_1_.getBlockMetadata(p_149695_2_, p_149695_3_, p_149695_4_));
|
||
|
+
|
||
|
+ if ((l & 7) >= Facing.oppositeSide.length)
|
||
|
+ {
|
||
|
+ return; // CraftBukkit - fix a piston AIOOBE issue
|
||
|
+ }
|
||
|
+
|
||
|
Block block1 = p_149695_1_.getBlock(p_149695_2_ - Facing.offsetsXForSide[l], p_149695_3_ - Facing.offsetsYForSide[l], p_149695_4_ - Facing.offsetsZForSide[l]);
|
||
|
|
||
|
if (block1 != Blocks.piston && block1 != Blocks.sticky_piston)
|