13
0
geforkt von Mirrors/Paper

[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.
Dieser Commit ist enthalten in:
GJ 2014-01-24 08:55:26 -08:00 committet von Travis Watkins
Ursprung a81f26716d
Commit eb43d0637c

Datei anzeigen

@ -11,10 +11,12 @@ import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.TravelAgent; import org.bukkit.TravelAgent;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.entity.Hanging;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Painting; import org.bukkit.entity.Painting;
import org.bukkit.entity.Vehicle; import org.bukkit.entity.Vehicle;
import org.bukkit.event.entity.EntityCombustByEntityEvent; import org.bukkit.event.entity.EntityCombustByEntityEvent;
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
import org.bukkit.event.painting.PaintingBreakByEntityEvent; import org.bukkit.event.painting.PaintingBreakByEntityEvent;
import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEnterEvent;
@ -1588,11 +1590,22 @@ public abstract class Entity {
final org.bukkit.entity.Entity stormBukkitEntity = entitylightning.getBukkitEntity(); final org.bukkit.entity.Entity stormBukkitEntity = entitylightning.getBukkitEntity();
final PluginManager pluginManager = Bukkit.getPluginManager(); final PluginManager pluginManager = Bukkit.getPluginManager();
if (thisBukkitEntity instanceof Painting) { if (thisBukkitEntity instanceof Hanging) {
PaintingBreakByEntityEvent event = new PaintingBreakByEntityEvent((Painting) thisBukkitEntity, stormBukkitEntity); HangingBreakByEntityEvent hangingEvent = new HangingBreakByEntityEvent((Hanging) thisBukkitEntity, stormBukkitEntity);
pluginManager.callEvent(event); 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; return;
} }
} }