Interface DamageSource
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
Utility class to make building aDamageSource
easier. -
Method Summary
Modifier and TypeMethodDescriptionstatic @NotNull DamageSource.Builder
builder
(@NotNull DamageType damageType) Create a newDamageSource.Builder
.@Nullable Entity
Get theEntity
that caused the damage to occur.@Nullable Location
Get theLocation
from where the damage originated.@NotNull DamageType
Get theDamageType
.@Nullable Entity
Get theEntity
that directly caused the damage.float
Get the amount of hunger exhaustion caused by this damage.@Nullable Location
Get theLocation
from where the damage originated.boolean
Get if this damage is indirect.boolean
Gets if this source of damage scales with difficulty.
-
Method Details
-
getDamageType
Get theDamageType
.- Returns:
- the damage type
-
getCausingEntity
Get theEntity
that caused the damage to occur.Not to be confused with
getDirectEntity()
, the causing entity is the entity to which the damage is ultimately attributed if the receiver is killed. If, for example, the receiver was damaged by a projectile, the shooter/thrower would be returned.- Returns:
- an Entity or null
-
getDirectEntity
Get theEntity
that directly caused the damage.Not to be confused with
getCausingEntity()
, the direct entity is the entity that actually inflicted the damage. If, for example, the receiver was damaged by a projectile, the projectile would be returned.- Returns:
- an Entity or null
-
getDamageLocation
Get theLocation
from where the damage originated. This will only be present if an entity did not cause the damage.- Returns:
- the location, or null if none
- API Note:
- the world of the location might be null for positioned-only damage source not caused by any entity
-
getSourceLocation
Get theLocation
from where the damage originated.This is a convenience method to get the final location of the damage. This method will attempt to return
the damage location
. If this is null, thecausing entity location
will be returned. Finally if there is no damage location nor a causing entity, null will be returned.- Returns:
- the source of the location or null.
- API Note:
- the world of the location might be null for positioned-only damage source not caused by any entity
-
isIndirect
boolean isIndirect()Get if this damage is indirect.Damage is considered indirect if
getCausingEntity()
is not equal togetDirectEntity()
. This will be the case, for example, if a skeleton shot an arrow or a player threw a potion.- Returns:
true
if is indirect,false
otherwise.
-
getFoodExhaustion
float getFoodExhaustion()Get the amount of hunger exhaustion caused by this damage.- Returns:
- the amount of hunger exhaustion caused.
-
scalesWithDifficulty
boolean scalesWithDifficulty()Gets if this source of damage scales with difficulty.- Returns:
True
if scales.
-
builder
Create a newDamageSource.Builder
.- Parameters:
damageType
- theDamageType
to use- Returns:
- a
DamageSource.Builder
-