SPIGOT-2886: Call BlockFormEvent when Lava and Water collide

This commit is contained in:
Brokkonaut 2016-12-09 12:53:15 +11:00 committed by md_5
parent caf86c88a9
commit f9eddf3f6e
2 changed files with 36 additions and 4 deletions

View File

@ -24,7 +24,7 @@
int i = ((Integer) iblockdata.get(BlockFlowing.LEVEL)).intValue(); int i = ((Integer) iblockdata.get(BlockFlowing.LEVEL)).intValue();
byte b0 = 1; byte b0 = 1;
@@ -88,6 +98,12 @@ @@ -88,9 +98,16 @@
IBlockData iblockdata2 = world.getType(blockposition.down()); IBlockData iblockdata2 = world.getType(blockposition.down());
if (this.h(world, blockposition.down(), iblockdata2)) { if (this.h(world, blockposition.down(), iblockdata2)) {
@ -35,9 +35,14 @@
+ } + }
+ if (!event.isCancelled()) { + if (!event.isCancelled()) {
if (this.material == Material.LAVA && world.getType(blockposition.down()).getMaterial() == Material.WATER) { 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()); this.fizz(world, blockposition.down());
@@ -99,6 +115,8 @@ + }
return;
}
@@ -99,6 +116,8 @@
} else { } else {
this.flow(world, blockposition.down(), iblockdata2, i + 8); this.flow(world, blockposition.down(), iblockdata2, i + 8);
} }
@ -46,7 +51,7 @@
} else if (i >= 0 && (i == 0 || this.g(world, blockposition.down(), iblockdata2))) { } else if (i >= 0 && (i == 0 || this.g(world, blockposition.down(), iblockdata2))) {
Set set = this.c(world, blockposition); Set set = this.c(world, blockposition);
@@ -116,14 +134,23 @@ @@ -116,14 +135,23 @@
while (iterator1.hasNext()) { while (iterator1.hasNext()) {
EnumDirection enumdirection1 = (EnumDirection) iterator1.next(); EnumDirection enumdirection1 = (EnumDirection) iterator1.next();

View File

@ -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;
}
}