From f9eddf3f6eed4805d5c1dd5be4f4731be7e508c3 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Fri, 9 Dec 2016 12:53:15 +1100 Subject: SPIGOT-2886: Call BlockFormEvent when Lava and Water collide --- nms-patches/BlockFlowing.patch | 13 +++++++++---- nms-patches/BlockFluids.patch | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 nms-patches/BlockFluids.patch (limited to 'nms-patches') diff --git a/nms-patches/BlockFlowing.patch b/nms-patches/BlockFlowing.patch index 4651b55e..47c8bd99 100644 --- a/nms-patches/BlockFlowing.patch +++ b/nms-patches/BlockFlowing.patch @@ -24,7 +24,7 @@ int i = ((Integer) iblockdata.get(BlockFlowing.LEVEL)).intValue(); byte b0 = 1; -@@ -88,6 +98,12 @@ +@@ -88,9 +98,16 @@ IBlockData iblockdata2 = world.getType(blockposition.down()); if (this.h(world, blockposition.down(), iblockdata2)) { @@ -35,9 +35,14 @@ + } + if (!event.isCancelled()) { if (this.material == Material.LAVA && world.getType(blockposition.down()).getMaterial() == Material.WATER) { - world.setTypeUpdate(blockposition.down(), Blocks.STONE.getBlockData()); +- world.setTypeUpdate(blockposition.down(), Blocks.STONE.getBlockData()); ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(world, blockposition.down(), Blocks.STONE, null)){ this.fizz(world, blockposition.down()); -@@ -99,6 +115,8 @@ ++ } + return; + } + +@@ -99,6 +116,8 @@ } else { this.flow(world, blockposition.down(), iblockdata2, i + 8); } @@ -46,7 +51,7 @@ } else if (i >= 0 && (i == 0 || this.g(world, blockposition.down(), iblockdata2))) { Set set = this.c(world, blockposition); -@@ -116,14 +134,23 @@ +@@ -116,14 +135,23 @@ while (iterator1.hasNext()) { EnumDirection enumdirection1 = (EnumDirection) iterator1.next(); diff --git a/nms-patches/BlockFluids.patch b/nms-patches/BlockFluids.patch new file mode 100644 index 00000000..ba2f7bb4 --- /dev/null +++ b/nms-patches/BlockFluids.patch @@ -0,0 +1,27 @@ +--- a/net/minecraft/server/BlockFluids.java ++++ b/net/minecraft/server/BlockFluids.java +@@ -163,14 +163,20 @@ + Integer integer = (Integer) iblockdata.get(BlockFluids.LEVEL); + + if (integer.intValue() == 0) { +- world.setTypeUpdate(blockposition, Blocks.OBSIDIAN.getBlockData()); +- this.fizz(world, blockposition); ++ // CraftBukkit start ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(world, blockposition, Blocks.OBSIDIAN, null)) { ++ this.fizz(world, blockposition); ++ } ++ // CraftBukkit end + return true; + } + + if (integer.intValue() <= 4) { +- world.setTypeUpdate(blockposition, Blocks.COBBLESTONE.getBlockData()); +- this.fizz(world, blockposition); ++ // CraftBukkit start ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(world, blockposition, Blocks.COBBLESTONE, null)) { ++ this.fizz(world, blockposition); ++ } ++ // CraftBukkit end + return true; + } + } -- cgit v1.2.3