Class DamageType

java.lang.Object
net.minestom.server.entity.damage.DamageType
All Implemented Interfaces:
Taggable, TagReadable, TagWritable
Direct Known Subclasses:
EntityDamage, EntityProjectileDamage

public class DamageType extends Object implements Taggable
Represents a type of damage, required when calling LivingEntity.damage(DamageType, float) and retrieved in EntityDamageEvent.

This class can be extended if you need to include custom fields and/or methods.

  • Field Details

  • Constructor Details

    • DamageType

      public DamageType(@NotNull @NotNull String identifier)
      Creates a new damage type.
      Parameters:
      identifier - the identifier of this damage type, does not need to be unique
  • Method Details

    • getIdentifier

      @NotNull public @NotNull String getIdentifier()
      Gets the identifier of this damage type.

      It does not have to be unique to this object.o

      Returns:
      the damage type identifier
    • buildDeathMessage

      @Nullable public @Nullable Component buildDeathMessage(@NotNull @NotNull Player killed)
      Builds the death message linked to this damage type.

      Used in Player.kill() to broadcast the proper message.

      Parameters:
      killed - the player who has been killed
      Returns:
      the death message, null to do not send anything
    • fromProjectile

      @NotNull public static @NotNull DamageType fromProjectile(@Nullable @Nullable Entity shooter, @NotNull @NotNull Entity projectile)
      Convenient method to create an EntityProjectileDamage.
      Parameters:
      shooter - the shooter
      projectile - the actual projectile
      Returns:
      a new EntityProjectileDamage
    • fromPlayer

      @NotNull public static @NotNull EntityDamage fromPlayer(@NotNull @NotNull Player player)
      Convenient method to create an EntityDamage.
      Parameters:
      player - the player damager
      Returns:
      a new EntityDamage
    • fromEntity

      @NotNull public static @NotNull EntityDamage fromEntity(@NotNull @NotNull Entity entity)
      Convenient method to create an EntityDamage.
      Parameters:
      entity - the entity damager
      Returns:
      a new EntityDamage
    • buildDeathScreenText

      @Nullable public @Nullable Component buildDeathScreenText(@NotNull @NotNull Player killed)
      Builds the text sent to a player in his death screen.
      Parameters:
      killed - the player who has been killed
      Returns:
      the death screen text, null to do not send anything
    • getSound

      @Nullable public @Nullable SoundEvent getSound(@NotNull @NotNull LivingEntity entity)
      Sound event to play when the given entity is hit by this damage. Possible to return null if no sound should be played
      Parameters:
      entity - the entity hit by this damage
      Returns:
      the sound to play when the given entity is hurt by this damage type. Can be null if no sound should play
    • getGenericSound

      protected SoundEvent getGenericSound(@NotNull @NotNull LivingEntity entity)
    • getPlayerSound

      protected SoundEvent getPlayerSound(@NotNull @NotNull Player player)
    • tagHandler

      @NotNull public @NotNull TagHandler tagHandler()
      Specified by:
      tagHandler in interface Taggable