74 lines
4.2 KiB
Diff
74 lines
4.2 KiB
Diff
--- a/net/minecraft/world/level/block/BlockChorusFlower.java
|
|
+++ b/net/minecraft/world/level/block/BlockChorusFlower.java
|
|
@@ -22,6 +22,8 @@
|
|
import net.minecraft.world.phys.MovingObjectPositionBlock;
|
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
|
|
|
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
|
|
+
|
|
public class BlockChorusFlower extends Block {
|
|
|
|
public static final MapCodec<BlockChorusFlower> CODEC = RecordCodecBuilder.mapCodec((instance) -> {
|
|
@@ -102,8 +104,12 @@
|
|
}
|
|
|
|
if (flag && allNeighborsEmpty(worldserver, blockposition1, (EnumDirection) null) && worldserver.isEmptyBlock(blockposition.above(2))) {
|
|
- worldserver.setBlock(blockposition, BlockChorusFruit.getStateWithConnections(worldserver, blockposition, this.plant.defaultBlockState()), 2);
|
|
- this.placeGrownFlower(worldserver, blockposition1, i);
|
|
+ // CraftBukkit start - add event
|
|
+ if (CraftEventFactory.handleBlockSpreadEvent(worldserver, blockposition, blockposition1, this.defaultBlockState().setValue(BlockChorusFlower.AGE, Integer.valueOf(i)), 2)) {
|
|
+ worldserver.setBlock(blockposition, BlockChorusFruit.getStateWithConnections(worldserver, blockposition, this.plant.defaultBlockState()), 2);
|
|
+ this.placeGrownFlower(worldserver, blockposition1, i);
|
|
+ }
|
|
+ // CraftBukkit end
|
|
} else if (i < 4) {
|
|
j = randomsource.nextInt(4);
|
|
if (flag1) {
|
|
@@ -117,18 +123,30 @@
|
|
BlockPosition blockposition2 = blockposition.relative(enumdirection);
|
|
|
|
if (worldserver.isEmptyBlock(blockposition2) && worldserver.isEmptyBlock(blockposition2.below()) && allNeighborsEmpty(worldserver, blockposition2, enumdirection.getOpposite())) {
|
|
- this.placeGrownFlower(worldserver, blockposition2, i + 1);
|
|
- flag2 = true;
|
|
+ // CraftBukkit start - add event
|
|
+ if (CraftEventFactory.handleBlockSpreadEvent(worldserver, blockposition, blockposition2, this.defaultBlockState().setValue(BlockChorusFlower.AGE, Integer.valueOf(i + 1)), 2)) {
|
|
+ this.placeGrownFlower(worldserver, blockposition2, i + 1);
|
|
+ flag2 = true;
|
|
+ }
|
|
+ // CraftBukkit end
|
|
}
|
|
}
|
|
|
|
if (flag2) {
|
|
worldserver.setBlock(blockposition, BlockChorusFruit.getStateWithConnections(worldserver, blockposition, this.plant.defaultBlockState()), 2);
|
|
} else {
|
|
- this.placeDeadFlower(worldserver, blockposition);
|
|
+ // CraftBukkit start - add event
|
|
+ if (CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, this.defaultBlockState().setValue(BlockChorusFlower.AGE, Integer.valueOf(5)), 2)) {
|
|
+ this.placeDeadFlower(worldserver, blockposition);
|
|
+ }
|
|
+ // CraftBukkit end
|
|
}
|
|
} else {
|
|
- this.placeDeadFlower(worldserver, blockposition);
|
|
+ // CraftBukkit start - add event
|
|
+ if (CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, this.defaultBlockState().setValue(BlockChorusFlower.AGE, Integer.valueOf(5)), 2)) {
|
|
+ this.placeDeadFlower(worldserver, blockposition);
|
|
+ }
|
|
+ // CraftBukkit end
|
|
}
|
|
|
|
}
|
|
@@ -265,6 +283,11 @@
|
|
BlockPosition blockposition = movingobjectpositionblock.getBlockPos();
|
|
|
|
if (!world.isClientSide && iprojectile.mayInteract(world, blockposition) && iprojectile.mayBreak(world)) {
|
|
+ // CraftBukkit
|
|
+ if (!CraftEventFactory.callEntityChangeBlockEvent(iprojectile, blockposition, Blocks.AIR.defaultBlockState())) {
|
|
+ return;
|
|
+ }
|
|
+ // CraftBukkit end
|
|
world.destroyBlock(blockposition, true, iprojectile);
|
|
}
|
|
|