SPIGOT-6200: Improve entity events when summon command is used
* Calls the LightningStrikeEvent for summoned lightning * Uses the new COMMAND SpawnReason for other entities By: Julian van den Berkmortel <julianvdberkmortel@outlook.com>
This commit is contained in:
@@ -214,6 +214,7 @@ import org.bukkit.event.raid.RaidStopEvent;
|
||||
import org.bukkit.event.raid.RaidTriggerEvent;
|
||||
import org.bukkit.event.server.ServerListPingEvent;
|
||||
import org.bukkit.event.vehicle.VehicleCreateEvent;
|
||||
import org.bukkit.event.weather.LightningStrikeEvent;
|
||||
import org.bukkit.event.world.LootGenerateEvent;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.InventoryView;
|
||||
@@ -584,6 +585,9 @@ public class CraftEventFactory {
|
||||
event = CraftEventFactory.callProjectileLaunchEvent(entity);
|
||||
} else if (entity.getBukkitEntity() instanceof org.bukkit.entity.Vehicle) {
|
||||
event = CraftEventFactory.callVehicleCreateEvent(entity);
|
||||
} else if (entity.getBukkitEntity() instanceof org.bukkit.entity.LightningStrike) {
|
||||
LightningStrikeEvent.Cause cause = (spawnReason == SpawnReason.COMMAND ? LightningStrikeEvent.Cause.COMMAND : LightningStrikeEvent.Cause.UNKNOWN);
|
||||
event = CraftEventFactory.callLightningStrikeEvent((LightningStrike) entity.getBukkitEntity(), cause);
|
||||
} else if (!(entity instanceof EntityPlayer)) {
|
||||
event = CraftEventFactory.callEntitySpawnEvent(entity);
|
||||
}
|
||||
@@ -1518,6 +1522,12 @@ public class CraftEventFactory {
|
||||
return event;
|
||||
}
|
||||
|
||||
public static LightningStrikeEvent callLightningStrikeEvent(LightningStrike entity, LightningStrikeEvent.Cause cause) {
|
||||
LightningStrikeEvent event = new LightningStrikeEvent(entity.getWorld(), entity, cause);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Raid events
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user