From b7be946d6da6ef9731a126cb8d881540d3b729d7 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath 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 | 5 +---- src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java index 5727230058..daa9544453 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -12,18 +12,14 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.Map.Entry; import java.util.function.BiPredicate; import java.util.stream.Collectors; import javax.annotation.Nullable; // CraftBukkit start import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.entity.CraftVillager; import org.bukkit.craftbukkit.event.CraftEventFactory; -import org.bukkit.craftbukkit.inventory.CraftMerchantRecipe; import org.bukkit.entity.Villager; import org.bukkit.event.entity.EntityTransformEvent; -import org.bukkit.event.entity.VillagerAcquireTradeEvent; import org.bukkit.event.entity.VillagerReplenishTradeEvent; // CraftBukkit end @@ -874,6 +870,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 66dd66f062..6cc6d8015f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -136,6 +136,13 @@ public class PurpurWorldConfig { pillagerLimitOutpostSpawns = getInt("mobs.pillager.limit-outpost-spawns", pillagerLimitOutpostSpawns); } + public int villagerSpawnIronGolemRadius = 0; + public int villagerSpawnIronGolemLimit = 5; + private void villagerSettings() { + villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); + villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); + } + public float zombieHorseSpawnChance = 0F; private void zombieHorseSettings() { zombieHorseSpawnChance = (float) getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); -- 2.24.0