Fixed bonemeal not being consumed on failed growth attempts. This fixes BUKKIT-337. Thanks to md-5 for the pull request!

This commit is contained in:
Nathan Adams 2011-12-19 16:41:55 +00:00
parent 246d07482b
commit 972b2087f2
7 changed files with 9 additions and 17 deletions

View File

@ -108,10 +108,13 @@ public class BlockMushroom extends BlockFlower {
event = new StructureGrowEvent(location, TreeType.RED_MUSHROOM, bonemeal, player, new ArrayList<BlockState>());
worldgenhugemushroom = new WorldGenHugeMushroom(1);
}
if (worldgenhugemushroom != null && event != null){
if (worldgenhugemushroom != null && event != null) {
grown = worldgenhugemushroom.grow(world, random, i, j, k, event, itemstack, world.getWorld());
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
}
if (!grown || event.isCancelled()){
if (!grown || event.isCancelled()) {
world.setRawTypeIdAndData(i, j, k, this.id, l);
return false;
}

View File

@ -70,6 +70,9 @@ public class BlockSapling extends BlockFlower {
if (event == null) {
return;
}
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
if (!grownTree || event.isCancelled()) {
world.setRawTypeIdAndData(i, j, k, this.id, l);
}
@ -82,6 +85,7 @@ public class BlockSapling extends BlockFlower {
// CraftBukkit start
private class BlockChangeWithNotify implements BlockChangeDelegate {
World world;
BlockChangeWithNotify(World world) {

View File

@ -401,9 +401,6 @@ public class WorldGenBigTree extends WorldGenerator {
for (BlockState state : event.getBlocks()) {
state.update();
}
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
}
}
// Craftbukkit end

View File

@ -126,9 +126,6 @@ public class WorldGenForest extends WorldGenerator {
for (BlockState state : event.getBlocks()) {
state.update(true);
}
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
}
}
// Craftbukkit end

View File

@ -196,9 +196,6 @@ public class WorldGenHugeMushroom extends WorldGenerator {
for (BlockState state : event.getBlocks()) {
state.update(true);
}
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
}
}
// Craftbukkit end

View File

@ -144,9 +144,6 @@ public class WorldGenTaiga2 extends WorldGenerator {
for (BlockState state : event.getBlocks()) {
state.update(true);
}
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
}
}
// Craftbukkit end

View File

@ -124,9 +124,6 @@ public class WorldGenTrees extends WorldGenerator {
for (BlockState state : event.getBlocks()) {
state.update(true);
}
if (event.isFromBonemeal() && itemstack != null) {
--itemstack.count;
}
}
}
// Craftbukkit end