summaryrefslogtreecommitdiffstats
path: root/nms-patches/BlockChorusFlower.patch
blob: 3ef5e8345e5d405d09341ae196e459e07e16bead (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
--- a/net/minecraft/server/BlockChorusFlower.java
+++ b/net/minecraft/server/BlockChorusFlower.java
@@ -3,6 +3,8 @@
 import java.util.Iterator;
 import java.util.Random;
 
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
+
 public class BlockChorusFlower extends Block {
 
     public static final BlockStateInteger AGE = BlockStateInteger.of("age", 0, 5);
@@ -66,8 +68,20 @@
                     }
 
                     if (flag && a(world, blockposition1, (EnumDirection) null) && world.isEmpty(blockposition.up(2))) {
-                        world.setTypeAndData(blockposition, Blocks.CHORUS_PLANT.getBlockData(), 2);
-                        this.a(world, blockposition1, i);
+                        // world.setTypeAndData(blockposition, Blocks.CHORUS_PLANT.getBlockData(), 2);
+                        // this.a(world, blockposition1, i);
+                        // CraftBukkit start - add event
+                        BlockPosition target = blockposition.up();
+                        if (CraftEventFactory.handleBlockSpreadEvent(
+                                world.getWorld().getBlockAt(target.getX(), target.getY(), target.getZ()),
+                                world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()),
+                                this,
+                                toLegacyData(this.getBlockData().set(BlockChorusFlower.AGE, Integer.valueOf(i)))
+                        )) {
+                            world.setTypeAndData(blockposition, Blocks.CHORUS_PLANT.getBlockData(), 2);
+                            world.triggerEffect(1033, blockposition, 0);
+                        }
+                        // CraftBukkit end
                     } else if (i < 4) {
                         j = random.nextInt(4);
                         boolean flag2 = false;
@@ -81,18 +95,53 @@
                             BlockPosition blockposition2 = blockposition.shift(enumdirection);
 
                             if (world.isEmpty(blockposition2) && world.isEmpty(blockposition2.down()) && a(world, blockposition2, enumdirection.opposite())) {
-                                this.a(world, blockposition2, i + 1);
-                                flag2 = true;
+                                // CraftBukkit start - add event
+                                // this.a(world, blockposition2, i + 1);
+                                BlockPosition target = blockposition1;
+                                if (CraftEventFactory.handleBlockSpreadEvent(
+                                        world.getWorld().getBlockAt(target.getX(), target.getY(), target.getZ()),
+                                        world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()),
+                                        this,
+                                        toLegacyData(this.getBlockData().set(BlockChorusFlower.AGE, Integer.valueOf(i + 1)))
+                                )) {
+                                    world.triggerEffect(1033, blockposition, 0);
+                                    flag2 = true;
+                                }
+                                // CraftBukkit end
                             }
                         }
 
                         if (flag2) {
                             world.setTypeAndData(blockposition, Blocks.CHORUS_PLANT.getBlockData(), 2);
                         } else {
-                            this.c(world, blockposition);
+                            // CraftBukkit - add event
+                            if (CraftEventFactory.handleBlockGrowEvent(
+                                    world,
+                                    blockposition.getX(),
+                                    blockposition.getY(),
+                                    blockposition.getZ(),
+                                    this,
+                                    toLegacyData(iblockdata.set(BlockChorusFlower.AGE, Integer.valueOf(5)))
+                            )) {
+                                world.triggerEffect(1034, blockposition, 0);
+                            }
+                            // this.c(world, blockposition);
+                            // CraftBukkit end
                         }
                     } else if (i == 4) {
-                        this.c(world, blockposition);
+                        // CraftBukkit - add event
+                        if (CraftEventFactory.handleBlockGrowEvent(
+                                world,
+                                blockposition.getX(),
+                                blockposition.getY(),
+                                blockposition.getZ(),
+                                this,
+                                toLegacyData(iblockdata.set(BlockChorusFlower.AGE, Integer.valueOf(5)))
+                        )) {
+                            world.triggerEffect(1034, blockposition, 0);
+                        }
+                        // this.c(world, blockposition);
+                        // CraftBukkit end
                     }
 
                 }