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
Stores data for damage events
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
An enum to specify the cause of the damagestatic enum
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
ConstructorDescriptionEntityDamageEvent
(@NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, double damage) Deprecated, for removal: This API element is subject to removal in a future version.EntityDamageEvent
(@NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, @NotNull Map<EntityDamageEvent.DamageModifier, Double> modifiers, @NotNull Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>> modifierFunctions) Deprecated, for removal: This API element is subject to removal in a future version.EntityDamageEvent
(@NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, @NotNull DamageSource damageSource, double damage) EntityDamageEvent
(@NotNull Entity damagee, @NotNull EntityDamageEvent.DamageCause cause, @NotNull DamageSource damageSource, @NotNull Map<EntityDamageEvent.DamageModifier, Double> modifiers, @NotNull Map<EntityDamageEvent.DamageModifier, ? extends Function<? super Double, Double>> modifierFunctions) -
Method Summary
Modifier and TypeMethodDescriptiongetCause()
Gets the cause of the damage.double
Gets the raw amount of damage caused by the eventdouble
Gets the damage change for some modifierGet the source of damage.final double
Gets the amount of damage caused by the event after all damage reduction is applied.static @NotNull HandlerList
double
Gets the original damage for the specified modifier, as defined at this event's construction.boolean
This checks to see if a particular modifier is valid for this event's caller, such that,setDamage(DamageModifier, double)
will not throw anUnsupportedOperationException
.boolean
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
-
Constructor Details
-
EntityDamageEvent
@Deprecated(since="1.20.4", forRemoval=true) public EntityDamageEvent(@NotNull @NotNull Entity damagee, @NotNull @NotNull EntityDamageEvent.DamageCause cause, double damage) Deprecated, for removal: This API element is subject to removal in a future version. -
EntityDamageEvent
public EntityDamageEvent(@NotNull @NotNull Entity damagee, @NotNull @NotNull EntityDamageEvent.DamageCause cause, @NotNull @NotNull DamageSource damageSource, double damage) -
EntityDamageEvent
@Deprecated(since="1.20.4", forRemoval=true) 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) Deprecated, for removal: This API element is subject to removal in a future version. -
EntityDamageEvent
public EntityDamageEvent(@NotNull @NotNull Entity damagee, @NotNull @NotNull EntityDamageEvent.DamageCause cause, @NotNull @NotNull DamageSource damageSource, @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 interfaceCancellable
- 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 interfaceCancellable
- 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 modifierdamage
- the scalar value of the damage's modifier- Throws:
IllegalArgumentException
- if type is nullUnsupportedOperationException
- if the caller does not support the particular DamageModifier, or to rephrase, whenisApplicable(DamageModifier)
returns false- See Also:
-
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:
-
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 anUnsupportedOperationException
.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:
-
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
Gets the cause of the damage.While a DamageCause may indicate a specific Bukkit-assigned cause of damage,
getDamageSource()
may expose additional types of damage such as custom damage types provided by data packs, as well as any direct or indirect entities, locations, or other contributing factors to the damage being inflicted. The alternative is generally preferred, but DamageCauses provided to this event should largely encompass most common use cases for developers if a simple cause is required.- Returns:
- a DamageCause value detailing the cause of the damage.
-
getDamageSource
Get the source of damage.- Returns:
- a DamageSource detailing the source of the damage.
-
getHandlers
- Specified by:
getHandlers
in classEvent
-
getHandlerList
-