@@ -0,0 +1,1385 @@
+package org.inventivetalent.npclib.event;%0A%0Aimport org.bukkit.event.Cancellable;%0Aimport org.bukkit.event.HandlerList;%0Aimport org.bukkit.event.entity.EntityDamageEvent;%0Aimport org.inventivetalent.npclib.npc.NPCAbstract;%0A%0Apublic class NPCDeathEvent extends NPCEvent implements Cancellable %7B%0A%0A%09private boolean                       cancelled;%0A%09private String                        damageSourceName;%0A%09private EntityDamageEvent.DamageCause damageCause;%0A%0A%09public NPCDeathEvent(NPCAbstract npc, String damageSourceName, EntityDamageEvent.DamageCause damageCause) %7B%0A%09%09super(npc);%0A%09%09this.damageSourceName = damageSourceName;%0A%09%09this.damageCause = damageCause;%0A%09%7D%0A%0A%09/**%0A%09 * Whether this death event has a source. Always %3Ccode%3Efalse%3C/code%3E for non-living entities%0A%09 *%0A%09 * @return %3Ccode%3Etrue%3C/code%3E if the death has a source%0A%09 */%0A%09public boolean hasSource() %7B%0A%09%09return damageSourceName != null;%0A%09%7D%0A%0A%09public String getDamageSourceName() %7B%0A%09%09return damageSourceName;%0A%09%7D%0A%0A%09public EntityDamageEvent.DamageCause getDamageCause() %7B%0A%09%09return damageCause;%0A%09%7D%0A%0A%09@Override%0A%09public boolean isCancelled() %7B%0A%09%09return cancelled;%0A%09%7D%0A%0A%09@Override%0A%09public void setCancelled(boolean b) %7B%0A%09%09cancelled = b;%0A%09%7D%0A%0A%09private static HandlerList handlerList = new HandlerList();%0A%0A%09@Override%0A%09public HandlerList getHandlers() %7B%0A%09%09return handlerList;%0A%09%7D%0A%0A%09public static HandlerList getHandlerList() %7B%0A%09%09return handlerList;%0A%09%7D%0A%7D%0A

add NPCDeathEvent