diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 0dd4bb822..065c3a6ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -751,18 +751,11 @@ public class CraftWorld implements World { @Override public boolean generateTree(Location loc, TreeType type, BlockChangeDelegate delegate) { world.captureTreeGeneration = true; - world.captureBlockStates = true; boolean grownTree = generateTree(loc, type); - world.captureBlockStates = false; world.captureTreeGeneration = false; if (grownTree) { // Copy block data to delegate for (BlockState blockstate : world.capturedBlockStates.values()) { - BlockPosition position = ((CraftBlockState) blockstate).getPosition(); - net.minecraft.world.level.block.state.IBlockData oldBlock = world.getType(position); - int flag = ((CraftBlockState) blockstate).getFlag(); - delegate.setBlockData(blockstate.getX(), blockstate.getY(), blockstate.getZ(), blockstate.getBlockData()); - net.minecraft.world.level.block.state.IBlockData newBlock = world.getType(position); - world.notifyAndUpdatePhysics(position, null, oldBlock, newBlock, newBlock, flag, 512); + blockstate.update(true); } world.capturedBlockStates.clear(); return true;