package toadmess.explosives.events.handlers; import org.bukkit.event.Event; import org.bukkit.event.Event.Type; import org.bukkit.event.entity.EntityDamageByEntityEvent; import toadmess.explosives.config.entity.EntityConf; import toadmess.explosives.events.HEEvent; import toadmess.explosives.events.Handler; public abstract class HandleDamageEntity implements Handler { @Override public void handle(final HEEvent ev) { final EntityConf worldConf = ev.getApplicableConfig(); if(!hasConfig(worldConf)) { return; } final EntityDamageByEntityEvent downcastEvent = ((EntityDamageByEntityEvent) ev.event); downcastEvent.setDamage((int) (downcastEvent.getDamage() * getDamageMultiplier(worldConf))); } protected abstract boolean hasConfig(final EntityConf conf); protected abstract float getDamageMultiplier(final EntityConf conf); @Override public Type[] getBukkitEventsRequired() { return new Type[] { Event.Type.ENTITY_DAMAGE }; } }