mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Option to disable turtle egg trampling with feather falling
This commit is contained in:
@@ -1,42 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: 12emin34 <macanovic.emin@gmail.com>
|
|
||||||
Date: Mon, 9 May 2022 23:18:09 +0200
|
|
||||||
Subject: [PATCH] Option to disable turtle egg trampling with feather falling
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/block/TurtleEggBlock.java b/net/minecraft/world/level/block/TurtleEggBlock.java
|
|
||||||
index 6f02cec4384382569ad7d7c830dd6349aeac5293..cf86448e2067712863d30c9aecc48daedefd227f 100644
|
|
||||||
--- a/net/minecraft/world/level/block/TurtleEggBlock.java
|
|
||||||
+++ b/net/minecraft/world/level/block/TurtleEggBlock.java
|
|
||||||
@@ -220,6 +220,12 @@ public class TurtleEggBlock extends Block {
|
|
||||||
if (!(entity instanceof LivingEntity)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
+ // Purpur start - Option to disable turtle egg trampling with feather falling
|
|
||||||
+ if (world.purpurConfig.turtleEggsTramplingFeatherFalling) {
|
|
||||||
+ java.util.Iterator<ItemStack> armor = ((LivingEntity) entity).getArmorSlots().iterator();
|
|
||||||
+ return !armor.hasNext() || net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.FEATHER_FALLING, armor.next()) < (int) entity.fallDistance;
|
|
||||||
+ }
|
|
||||||
+ // Purpur end - Option to disable turtle egg trampling with feather falling
|
|
||||||
if (entity instanceof Player) return true;
|
|
||||||
|
|
||||||
return world.purpurConfig.turtleEggsBypassMobGriefing ^ world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); // Purpur - Add mobGriefing bypass to everything affected
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index 1290e73e4e741e7530481885994f16c2fd5db32c..7cdcea1f5170bc095b365f126a05cb4a6ca70087 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -1058,12 +1058,14 @@ public class PurpurWorldConfig {
|
|
||||||
public boolean turtleEggsBreakFromMinecarts = false;
|
|
||||||
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 waterInfiniteRequiredSources = 2;
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -192,9 +_,25 @@
|
@@ -192,9 +_,31 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canDestroyEgg(ServerLevel level, Entity entity) {
|
private boolean canDestroyEgg(ServerLevel level, Entity entity) {
|
||||||
@@ -33,6 +33,12 @@
|
|||||||
+ if (!(entity instanceof LivingEntity)) {
|
+ if (!(entity instanceof LivingEntity)) {
|
||||||
+ return false;
|
+ return false;
|
||||||
+ }
|
+ }
|
||||||
|
+ // Purpur start - Option to disable turtle egg trampling with feather falling
|
||||||
|
+ if (level.purpurConfig.turtleEggsTramplingFeatherFalling) {
|
||||||
|
+ java.util.Iterator<ItemStack> armor = ((LivingEntity) entity).getArmorSlots().iterator();
|
||||||
|
+ return !armor.hasNext() || net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.FEATHER_FALLING, armor.next()) < (int) entity.fallDistance;
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - Option to disable turtle egg trampling with feather falling
|
||||||
+ if (entity instanceof Player) return true;
|
+ if (entity instanceof Player) return true;
|
||||||
+
|
+
|
||||||
+ return level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
|
+ return level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
|
||||||
|
|||||||
@@ -1057,12 +1057,14 @@ public class PurpurWorldConfig {
|
|||||||
public boolean turtleEggsBreakFromMinecarts = false;
|
public boolean turtleEggsBreakFromMinecarts = false;
|
||||||
public boolean turtleEggsBypassMobGriefing = false;
|
public boolean turtleEggsBypassMobGriefing = false;
|
||||||
public int turtleEggsRandomTickCrackChance = 500;
|
public int turtleEggsRandomTickCrackChance = 500;
|
||||||
|
public boolean turtleEggsTramplingFeatherFalling = false;
|
||||||
private void turtleEggSettings() {
|
private void turtleEggSettings() {
|
||||||
turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs);
|
turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs);
|
||||||
turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems);
|
turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems);
|
||||||
turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
|
turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
|
||||||
turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing);
|
turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing);
|
||||||
turtleEggsRandomTickCrackChance = getInt("blocks.turtle_egg.random-tick-crack-chance", turtleEggsRandomTickCrackChance);
|
turtleEggsRandomTickCrackChance = getInt("blocks.turtle_egg.random-tick-crack-chance", turtleEggsRandomTickCrackChance);
|
||||||
|
turtleEggsTramplingFeatherFalling = getBoolean("blocks.turtle_egg.feather-fall-distance-affects-trampling", turtleEggsTramplingFeatherFalling);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int waterInfiniteRequiredSources = 2;
|
public int waterInfiniteRequiredSources = 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user