Commits
Brokkonaut authored and md_5 committed 8ef7afef65d
1 1 | --- a/net/minecraft/world/level/block/BlockVine.java |
2 2 | +++ b/net/minecraft/world/level/block/BlockVine.java |
3 3 | |
4 4 | import net.minecraft.world.phys.shapes.VoxelShapeCollision; |
5 5 | import net.minecraft.world.phys.shapes.VoxelShapes; |
6 6 | |
7 7 | +import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit |
8 8 | + |
9 9 | public class BlockVine extends Block { |
10 10 | |
11 11 | public static final BlockStateBoolean UP = BlockSprawling.UP; |
12 - | |
12 + | |
13 13 | BlockPosition blockposition3 = blockposition2.relative(enumdirection1); |
14 14 | BlockPosition blockposition4 = blockposition2.relative(enumdirection2); |
15 15 | |
16 16 | + // CraftBukkit start - Call BlockSpreadEvent |
17 17 | + BlockPosition source = blockposition; |
18 18 | + |
19 19 | if (flag && isAcceptableNeighbour(worldserver, blockposition3, enumdirection1)) { |
20 20 | - worldserver.setBlock(blockposition2, (IBlockData) this.defaultBlockState().setValue(getPropertyForFace(enumdirection1), true), 2); |
21 21 | + CraftEventFactory.handleBlockSpreadEvent(worldserver, source, blockposition2, (IBlockData) this.defaultBlockState().setValue(getPropertyForFace(enumdirection1), true), 2); |
22 22 | } else if (flag1 && isAcceptableNeighbour(worldserver, blockposition4, enumdirection2)) { |
31 31 | } else if (flag1 && worldserver.isEmptyBlock(blockposition4) && isAcceptableNeighbour(worldserver, blockposition.relative(enumdirection2), enumdirection3)) { |
32 32 | - worldserver.setBlock(blockposition4, (IBlockData) this.defaultBlockState().setValue(getPropertyForFace(enumdirection3), true), 2); |
33 33 | + CraftEventFactory.handleBlockSpreadEvent(worldserver, source, blockposition4, (IBlockData) this.defaultBlockState().setValue(getPropertyForFace(enumdirection3), true), 2); |
34 34 | } else if ((double) randomsource.nextFloat() < 0.05D && isAcceptableNeighbour(worldserver, blockposition2.above(), EnumDirection.UP)) { |
35 35 | - worldserver.setBlock(blockposition2, (IBlockData) this.defaultBlockState().setValue(BlockVine.UP, true), 2); |
36 36 | + CraftEventFactory.handleBlockSpreadEvent(worldserver, source, blockposition2, (IBlockData) this.defaultBlockState().setValue(BlockVine.UP, true), 2); |
37 37 | } |
38 38 | + // CraftBukkit end |
39 39 | } |
40 40 | } else if (isAcceptableNeighbour(worldserver, blockposition2, enumdirection)) { |
41 - | worldserver.setBlock(blockposition, (IBlockData) iblockdata.setValue(getPropertyForFace(enumdirection), true), 2); |
41 + | - worldserver.setBlock(blockposition, (IBlockData) iblockdata.setValue(getPropertyForFace(enumdirection), true), 2); |
42 + | + CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, (IBlockData) iblockdata.setValue(getPropertyForFace(enumdirection), true), 2); // CraftBukkit |
43 + | } |
44 + | |
45 + | } |
46 + | } else { |
47 + | if (enumdirection == EnumDirection.UP && blockposition.getY() < worldserver.getMaxBuildHeight() - 1) { |
48 + | if (this.canSupportAtFace(worldserver, blockposition, enumdirection)) { |
49 + | - worldserver.setBlock(blockposition, (IBlockData) iblockdata.setValue(BlockVine.UP, true), 2); |
50 + | + CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, (IBlockData) iblockdata.setValue(BlockVine.UP, true), 2); // CraftBukkit |
51 + | return; |
52 + | } |
53 + | |
42 54 | |
43 55 | } |
44 56 | |
45 57 | if (this.hasHorizontalConnection(iblockdata2)) { |
46 58 | - worldserver.setBlock(blockposition1, iblockdata2, 2); |
47 59 | + CraftEventFactory.handleBlockSpreadEvent(worldserver, blockposition, blockposition1, iblockdata2, 2); // CraftBukkit |
48 60 | } |
49 61 | |
50 62 | return; |
51 63 | |