diff options
author | GJ <gjmcferrin@gmail.com> | 2014-01-24 08:55:26 -0800 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2014-04-18 08:45:35 -0500 |
commit | eb43d0637cf9e35042aafcfa21232b01527652c1 (patch) | |
tree | 231f4339ff47b758c1cb7a5772d92782b1795f67 | |
parent | a81f26716d47643af0f7b090be6b739599312eea (diff) | |
download | craftbukkit-eb43d0637cf9e35042aafcfa21232b01527652c1.tar craftbukkit-eb43d0637cf9e35042aafcfa21232b01527652c1.tar.gz craftbukkit-eb43d0637cf9e35042aafcfa21232b01527652c1.tar.lz craftbukkit-eb43d0637cf9e35042aafcfa21232b01527652c1.tar.xz craftbukkit-eb43d0637cf9e35042aafcfa21232b01527652c1.zip |
[Bleeding] Add missing HangingBreakEvent. Fixes BUKKIT-3943
The old PaintingBreakByEntityEvent was deprecated and replaced by
HangingBreakByEntityEvent. However, in the case of being struck by
lightning, only the deprecated event was being called. This fixes that so
that both the new and old events are called appropriately.
-rw-r--r-- | src/main/java/net/minecraft/server/Entity.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 9d933cba..1d0dee0b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -11,10 +11,12 @@ import org.bukkit.Location; import org.bukkit.Server; import org.bukkit.TravelAgent; import org.bukkit.block.BlockFace; +import org.bukkit.entity.Hanging; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Painting; import org.bukkit.entity.Vehicle; import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.painting.PaintingBreakByEntityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; @@ -1588,11 +1590,22 @@ public abstract class Entity { final org.bukkit.entity.Entity stormBukkitEntity = entitylightning.getBukkitEntity(); final PluginManager pluginManager = Bukkit.getPluginManager(); - if (thisBukkitEntity instanceof Painting) { - PaintingBreakByEntityEvent event = new PaintingBreakByEntityEvent((Painting) thisBukkitEntity, stormBukkitEntity); - pluginManager.callEvent(event); + if (thisBukkitEntity instanceof Hanging) { + HangingBreakByEntityEvent hangingEvent = new HangingBreakByEntityEvent((Hanging) thisBukkitEntity, stormBukkitEntity); + PaintingBreakByEntityEvent paintingEvent = null; - if (event.isCancelled()) { + if (thisBukkitEntity instanceof Painting) { + paintingEvent = new PaintingBreakByEntityEvent((Painting) thisBukkitEntity, stormBukkitEntity); + } + + pluginManager.callEvent(hangingEvent); + + if (paintingEvent != null) { + paintingEvent.setCancelled(hangingEvent.isCancelled()); + pluginManager.callEvent(paintingEvent); + } + + if (hangingEvent.isCancelled() || (paintingEvent != null && paintingEvent.isCancelled())) { return; } } |