Interface DamageSource
- All Known Subinterfaces:
BlockDamageSource,EntityDamageSource,FallingBlockDamageSource,IndirectEntityDamageSource
- All Known Implementing Classes:
AbstractDamageSource,AbstractEntityDamageSource,AbstractIndirectEntityDamageSource
public interface DamageSource
Represents a
Cause for damage on the Entity being
damaged. Usually the DamageSource will have different properties
based on the source of damage, such as EntityDamageSources,
BlockDamageSources, and FallingBlockDamageSources.
Almost always, the DamageSource will be the first element in
the Cause of the event. Any additional modifiers that "aid" the
Cause of the event will be listed subsequently.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfacestatic interfaceDamageSource.DamageSourceBuilder<T extends DamageSource,B extends DamageSource.DamageSourceBuilder<T, B>> static interface -
Method Summary
Modifier and TypeMethodDescriptionstatic DamageSource.Builderbuilder()Creates a newbuilderto build aDamageSource.booleanGets whether thisDamageSourceis considered to damage creative, or otherwise "normally unharmable" players.doubleGets the amount of exhaustion thisDamageSourcewill add to the entity, generally only to players.booleanGets whether thisDamageSource's damage is absolute and will ignore potion effects and enchantments.booleanGets whether thisDamageSourcewill deal damage that bypasses any armor.booleanGets whether thisDamageSourceis an explosion.booleanisFire()Gets whether thisDamageSourceis considered to be "fire" based, can be from flames or blocks that are flaming, or the entity being on fire.booleanisMagic()Gets whether thisDamageSourceis considered to be magical damage, such as potions, or other sources.booleanGets whether thisDamageSource's damage is scaled byDifficulty.type()Gets theDamageTypeof this source.
-
Method Details
-
builder
Creates a newbuilderto build aDamageSource.- Returns:
- A new builder
-
type
DamageType type()Gets theDamageTypeof this source.- Returns:
- The damage type
-
isAbsolute
boolean isAbsolute()Gets whether thisDamageSource's damage is absolute and will ignore potion effects and enchantments.- Returns:
- If this damage source deals absolute damage
-
isBypassingArmor
boolean isBypassingArmor()Gets whether thisDamageSourcewill deal damage that bypasses any armor.- Returns:
- True if this damage source bypasses armor
-
isScaledByDifficulty
boolean isScaledByDifficulty()Gets whether thisDamageSource's damage is scaled byDifficulty.- Returns:
- True if the damage from this source is scaled
-
isExplosive
boolean isExplosive()Gets whether thisDamageSourceis an explosion.- Returns:
- True if this damage source is an explosion
-
isMagic
boolean isMagic()Gets whether thisDamageSourceis considered to be magical damage, such as potions, or other sources.- Returns:
- If this damage is magic based
-
doesAffectCreative
boolean doesAffectCreative()Gets whether thisDamageSourceis considered to damage creative, or otherwise "normally unharmable" players. Usually associated withDamageTypes.VOID.- Returns:
- If this damage should affect creative players
-
isFire
boolean isFire()Gets whether thisDamageSourceis considered to be "fire" based, can be from flames or blocks that are flaming, or the entity being on fire. Usually is possible to bypass or ignore this damage if the owning entity hasPotionEffectTypes.FIRE_RESISTANCEactive.- Returns:
- If this damage is considered fire
-
exhaustion
double exhaustion()Gets the amount of exhaustion thisDamageSourcewill add to the entity, generally only to players.In vanilla gameplay this is set to 0.1 by default and overridden to 0 if the source is set to be absolute or as overriding armor.
- Returns:
- The increase in exhaustion
-