Interface DamageSource
-
Nested Class Summary
Modifier 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
.Get theEntity
that caused the damage to occur.Get theLocation
from where the damage originated.Get theDamageType
.Get theEntity
that directly caused the damage.float
Get the amount of hunger exhaustion caused by this damage.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
-
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.
-
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
-