From 902c04b41327f7db8aa12a85bae347e1969e2cf9 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 7 Feb 2020 04:42:57 -0600 Subject: [PATCH] Ender dragon always drop egg --- src/main/java/net/minecraft/server/EnderDragonBattle.java | 5 +++-- src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java index 687efa022..ead334607 100644 --- a/src/main/java/net/minecraft/server/EnderDragonBattle.java +++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java @@ -21,7 +21,7 @@ public class EnderDragonBattle { private static final Logger LOGGER = LogManager.getLogger(); private static final Predicate b = IEntitySelector.a.and(IEntitySelector.a(0.0D, 128.0D, 0.0D, 192.0D)); public final BossBattleServer bossBattle; - public final WorldServer d; // CraftBukkit PAIL private -> public, rename world + public final WorldServer d; public WorldServer getWorld() { return d; } // Purpur - OBFHELPER private final List e; private final ShapeDetector f; private int g; @@ -358,7 +358,7 @@ public class EnderDragonBattle { this.bossBattle.setVisible(false); this.a(true); this.n(); - if (!this.l) { + if (getWorld().purpurConfig.enderDragonAlwaysDropsEggBlock || !wasPreviouslyKilled()) { // Purpur - always place dragon egg this.d.setTypeUpdate(this.d.getHighestBlockYAt(HeightMap.Type.MOTION_BLOCKING, WorldGenEndTrophy.a), Blocks.DRAGON_EGG.getBlockData()); } @@ -439,6 +439,7 @@ public class EnderDragonBattle { } + public boolean wasPreviouslyKilled() { return d(); } // Purpur - OBFHELPER; public boolean d() { return this.l; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 56b67c408..cc6f8563b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -206,11 +206,13 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public boolean enderDragonRequireShiftToMount = true; public double enderDragonMaxY = 256D; + public boolean enderDragonAlwaysDropsEggBlock = false; private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); enderDragonRequireShiftToMount = getBoolean("mobs.ender_dragon.require-shift-to-mount", enderDragonRequireShiftToMount); enderDragonMaxY = getDouble("mobs.ender_dragon.ridable-max-y", enderDragonMaxY); + enderDragonAlwaysDropsEggBlock = getBoolean("mobs.ender_dragon.always-drop-egg-block", enderDragonAlwaysDropsEggBlock); } public boolean endermanRidable = false; -- 2.24.0