summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/BlockPistonExtension.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/BlockPistonExtension.java')
-rw-r--r--src/main/java/net/minecraft/server/BlockPistonExtension.java23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/BlockPistonExtension.java b/src/main/java/net/minecraft/server/BlockPistonExtension.java
index e6a7b186..28adc7f3 100644
--- a/src/main/java/net/minecraft/server/BlockPistonExtension.java
+++ b/src/main/java/net/minecraft/server/BlockPistonExtension.java
@@ -13,9 +13,28 @@ public class BlockPistonExtension extends Block {
this.c(0.5F);
}
+ // CraftBukkit start - Support getDrops() in BlockBreakEvent
+ public ArrayList<ItemStack> calculateDrops(World world, EntityHuman entityhuman, int i, int j, int k, int d) {
+ super.calculateDrops(world, entityhuman, i, j, k, d);
+ int l = world.getData(i, j, k) & 0x7;
+ if (l > 5 || l < 0) return super.dropList;
+ int i1 = Facing.OPPOSITE_FACING[b(l)];
+
+ i += Facing.b[i1];
+ j += Facing.c[i1];
+ k += Facing.d[i1];
+ int j1 = world.getTypeId(i, j, k);
+
+ if (j1 == Block.PISTON.id || j1 == Block.PISTON_STICKY.id) {
+ super.dropList.add(new ItemStack(Block.byId[j1], 1));
+ }
+ return super.dropList;
+ }
+ // CraftBukkit end
+
public void remove(World world, int i, int j, int k) {
super.remove(world, i, j, k);
- int l = world.getData(i, j, k);
+ int l = world.getData(i, j, k) & 0x7;
if (l > 5 || l < 0) return; // CraftBukkit - fixed a piston AIOOBE issue.
int i1 = Facing.OPPOSITE_FACING[b(l)];
@@ -27,7 +46,7 @@ public class BlockPistonExtension extends Block {
if (j1 == Block.PISTON.id || j1 == Block.PISTON_STICKY.id) {
l = world.getData(i, j, k);
if (BlockPiston.e(l)) {
- Block.byId[j1].b(world, i, j, k, l, 0);
+ //Block.byId[j1].b(world, i, j, k, l, 0); // CraftBukkit - drop moved into drop list
world.setTypeId(i, j, k, 0);
}
}