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:
Ursprung
a81f26716d
Commit
eb43d0637c
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren