Files
Purpur/patches/server/0084-Implement-configurable-search-radius-for-villagers-t.patch
William Blake Galbreath c2c6a6efd9 Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly

Paper Changes:
d6eda567 Provide a useful PluginClassLoader#toString
a3fdafbd Restore Serialization Improvements again, wasn't an issue.
0e441c79 Revert "Improve Chat Component Legacy Serialization more"
53ef67b8 Improve Chat Component Legacy Serialization more
afc1fcfc Fix serialization of colors from components
eaa76a31 Add Villager Tasks to EAR inactive tick to keep behavior
357b52fd Improve Chunk Prioritization / Load Order
a76bc402 Improve Chunk Status Transition Speed
7a2b345b Synchronize DataPaletteBlock instead of ReentrantLock
2020-05-31 18:20:17 -05:00

49 lines
2.7 KiB
Diff

From ca8de54be4a0841046f39331f7195585f3182389 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 22 Jul 2019 17:32:17 -0500
Subject: [PATCH] Implement configurable search radius for villagers to spawn
iron golems
---
src/main/java/net/minecraft/server/EntityVillager.java | 1 +
src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index e3322fedd7..2153b36a3c 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -918,6 +918,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@Nullable
private EntityIronGolem fb() {
+ if (world.purpurConfig.villagerSpawnIronGolemRadius > 0 && world.a(EntityIronGolem.class, getBoundingBox().grow(world.purpurConfig.villagerSpawnIronGolemRadius)).size() > world.purpurConfig.villagerSpawnIronGolemLimit) return null; // Purpur
BlockPosition blockposition = new BlockPosition(this);
int i = 0;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 284054db42..f60c4b6291 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -781,6 +781,8 @@ public class PurpurWorldConfig {
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
+ public int villagerSpawnIronGolemRadius = 0;
+ public int villagerSpawnIronGolemLimit = 0;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -789,6 +791,8 @@ public class PurpurWorldConfig {
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
+ villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
+ villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
}
public boolean villagerTraderRidable = false;
--
2.24.0