From a2e4cc2b1c6edb9a05f4ae40490c228442f6293c Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 22:15:46 -0500 Subject: [PATCH] MC-168772 Fix - Add turtle egg block options --- .../net/minecraft/server/BlockTurtleEgg.java | 19 ++++++++++++++++++- .../net/pl3x/purpur/PurpurWorldConfig.java | 9 +++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BlockTurtleEgg.java b/src/main/java/net/minecraft/server/BlockTurtleEgg.java index cb36334e41..aa83ef1699 100644 --- a/src/main/java/net/minecraft/server/BlockTurtleEgg.java +++ b/src/main/java/net/minecraft/server/BlockTurtleEgg.java @@ -157,6 +157,23 @@ public class BlockTurtleEgg extends Block { } private boolean a(World world, Entity entity) { - return entity instanceof EntityTurtle ? false : (entity instanceof EntityLiving && !(entity instanceof EntityHuman) ? world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) : true); + // Purpur start - fix MC-168772 + if (entity instanceof EntityTurtle) { + return false; + } + if (!world.purpurConfig.turtleEggsBreakFromExpOrbs && entity instanceof EntityExperienceOrb) { + return false; + } + if (!world.purpurConfig.turtleEggsBreakFromItems && entity instanceof EntityItem) { + return false; + } + if (!world.purpurConfig.turtleEggsBreakFromMinecarts && entity instanceof EntityMinecartAbstract) { + return false; + } + if (entity instanceof EntityLiving && !(entity instanceof EntityHuman)) { + return world.getGameRules().getBoolean(GameRules.MOB_GRIEFING); + } + return true; + // Purpur end } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 81969d2dc9..296274896e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -191,6 +191,15 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } + public boolean turtleEggsBreakFromExpOrbs = true; + public boolean turtleEggsBreakFromItems = true; + public boolean turtleEggsBreakFromMinecarts = true; + private void turtleEggSettings() { + turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); + turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); + turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); + } + public boolean boatEjectPlayersOnLand = false; public float armorstandStepHeight = 0.0F; public boolean controllableMinecarts = false; -- 2.26.2