From c9fbe555c00abb24946859b42cae262ce6068aaa Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 Jan 2025 15:31:10 -0800 Subject: [PATCH] Option to toggle milk curing bad omen --- ...ption-to-toggle-milk-curing-bad-omen.patch | 38 ------------------- ...arAllStatusEffectsConsumeEffect.java.patch | 15 ++++++++ .../purpurmc/purpur/PurpurWorldConfig.java | 2 + 3 files changed, 17 insertions(+), 38 deletions(-) delete mode 100644 patches/server/0041-Option-to-toggle-milk-curing-bad-omen.patch create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java.patch diff --git a/patches/server/0041-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0041-Option-to-toggle-milk-curing-bad-omen.patch deleted file mode 100644 index d37ed5b56..000000000 --- a/patches/server/0041-Option-to-toggle-milk-curing-bad-omen.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Wed, 10 Jul 2019 20:43:05 -0500 -Subject: [PATCH] Option to toggle milk curing bad omen - - -diff --git a/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java b/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java -index 0651c2af040e3f248860cfb3c5effce91589380e..d884df481b4bbb978113a4ac7a1feac31cf2f951 100644 ---- a/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java -+++ b/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java -@@ -24,6 +24,12 @@ public record ClearAllStatusEffectsConsumeEffect() implements ConsumeEffect { - @Override - // CraftBukkit start - public boolean apply(Level world, ItemStack itemstack, LivingEntity entityliving, EntityPotionEffectEvent.Cause cause) { -+ // Purpur start -+ net.minecraft.world.effect.MobEffectInstance badOmen = entityliving.getEffect(net.minecraft.world.effect.MobEffects.BAD_OMEN); -+ if (!world.purpurConfig.milkCuresBadOmen && itemstack.is(net.minecraft.world.item.Items.MILK_BUCKET) && badOmen != null) { -+ return entityliving.removeAllEffects(cause) && entityliving.addEffect(badOmen); -+ } -+ // Purpur end - return entityliving.removeAllEffects(cause); - // CraftBukkit end - } -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 983523dfff2773799640347ff047e600fb25044e..6daa99bb60723af0eb38b625ab0cd24d33d7552a 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,8 +97,10 @@ public class PurpurWorldConfig { - } - - public boolean disableDropsOnCrammingDeath = false; -+ public boolean milkCuresBadOmen = true; - private void miscGameplayMechanicsSettings() { - disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); -+ milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); - } - - public double minecartMaxSpeed = 0.4D; diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java.patch new file mode 100644 index 000000000..65243f097 --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java.patch @@ -0,0 +1,15 @@ +--- a/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java ++++ b/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.java +@@ -20,6 +_,12 @@ + @Override + // CraftBukkit start + public boolean apply(Level level, ItemStack stack, LivingEntity entity, org.bukkit.event.entity.EntityPotionEffectEvent.Cause cause) { ++ // Purpur start - Option to toggle milk curing bad omen ++ net.minecraft.world.effect.MobEffectInstance badOmen = entity.getEffect(net.minecraft.world.effect.MobEffects.BAD_OMEN); ++ if (!level.purpurConfig.milkCuresBadOmen && stack.is(net.minecraft.world.item.Items.MILK_BUCKET) && badOmen != null) { ++ return entity.removeAllEffects(cause) && entity.addEffect(badOmen); ++ } ++ // Purpur end - Option to toggle milk curing bad omen + return entity.removeAllEffects(cause); + // CraftBukkit end + } 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 14bf76fc1..fed0350c1 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -85,8 +85,10 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; + public boolean milkCuresBadOmen = true; private void miscGameplayMechanicsSettings() { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); + milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); } public double minecartMaxSpeed = 0.4D;