Package org.bukkit.entity

# Interface Damageable

All Superinterfaces:
  `Audience`, `CommandSender`, `Entity`, `HoverEventSource<HoverEvent.ShowEntity>`, `Metadatable`, `Nameable`, `Permissible`, `PersistentDataHolder`, `Pointered`, `ServerOperator`, `Sound.Emitter`

All Known Subinterfaces:
  `AbstractHorse`, `AbstractSkeleton`, `AbstractVillager`, `Ageable`, `Ambient`, `Animals`, `ArmorStand`, `Axolotl`, `Bat`, `Bee`, `Blaze`, `Breedable`, `Cat`, `CaveSpider`, `ChestedHorse`, `Chicken`, `Cod`, `ComplexLivingEntity`, `Cow`, `Creature`, `Creeper`, `Dolphin`, `Donkey`, `Drowned`, `ElderGuardian`, `EnderDragon`, `EnderDragonPart`, `Enderman`, `Endermite`, `Evoker`, `Fish`, `Flying`, `Fox`, `Ghast`, `Giant`, `GlowSquid`, `Goat`, `Golem`, `Guardian`, `Hoglin`, `Horse`, `HumanEntity`, `Husk`, `Illager`, `Illusioner`, `IronGolem`, `LivingEntity`, `Llama`, `MagmaCube`, `Mob`, `Monster`, `Mule`, `MushroomCow`, `NPC`, `Ocelot`, `Panda`, `Parrot`, `Phantom`, `Pig`, `Piglin`, `PiglinAbstract`, `PiglinBrute`, `PigZombie`, `Pillager`, `Player`, `PolarBear`, `PufferFish`, `Rabbit`, `Raider`, `RangedEntity`, `Ravager`, `Salmon`, `Sheep`, `Shulker`, `Silverfish`, `Skeleton`, `SkeletonHorse`, `Slime`, `Snowman`, `Spellcaster`, `Spider`, `Squid`, `Steerable`, `Stray`, `Strider`, `Tameable`, `TraderLlama`, `TropicalFish`, `Turtle`, `Vex`, `Villager`, `Vindicator`, `WanderingTrader`, `WaterMob`, `Witch`, `Wither`, `WitherSkeleton`, `Wolf`, `Zoglin`, `Zombie`, `ZombieHorse`, `ZombieVillager`

public interface Damageable extends Entity
Represents an `Entity` that has health and can take damage.

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.bukkit.entity.Entity

`Entity.Spigot`

## Method Summary

Modifier and Type
Method
Description
`void`
`damage(double amount)`
Deals the given amount of damage to this entity.
`void`
`damage(double amount, @Nullable Entity source)`
Deals the given amount of damage to this entity, from a specified entity.
`double`
`getAbsorptionAmount()`
Gets the entity's absorption amount.
`double`
`getHealth()`
Gets the entity's health from 0 to `getMaxHealth()`, where 0 is dead.
`double`
`getMaxHealth()`
Deprecated.
use `Attribute.GENERIC_MAX_HEALTH`.
`void`
`resetMaxHealth()`
Deprecated.
use `Attribute.GENERIC_MAX_HEALTH`.
`void`
`setAbsorptionAmount(double amount)`
Sets the entity's absorption amount.
`void`
`setHealth(double health)`
Sets the entity's health from 0 to `getMaxHealth()`, where 0 is dead.
`void`
`setMaxHealth(double health)`
Deprecated.
use `Attribute.GENERIC_MAX_HEALTH`.

### Methods inherited from interface net.kyori.adventure.audience.Audience

`clearTitle, filterAudience, forEachAudience, hideBossBar, openBook, openBook, playSound, playSound, playSound, resetTitle, sendActionBar, sendActionBar, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlayerListFooter, sendPlayerListFooter, sendPlayerListHeader, sendPlayerListHeader, sendPlayerListHeaderAndFooter, sendPlayerListHeaderAndFooter, sendTitlePart, showBossBar, showTitle, stopSound, stopSound`

### Methods inherited from interface org.bukkit.command.CommandSender

`getName, name, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage`

### Methods inherited from interface org.bukkit.entity.Entity

`addPassenger, addScoreboardTag, asHoverEvent, eject, fromMobSpawner, getBoundingBox, getChunk, getEntityId, getEntitySpawnReason, getFacing, getFallDistance, getFireTicks, getFreezeTicks, getHeight, getLastDamageCause, getLocation, getLocation, getMaxFireTicks, getMaxFreezeTicks, getNearbyEntities, getOrigin, getPassenger, getPassengers, getPistonMoveReaction, getPortalCooldown, getPose, getScoreboardTags, getServer, getTicksLived, getTrackedPlayers, getType, getUniqueId, getVehicle, getVelocity, getWidth, getWorld, hasGravity, isCustomNameVisible, isDead, isEmpty, isFrozen, isGlowing, isInBubbleColumn, isInLava, isInRain, isInsideVehicle, isInvulnerable, isInWater, isInWaterOrBubbleColumn, isInWaterOrRain, isInWaterOrRainOrBubbleColumn, isOnGround, isPersistent, isSilent, isTicking, isValid, isVisualFire, leaveVehicle, playEffect, remove, removePassenger, removeScoreboardTag, setCustomNameVisible, setFallDistance, setFireTicks, setFreezeTicks, setGlowing, setGravity, setInvulnerable, setLastDamageCause, setPassenger, setPersistent, setPortalCooldown, setRotation, setSilent, setTicksLived, setVelocity, setVisualFire, spawnAt, spawnAt, spigot, teamDisplayName, teleport, teleport, teleport, teleport, teleportAsync, teleportAsync`

### Methods inherited from interface net.kyori.adventure.text.event.HoverEventSource

`asHoverEvent`

### Methods inherited from interface org.bukkit.metadata.Metadatable

`getMetadata, hasMetadata, removeMetadata, setMetadata`

### Methods inherited from interface org.bukkit.Nameable

`customName, customName, getCustomName, setCustomName`

### Methods inherited from interface org.bukkit.permissions.Permissible

`addAttachment, addAttachment, addAttachment, addAttachment, getEffectivePermissions, hasPermission, hasPermission, isPermissionSet, isPermissionSet, permissionValue, permissionValue, recalculatePermissions, removeAttachment`

### Methods inherited from interface org.bukkit.persistence.PersistentDataHolder

`getPersistentDataContainer`

### Methods inherited from interface net.kyori.adventure.pointer.Pointered

`get, getOrDefault, getOrDefaultFrom, pointers`

### Methods inherited from interface org.bukkit.permissions.ServerOperator

`isOp, setOp`

## Method Details

### damage

void damage(double amount)
Deals the given amount of damage to this entity.

Parameters:
  `amount` - Amount of damage to deal

### damage

void damage(double amount, @Nullable @Nullable Entity source)
Deals the given amount of damage to this entity, from a specified entity.

Parameters:
  `amount` - Amount of damage to deal
  `source` - Entity which to attribute this damage from

### getHealth

double getHealth()
Gets the entity's health from 0 to `getMaxHealth()`, where 0 is dead.

Returns:
  Health represented from 0 to max

### setHealth

void setHealth(double health)
Sets the entity's health from 0 to `getMaxHealth()`, where 0 is dead.

Parameters:
  `health` - New health represented from 0 to max
Throws:
  `IllegalArgumentException` - Thrown if the health is < 0 or > `getMaxHealth()`

### getAbsorptionAmount

double getAbsorptionAmount()
Gets the entity's absorption amount.

Returns:
  absorption amount from 0

### setAbsorptionAmount

void setAbsorptionAmount(double amount)
Sets the entity's absorption amount.

Parameters:
  `amount` - new absorption amount from 0
Throws:
  `IllegalArgumentException` - thrown if health is < 0 or non-finite.

### getMaxHealth

@Deprecated double getMaxHealth()
Deprecated.
use `Attribute.GENERIC_MAX_HEALTH`.
Gets the maximum health this entity has.

Returns:
  Maximum health

### setMaxHealth

@Deprecated void setMaxHealth(double health)
Deprecated.
use `Attribute.GENERIC_MAX_HEALTH`.
Sets the maximum health this entity can have.

If the health of the entity is above the value provided it will be set to that value.

Note: An entity with a health bar (`Player`, `EnderDragon`, `Wither`, etc...} will have their bar scaled accordingly.

Parameters:
  `health` - amount of health to set the maximum to

### resetMaxHealth

@Deprecated void resetMaxHealth()
Deprecated.
use `Attribute.GENERIC_MAX_HEALTH`.
Resets the max health to the original amount.