Class AbstractDamageSource
- java.lang.Object
-
- org.spongepowered.api.event.cause.entity.damage.source.common.AbstractDamageSource
-
- All Implemented Interfaces:
DamageSource
public abstract class AbstractDamageSource extends java.lang.Object implements DamageSource
An abstract implementation ofDamageSource
to allow plugins to create their own damage sources without having to implement all the required methods.Note that extending this class at the least is a requirement for custom damage sources as not doing so will simply not work.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.spongepowered.api.event.cause.entity.damage.source.DamageSource
DamageSource.Builder, DamageSource.DamageSourceBuilder<T extends DamageSource,B extends DamageSource.DamageSourceBuilder<T,B>>, DamageSource.Factory
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractDamageSource(AbstractDamageSourceBuilder<?,?> builder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
doesAffectCreative()
Gets whether thisDamageSource
is considered to damage creative, or otherwise "normally unharmable" players.double
exhaustion()
Gets the amount of exhaustion thisDamageSource
will add to the entity, generally only to players.boolean
isAbsolute()
Gets whether thisDamageSource
's damage is absolute and will ignore potion effects and enchantments.boolean
isBypassingArmor()
Gets whether thisDamageSource
will deal damage that bypasses any armor.boolean
isExplosive()
Gets whether thisDamageSource
is an explosion.boolean
isFire()
Gets whether thisDamageSource
is considered to be "fire" based, can be from flames or blocks that are flaming, or the entity being on fire.boolean
isMagic()
Gets whether thisDamageSource
is considered to be magical damage, such as potions, or other sources.boolean
isScaledByDifficulty()
Gets whether thisDamageSource
's damage is scaled byDifficulty
.DamageType
type()
Gets theDamageType
of this source.
-
-
-
Constructor Detail
-
AbstractDamageSource
protected AbstractDamageSource(AbstractDamageSourceBuilder<?,?> builder)
-
-
Method Detail
-
type
public DamageType type()
Description copied from interface:DamageSource
Gets theDamageType
of this source.- Specified by:
type
in interfaceDamageSource
- Returns:
- The damage type
-
isAbsolute
public boolean isAbsolute()
Description copied from interface:DamageSource
Gets whether thisDamageSource
's damage is absolute and will ignore potion effects and enchantments.- Specified by:
isAbsolute
in interfaceDamageSource
- Returns:
- If this damage source deals absolute damage
-
isBypassingArmor
public boolean isBypassingArmor()
Description copied from interface:DamageSource
Gets whether thisDamageSource
will deal damage that bypasses any armor.- Specified by:
isBypassingArmor
in interfaceDamageSource
- Returns:
- True if this damage source bypasses armor
-
isScaledByDifficulty
public boolean isScaledByDifficulty()
Description copied from interface:DamageSource
Gets whether thisDamageSource
's damage is scaled byDifficulty
.- Specified by:
isScaledByDifficulty
in interfaceDamageSource
- Returns:
- True if the damage from this source is scaled
-
isExplosive
public boolean isExplosive()
Description copied from interface:DamageSource
Gets whether thisDamageSource
is an explosion.- Specified by:
isExplosive
in interfaceDamageSource
- Returns:
- True if this damage source is an explosion
-
isMagic
public boolean isMagic()
Description copied from interface:DamageSource
Gets whether thisDamageSource
is considered to be magical damage, such as potions, or other sources.- Specified by:
isMagic
in interfaceDamageSource
- Returns:
- If this damage is magic based
-
doesAffectCreative
public boolean doesAffectCreative()
Description copied from interface:DamageSource
Gets whether thisDamageSource
is considered to damage creative, or otherwise "normally unharmable" players. Usually associated withDamageTypes.VOID
.- Specified by:
doesAffectCreative
in interfaceDamageSource
- Returns:
- If this damage should affect creative players
-
isFire
public boolean isFire()
Description copied from interface:DamageSource
Gets whether thisDamageSource
is 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_RESISTANCE
active.- Specified by:
isFire
in interfaceDamageSource
- Returns:
- If this damage is considered fire
-
exhaustion
public double exhaustion()
Description copied from interface:DamageSource
Gets the amount of exhaustion thisDamageSource
will 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.
- Specified by:
exhaustion
in interfaceDamageSource
- Returns:
- The increase in exhaustion
-
-