Class EntityDamageEvent

java.lang.Object
org.bukkit.event.Event
org.bukkit.event.entity.EntityEvent
org.bukkit.event.entity.EntityDamageEvent
All Implemented Interfaces:
Cancellable
Direct Known Subclasses:
EntityDamageByBlockEvent, EntityDamageByEntityEvent

public class EntityDamageEvent
extends EntityEvent
implements Cancellable
Stores data for damage events
  • Constructor Details

  • Method Details

    • isCancelled

      public boolean isCancelled()
      Description copied from interface: Cancellable
      Gets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins
      Specified by:
      isCancelled in interface Cancellable
      Returns:
      true if this event is cancelled
    • setCancelled

      public void setCancelled​(boolean cancel)
      Description copied from interface: Cancellable
      Sets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins.
      Specified by:
      setCancelled in interface Cancellable
      Parameters:
      cancel - true if you wish to cancel this event
    • getOriginalDamage

      public double getOriginalDamage​(EntityDamageEvent.DamageModifier type) throws java.lang.IllegalArgumentException
      Gets the original damage for the specified modifier, as defined at this event's construction.
      Parameters:
      type - the modifier
      Returns:
      the original damage
      Throws:
      java.lang.IllegalArgumentException - if type is null
    • setDamage

      public void setDamage​(EntityDamageEvent.DamageModifier type, double damage) throws java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
      Sets the damage for the specified modifier.
      Parameters:
      type - the damage modifier
      damage - the scalar value of the damage's modifier
      Throws:
      java.lang.IllegalArgumentException - if type is null
      java.lang.UnsupportedOperationException - if the caller does not support the particular DamageModifier, or to rephrase, when isApplicable(DamageModifier) returns false
      See Also:
      getFinalDamage()
    • getDamage

      public double getDamage​(EntityDamageEvent.DamageModifier type) throws java.lang.IllegalArgumentException
      Gets the damage change for some modifier
      Parameters:
      type - the damage modifier
      Returns:
      The raw amount of damage caused by the event
      Throws:
      java.lang.IllegalArgumentException - if type is null
      See Also:
      EntityDamageEvent.DamageModifier.BASE
    • isApplicable

      public boolean isApplicable​(EntityDamageEvent.DamageModifier type) throws java.lang.IllegalArgumentException
      This checks to see if a particular modifier is valid for this event's caller, such that, setDamage(DamageModifier, double) will not throw an UnsupportedOperationException.

      EntityDamageEvent.DamageModifier.BASE is always applicable.

      Parameters:
      type - the modifier
      Returns:
      true if the modifier is supported by the caller, false otherwise
      Throws:
      java.lang.IllegalArgumentException - if type is null
    • getDamage

      public double getDamage()
      Gets the raw amount of damage caused by the event
      Returns:
      The raw amount of damage caused by the event
      See Also:
      EntityDamageEvent.DamageModifier.BASE
    • getFinalDamage

      public final double getFinalDamage()
      Gets the amount of damage caused by the event after all damage reduction is applied.
      Returns:
      the amount of damage caused by the event
    • _INVALID_getDamage

      @Deprecated public int _INVALID_getDamage()
      Deprecated.
      This method exists for legacy reasons to provide backwards compatibility. It will not exist at runtime and should not be used under any circumstances.
      Returns:
      the (rounded) damage
    • setDamage

      public void setDamage​(double damage)
      Sets the raw amount of damage caused by the event.

      For compatibility this also recalculates the modifiers and scales them by the difference between the modifier for the previous damage value and the new one.

      Parameters:
      damage - The raw amount of damage caused by the event
    • _INVALID_setDamage

      @Deprecated public void _INVALID_setDamage​(int damage)
      Deprecated.
      This method exists for legacy reasons to provide backwards compatibility. It will not exist at runtime and should not be used under any circumstances.
      Parameters:
      damage - the new damage value
    • getCause

      public EntityDamageEvent.DamageCause getCause()
      Gets the cause of the damage.
      Returns:
      A DamageCause value detailing the cause of the damage.
    • getHandlers

      public HandlerList getHandlers()
      Specified by:
      getHandlers in class Event
    • getHandlerList

      public static HandlerList getHandlerList()