From bad7a6b7a74562f54570d04a2c54f78e909c9d70 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 Jan 2025 14:43:28 -0800 Subject: [PATCH] Ender dragon always drop full exp --- ...37-Ender-dragon-always-drop-full-exp.patch | 39 ------------------- .../boss/enderdragon/EnderDragon.java.patch | 11 ++++++ .../purpurmc/purpur/PurpurWorldConfig.java | 2 + 3 files changed, 13 insertions(+), 39 deletions(-) delete mode 100644 patches/server/0037-Ender-dragon-always-drop-full-exp.patch create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java.patch diff --git a/patches/server/0037-Ender-dragon-always-drop-full-exp.patch b/patches/server/0037-Ender-dragon-always-drop-full-exp.patch deleted file mode 100644 index e7da0e690..000000000 --- a/patches/server/0037-Ender-dragon-always-drop-full-exp.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Sat, 24 Aug 2019 14:42:54 -0500 -Subject: [PATCH] Ender dragon always drop full exp - - -diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 1e1cd061203ab3ca2f1feb4a3f9fe2813d3d96aa..14feab288349f0fcd80b89466926b37d1087bf53 100644 ---- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -@@ -733,7 +733,7 @@ public class EnderDragon extends Mob implements Enemy { - boolean flag = worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT); - short short0 = 500; - -- if (this.dragonFight != null && !this.dragonFight.hasPreviouslyKilledDragon()) { -+ if (this.dragonFight != null && (level().purpurConfig.enderDragonAlwaysDropsFullExp || !this.dragonFight.hasPreviouslyKilledDragon())) { - short0 = 12000; - } - -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1fa34a6517b4b834354234471f9ed3bcaaf1ee03..a21ced5b26dd176863d26c90c5aa083e64f3cd6a 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -525,6 +525,7 @@ public class PurpurWorldConfig { - public boolean enderDragonControllable = true; - public double enderDragonMaxY = 320D; - public double enderDragonMaxHealth = 200.0D; -+ public boolean enderDragonAlwaysDropsFullExp = false; - private void enderDragonSettings() { - enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); - enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -540,6 +541,7 @@ public class PurpurWorldConfig { - set("mobs.ender_dragon.attributes.max_health", oldValue); - } - enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); -+ enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); - } - - public boolean endermanRidable = false; diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java.patch new file mode 100644 index 000000000..7942dbf4d --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java.patch @@ -0,0 +1,11 @@ +--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java ++++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +@@ -1009,7 +_,7 @@ + boolean flag = worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT); + int i = 500; + +- if (this.dragonFight != null && !this.dragonFight.hasPreviouslyKilledDragon()) { ++ if (this.dragonFight != null && (level().purpurConfig.enderDragonAlwaysDropsFullExp || !this.dragonFight.hasPreviouslyKilledDragon())) { // Purpur - Ender dragon always drop full exp + i = 12000; + } + diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index c778b7764..7ce67bdb7 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -511,6 +511,7 @@ public class PurpurWorldConfig { public boolean enderDragonControllable = true; public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; + public boolean enderDragonAlwaysDropsFullExp = false; private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); @@ -526,6 +527,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); + enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); } public boolean endermanRidable = false;