From 78a8ea1817998eaab10112686e5d929c2fc4ad90 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Fri, 10 Jan 2025 22:56:39 -0800 Subject: [PATCH] Config to disable Llama caravans Disables the mechanic where llamas follow leashed llamas. --- ...134-Config-to-disable-Llama-caravans.patch | 53 ------------------- .../ai/goal/LlamaFollowCaravanGoal.java.patch | 2 +- .../entity/animal/horse/Llama.java.patch | 2 +- .../purpurmc/purpur/PurpurWorldConfig.java | 2 + 4 files changed, 4 insertions(+), 55 deletions(-) delete mode 100644 patches/server/0134-Config-to-disable-Llama-caravans.patch diff --git a/patches/server/0134-Config-to-disable-Llama-caravans.patch b/patches/server/0134-Config-to-disable-Llama-caravans.patch deleted file mode 100644 index 9a36c6418..000000000 --- a/patches/server/0134-Config-to-disable-Llama-caravans.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Encode42 -Date: Wed, 17 Mar 2021 10:12:53 -0400 -Subject: [PATCH] Config to disable Llama caravans - -Disables the mechanic where llamas follow leashed llamas. - -diff --git a/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java b/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java -index eb0faf58fa1a408f294fc62120b140def97f998d..0f4f546cd0eda4bd82b47446ae23ac32da8a9556 100644 ---- a/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java -+++ b/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java -@@ -22,7 +22,7 @@ public class LlamaFollowCaravanGoal extends Goal { - - @Override - public boolean canUse() { -- if (!this.llama.shouldJoinCaravan) return false; // Purpur -+ if (!this.llama.level().purpurConfig.llamaJoinCaravans || !this.llama.shouldJoinCaravan) return false; // Purpur - if (!this.llama.isLeashed() && !this.llama.inCaravan()) { - List list = this.llama.level().getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0, 4.0, 9.0), entity -> { - EntityType entityType = entity.getType(); -diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java -index fa1bf3e2e11564b9528e056369a610cb5bbd25d0..ee8d756fed5b6458b28acbd2a62a5693baddd45d 100644 ---- a/net/minecraft/world/entity/animal/horse/Llama.java -+++ b/net/minecraft/world/entity/animal/horse/Llama.java -@@ -464,7 +464,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder entities = this.llama.level().getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0, 4.0, 9.0), entity1 -> { EntityType type = entity1.getType(); diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/horse/Llama.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/horse/Llama.java.patch index f4eb27704..c0e613a83 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/horse/Llama.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/animal/horse/Llama.java.patch @@ -36,7 +36,7 @@ } public void joinCaravan(Llama caravanHead) { -+ if (!shouldJoinCaravan || !new org.purpurmc.purpur.event.entity.LlamaJoinCaravanEvent((org.bukkit.entity.Llama) getBukkitEntity(), (org.bukkit.entity.Llama) caravanHead.getBukkitEntity()).callEvent()) return; // Purpur - Llama API ++ if (!this.level().purpurConfig.llamaJoinCaravans || !shouldJoinCaravan || !new org.purpurmc.purpur.event.entity.LlamaJoinCaravanEvent((org.bukkit.entity.Llama) getBukkitEntity(), (org.bukkit.entity.Llama) caravanHead.getBukkitEntity()).callEvent()) return; // Purpur - Llama API // Purpur - Config to disable Llama caravans this.caravanHead = caravanHead; this.caravanHead.caravanTail = this; } 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 35b28d263..3598290ff 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1380,6 +1380,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; + public boolean llamaJoinCaravans = true; private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); @@ -1399,6 +1400,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); + llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); } public boolean magmaCubeRidable = false;