From f11e575a7214983278567e8b127b86ac83e7af38 Mon Sep 17 00:00:00 2001 From: Taylor Kelly Date: Wed, 26 Jan 2011 16:13:27 -0500 Subject: [PATCH] BlockBurnEvent --- .../java/net/minecraft/server/BlockFire.java | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java index d3c8e39639..c1b6279df0 100644 --- a/src/main/java/net/minecraft/server/BlockFire.java +++ b/src/main/java/net/minecraft/server/BlockFire.java @@ -7,6 +7,7 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockIgniteEvent.IgniteCause; import org.bukkit.craftbukkit.CraftWorld; import java.util.Random; +import org.bukkit.event.block.BlockBurnEvent; // CraftBukkit end public class BlockFire extends Block { @@ -116,31 +117,36 @@ public class BlockFire extends Block { if (random.nextInt(l) < i1) { boolean flag = world.a(i, j, k) == Block.am.bi; + // CraftBukkit start: BlockBurnEvent + Server server = ((WorldServer)world).getServer(); + CraftWorld cworld = ((WorldServer)world).getWorld(); + org.bukkit.block.Block theBlock = (cworld.getBlockAt(i, j, k)); + BlockBurnEvent burnEvent = new BlockBurnEvent(theBlock); + server.getPluginManager().callEvent(burnEvent); + if(!burnEvent.isCancelled()) { + if (random.nextInt(2) == 0) { + // CraftBukkit start: Call to stop very slow spread of fire. - if (random.nextInt(2) == 0) { - // CraftBukkit start: Call to stop very slow spread of fire. - Server server = ((WorldServer)world).getServer(); - CraftWorld cworld = ((WorldServer)world).getWorld(); - - org.bukkit.block.Block theBlock = (cworld.getBlockAt(i, j, k)); - IgniteCause igniteCause = BlockIgniteEvent.IgniteCause.SLOW_SPREAD; - Player thePlayer = null; - - if (theBlock.getTypeId() != Block.ar.bi){ - BlockIgniteEvent event = new BlockIgniteEvent(theBlock, igniteCause, thePlayer); - server.getPluginManager().callEvent(event); - if (event.isCancelled()) { - return; + IgniteCause igniteCause = BlockIgniteEvent.IgniteCause.SLOW_SPREAD; + Player thePlayer = null; + + if (theBlock.getTypeId() != Block.ar.bi){ + BlockIgniteEvent event = new BlockIgniteEvent(theBlock, igniteCause, thePlayer); + server.getPluginManager().callEvent(event); + if (event.isCancelled()) { + return; + } } + // CraftBukkit end + world.e(i, j, k, bi); + } else { + world.e(i, j, k, 0); + } + if (flag) { + Block.am.a(world, i, j, k, 0); } - // CraftBukkit end - world.e(i, j, k, bi); - } else { - world.e(i, j, k, 0); - } - if (flag) { - Block.am.a(world, i, j, k, 0); } + // CraftBukkit end: BlockBurnEvent } }