Interface DamageSource


public interface DamageSource
Represents a source of damage.
  • Method Details

    • getNmsDamageSource

      @NotNull @NotNull Object getNmsDamageSource()
      NMS DamageSource를 가져옵니다.
      Returns:
      NMS DamageSource
    • getMetadata

      @NotNull Map<String,Object> getMetadata()
      사용자 지정 메타데이터를 가져옵니다.

      DamageSource 인스턴스는 재사용이 가능하므로 메타데이터 공유에 주의하세요.

      Returns:
      사용자 지정 메타데이터
    • getFixedNoDamageTick

      @Nullable @Nullable Integer getFixedNoDamageTick()
      이 인스턴스에 설정된 무적 시간을 가져옵니다.
      Returns:
      무적 시간
    • setFixedNoDamageTick

      void setFixedNoDamageTick(@Nullable @Nullable Integer ticks)
      이 인스턴스에 설정될 무적 시간을 설정합니다.

      이 설정은 이벤트에서 지정된 무적 시간보다 우선순위가 낮습니다.

      Parameters:
      ticks - 무적 시간
    • isKnockbackDisabled

      @Nullable @Nullable Boolean isKnockbackDisabled()
      대미지 처리 이후 엔티티가 받게 될 넉백의 비활성화 여부를 가져옵니다.
      Returns:
      넉백 비활성화 여부
    • setKnockbackDisabled

      void setKnockbackDisabled(@Nullable @Nullable Boolean disabled)
      대미지 처리 이후 엔티티가 받게 될 넉백의 비활성화 여부를 설정합니다.
      Parameters:
      disabled - 넉백 비활성화 여부, null인 경우 DamageTypeTags.NO_KNOCKBACK의 영향을 받습니다.
    • isCritical

      boolean isCritical()
      크리티컬 대미지 여부를 가져옵니다.
      Returns:
      크리티컬 대미지 여부
    • getExplosion

      @Nullable Explosion getExplosion()
      폭발 래퍼를 가져옵니다.
      Returns:
      폭발 래퍼
    • getDamageType

      @NotNull @NotNull DamageType getDamageType()
      Get the DamageType.
      Returns:
      the damage type
    • getCausingEntity

      @Nullable @Nullable Entity getCausingEntity()
      Get the Entity 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

      @Nullable @Nullable Entity getDirectEntity()
      Get the Entity 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

      @Nullable @Nullable Location getDamageLocation()
      Get the Location 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

      @Nullable @Nullable Location getSourceLocation()
      Get the Location 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, the causing 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 to getDirectEntity(). 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 new DamageSource.Builder.
      Parameters:
      damageType - the DamageType to use
      Returns:
      a DamageSource.Builder