mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-27 13:06:02 +01:00
[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.
This commit is contained in:
parent
a81f26716d
commit
eb43d0637c
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user