diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragonPart.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragonPart.java index b62c909ec..ce4a87c9d 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragonPart.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragonPart.java @@ -4,6 +4,7 @@ import net.minecraft.server.EntityComplexPart; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.EnderDragon; import org.bukkit.entity.EnderDragonPart; +import org.bukkit.entity.Entity; public class CraftEnderDragonPart extends CraftComplexPart implements EnderDragonPart { public CraftEnderDragonPart(CraftServer server, EntityComplexPart entity) { @@ -24,4 +25,32 @@ public class CraftEnderDragonPart extends CraftComplexPart implements EnderDrago public String toString() { return "CraftEnderDragonPart"; } + + public void damage(int amount) { + getParent().damage(amount); + } + + public void damage(int amount, Entity source) { + getParent().damage(amount, source); + } + + public int getHealth() { + return getParent().getHealth(); + } + + public void setHealth(int health) { + getParent().setHealth(health); + } + + public int getMaxHealth() { + return getParent().getMaxHealth(); + } + + public void setMaxHealth(int health) { + getParent().setMaxHealth(health); + } + + public void resetMaxHealth() { + getParent().resetMaxHealth(); + } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index f2f43466e..8be890644 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -75,7 +75,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } public int getMaxHealth() { - return getHandle().getMaxHealth(); + return getHandle().maxHealth; + } + + public void setMaxHealth(int amount) { + Validate.isTrue(amount > 0, "Max health must be greater than 0"); + + getHandle().maxHealth = amount; + + if (getHealth() > amount) { + setHealth(amount); + } + } + + public void resetMaxHealth() { + setMaxHealth(getHandle().getMaxHealth()); } @Deprecated diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index beb62a00b..523a2f3b2 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -941,4 +941,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } } + + public void setMaxHealth(int amount) { + super.setMaxHealth(amount); + getHandle().m(); // Update health + } + + public void resetMaxHealth() { + super.resetMaxHealth(); + getHandle().m(); // Update health + } }