diff --git a/patches/server/0271-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0271-Option-to-disable-turtle-egg-trampling-with-feather-.patch new file mode 100644 index 000000000..9ed0e5244 --- /dev/null +++ b/patches/server/0271-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: 12emin34 +Date: Mon, 9 May 2022 23:18:09 +0200 +Subject: [PATCH] Option to disable turtle egg trampling with feather falling + + +diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +index 09438e86f7228336f6376118ec2476247f477841..8e6df41246c477a1b4a9159c458d0a34fe879ce5 100644 +--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +@@ -204,6 +204,10 @@ public class TurtleEggBlock extends Block { + if (entity instanceof LivingEntity && !(entity instanceof Player)) { + return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); + } ++ if (world.purpurConfig.turtleEggsTramplingFeatherFalling) { ++ java.util.Iterator armor = entity.getArmorSlots().iterator(); ++ return !armor.hasNext() || net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.FALL_PROTECTION, armor.next()) < (int) entity.fallDistance; ++ } + return true; + // Purpur end + } +diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +index a9d88e8d33f8950f5bd19e7a2d763fbeabee12c8..992a2e37fa093196165b67e88123e00100ae6208 100644 +--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java ++++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +@@ -992,12 +992,14 @@ public class PurpurWorldConfig { + public boolean turtleEggsBreakFromMinecarts = true; + public boolean turtleEggsBypassMobGriefing = false; + public int turtleEggsRandomTickCrackChance = 500; ++ public boolean turtleEggsTramplingFeatherFalling = false; + 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); + turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); + turtleEggsRandomTickCrackChance = getInt("blocks.turtle_egg.random-tick-crack-chance", turtleEggsRandomTickCrackChance); ++ turtleEggsTramplingFeatherFalling = getBoolean("blocks.turtle_egg.feather-fall-distance-affects-trampling", turtleEggsTramplingFeatherFalling); + } + + public int twistingVinesMaxGrowthAge = 25;