diff --git a/patches/server/0096-Customizable-EnderDragon-Health.patch b/patches/server/0096-Customizable-EnderDragon-Health.patch new file mode 100644 index 000000000..70b0f8b23 --- /dev/null +++ b/patches/server/0096-Customizable-EnderDragon-Health.patch @@ -0,0 +1,50 @@ +From 99298e332aac29a905f102a40356a783cee008f7 Mon Sep 17 00:00:00 2001 +From: Jason Bierque +Date: Wed, 1 Jul 2020 22:36:06 +0200 +Subject: [PATCH] Customizable EnderDragon Health + +--- + .../java/net/minecraft/server/EntityEnderDragon.java | 10 ++++++++++ + src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 2 ++ + 2 files changed, 12 insertions(+) + +diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java +index 08fa5a975..e08e6014f 100644 +--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java ++++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java +@@ -66,6 +66,16 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { + return EntityInsentient.p().a(GenericAttributes.MAX_HEALTH, 200.0D); + } + ++ // Purpur start ++ @Override ++ public void initAttributes(World world) { ++ if (world != null) { ++ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(world.purpurConfig.enderDragonMaxHealth); ++ setHealth(getMaxHealth()); ++ } ++ } ++ // Purpur end ++ + @Override + protected void initDatawatcher() { + super.initDatawatcher(); +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 080a53544..4de6edd87 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -257,9 +257,11 @@ public class PurpurWorldConfig { + + public boolean enderDragonAlwaysDropsEggBlock = false; + public boolean enderDragonAlwaysDropsFullExp = false; ++ public double enderDragonMaxHealth = 200.0D; + private void enderDragonSettings() { + enderDragonAlwaysDropsEggBlock = getBoolean("mobs.ender_dragon.always-drop-egg-block", enderDragonAlwaysDropsEggBlock); + enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); ++ enderDragonMaxHealth = getDouble("mobs.ender_dragon.max-health", enderDragonMaxHealth); + } + + public boolean endermanAllowGriefing = true; +-- +2.26.2 +