package main.dk.qpqp.events;
import main.dk.qpqp.items.ItemList;
import main.dk.qpqp.items.weapons.BulletInfo;
import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
public class BulletHitEvent extends Event {
double damage = 0;
ItemList weapon = null;
Player damager = null;
Entity entity = null;
boolean cancelled = false;
public BulletHitEvent(double damage, BulletInfo bulletInfo){
this.weapon = bulletInfo.getWeapon();
this.damage = damage;
this.entity = bulletInfo.getEntity();
this.damager = bulletInfo.getOwner();
if(!isCancelled()){
Bukkit.getServer().getPluginManager().callEvent(new EntityDamageByEntityEvent(damager, entity, DamageCause.CUSTOM, getDamage()));
}
}
/**
*
* @return The damage dealt by the weapon
*/
public double getDamage(){
return damage;
}
/**
*
* @return Whenever the event was cancelled or not
*/
public boolean isCancelled() {
return cancelled;
}
/**
*
* @param cancelled Sets if the event should be cancelled or not
*/
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
/**
*
* @return The weapon that shoot the projectile
*/
public ItemList getWeapon() {
return weapon;
}
/**
*
* @return The player that shoot the projectile
*/
public Player getDamager() {
return damager;
}
/**
*
* @return The entity that got hit
*/
public Entity getEntity() {
return entity;
}
/**
*
* @param damage Amount of damage.
*/
public void setDamage(int damage) {
this.damage = damage;
}
private static final HandlerList handlers = new HandlerList();
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}