Seriously fix natural drops. Fixes BUKKIT-1297 and fixes BUKKIT-1295
By: feildmaster <admin@feildmaster.com>
This commit is contained in:
@@ -1056,6 +1056,7 @@ public class CraftWorld implements World {
|
|||||||
int blockZ = block.getZ();
|
int blockZ = block.getZ();
|
||||||
// following code is lifted from Explosion.a(boolean), and modified
|
// following code is lifted from Explosion.a(boolean), and modified
|
||||||
net.minecraft.server.Block.byId[blockId].dropNaturally(this.world, blockX, blockY, blockZ, block.getData(), yield, 0);
|
net.minecraft.server.Block.byId[blockId].dropNaturally(this.world, blockX, blockY, blockZ, block.getData(), yield, 0);
|
||||||
|
net.minecraft.server.Block.byId[blockId].doActualDrop(this.world, blockX, blockY, blockZ);
|
||||||
block.setType(org.bukkit.Material.AIR);
|
block.setType(org.bukkit.Material.AIR);
|
||||||
// not sure what this does, seems to have something to do with the 'base' material of a block.
|
// not sure what this does, seems to have something to do with the 'base' material of a block.
|
||||||
// For example, WOODEN_STAIRS does something with WOOD in this method
|
// For example, WOODEN_STAIRS does something with WOOD in this method
|
||||||
|
|||||||
@@ -348,10 +348,7 @@ public class CraftBlock implements Block {
|
|||||||
|
|
||||||
setTypeId(Material.AIR.getId());
|
setTypeId(Material.AIR.getId());
|
||||||
if (block != null) {
|
if (block != null) {
|
||||||
block.dropNaturally(chunk.getHandle().world, x, y, z, data, 1.0F, 0);
|
block.b(chunk.getHandle().world, x, y, z, data, 0);
|
||||||
for (ItemStack item : getDrops()) {
|
|
||||||
block.finishDrop(chunk.getHandle().world, x, y, z, CraftItemStack.createNMSItemStack(item));
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user