Package org.bukkit.event.entity

# 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

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`EntityDamageEvent.DamageCause`
An enum to specify the cause of the damage
`static enum`
`EntityDamageEvent.DamageModifier`
Deprecated.
This API is responsible for a large number of implementation problems and is in general unsustainable to maintain.

## Nested classes/interfaces inherited from class org.bukkit.event.Event

`Event.Result`

## Field Summary

### Fields inherited from class org.bukkit.event.entity.EntityEvent

`entity`

## Constructor Summary

Constructors
Constructor
Description
`EntityDamageEvent(@NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, double damage)`
`EntityDamageEvent(@NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, @NotNull Map<EntityDamageEvent.DamageModifier,Double> modifiers, @NotNull Map<EntityDamageEvent.DamageModifier,? extends Function<? super Double,Double>> modifierFunctions)`

## Method Summary

Modifier and Type
Method
Description
`@NotNull EntityDamageEvent.DamageCause`
`getCause()`
Gets the cause of the damage.
`double`
`getDamage()`
Gets the raw amount of damage caused by the event
`double`
`getDamage(@NotNull EntityDamageEvent.DamageModifier type)`
Gets the damage change for some modifier
`final double`
`getFinalDamage()`
Gets the amount of damage caused by the event after all damage reduction is applied.
`static @NotNull HandlerList`
`getHandlerList()`
`@NotNull HandlerList`
`getHandlers()`
`double`
`getOriginalDamage(@NotNull EntityDamageEvent.DamageModifier type)`
Gets the original damage for the specified modifier, as defined at this event's construction.
`boolean`
`isApplicable(@NotNull EntityDamageEvent.DamageModifier type)`
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`.
`boolean`
`isCancelled()`
Gets the cancellation state of this event.
`void`
`setCancelled(boolean cancel)`
Sets the cancellation state of this event.
`void`
`setDamage(double damage)`
Sets the raw amount of damage caused by the event.
`void`
`setDamage(@NotNull EntityDamageEvent.DamageModifier type, double damage)`
Sets the damage for the specified modifier.

### Methods inherited from class org.bukkit.event.entity.EntityEvent

`getEntity, getEntityType`

### Methods inherited from class org.bukkit.event.Event

`callEvent, getEventName, isAsynchronous`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### EntityDamageEvent

public EntityDamageEvent(@NotNull @NotNull Entity damagee, @NotNull @NotNull EntityDamageEvent.DamageCause cause, double damage)

### EntityDamageEvent

public EntityDamageEvent(@NotNull @NotNull Entity damagee, @NotNull @NotNull EntityDamageEvent.DamageCause cause, @NotNull @NotNull Map<EntityDamageEvent.DamageModifier,Double> modifiers, @NotNull @NotNull Map<EntityDamageEvent.DamageModifier,? extends Function<? super Double,Double>> modifierFunctions)

## 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(@NotNull @NotNull EntityDamageEvent.DamageModifier type) throws 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:
  `IllegalArgumentException` - if type is null

### setDamage

public void setDamage(@NotNull @NotNull EntityDamageEvent.DamageModifier type, double damage) throws IllegalArgumentException, UnsupportedOperationException
Sets the damage for the specified modifier.

Parameters:
  `type` - the damage modifier
  `damage` - the scalar value of the damage's modifier
Throws:
  `IllegalArgumentException` - if type is null
  `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(@NotNull @NotNull EntityDamageEvent.DamageModifier type) throws IllegalArgumentException
Gets the damage change for some modifier

Parameters:
  `type` - the damage modifier
Returns:
  The raw amount of damage caused by the event
Throws:
  `IllegalArgumentException` - if type is null
See Also:
  - `EntityDamageEvent.DamageModifier.BASE`

### isApplicable

public boolean isApplicable(@NotNull @NotNull EntityDamageEvent.DamageModifier type) throws 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:
  `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

### 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

### getCause

@NotNull public @NotNull EntityDamageEvent.DamageCause getCause()
Gets the cause of the damage.

Returns:
  A DamageCause value detailing the cause of the damage.

### getHandlers

@NotNull public @NotNull HandlerList getHandlers()

Specified by:
  `getHandlers` in class `Event`

### getHandlerList

@NotNull public static @NotNull HandlerList getHandlerList()