Add config to only lobotomize villagers that have been traded with (#1466)

This commit is contained in:
2stinkysocks
2024-01-25 20:50:57 -07:00
committed by GitHub
parent 6aebd42a40
commit eab2140f5e
5 changed files with 27 additions and 24 deletions

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 27e8f8bbaa25227c19399fab2bce8953d098e612..576ac084a97a59f2bd3a1be3d70515649091e593 100644
index fed066980b17d7c7fa773a00b314535c92fc53fd..857d1d80afd35d30a2947b0a6f953e5af1516048 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1100,6 +1100,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1101,6 +1101,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) {
@@ -18,21 +18,21 @@ index 27e8f8bbaa25227c19399fab2bce8953d098e612..576ac084a97a59f2bd3a1be3d7051564
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
List<Villager> list = world.getEntitiesOfClass(Villager.class, axisalignedbb);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2a898817bff68402631fbcf9318bed76548c9e21..05d82f9555b8836b48d076ec38f3aab6c070e58b 100644
index 1beb9285414e3c178c95ef9ea404fcf34f9cdcac..a0b5c0819541a2924bf29ded4d1842b0e19b4e7b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2808,6 +2808,8 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false;
@@ -2809,6 +2809,8 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
public boolean villagerDisplayTradeItem = true;
+ 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);
@@ -2841,6 +2843,8 @@ public class PurpurWorldConfig {
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
@@ -2843,6 +2845,8 @@ public class PurpurWorldConfig {
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);
+ villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
+ villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);