From f518f72269ad913e9875ae00f2aebd1b8c338e57 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 Jan 2020 01:41:07 -0600 Subject: [PATCH] Move per-world mob options around in config --- docs/source/configuration.rst | 59 +++++++---------- ...rd-limit-for-pillager-outpost-spawns.patch | 16 ++--- ...urable-search-radius-for-villagers-t.patch | 49 ++++++++++----- ...nt-configurable-villager-brain-ticks.patch | 14 ++--- .../0045-Implement-elytra-settings.patch | 28 +++++---- patches/server/0050-Implement-AFK-API.patch | 32 +++++----- .../0060-Allow-leashing-villagers.patch | 12 ++-- .../server/0080-Implement-infinite-lava.patch | 10 +-- ...0082-Villagers-follow-emerald-blocks.patch | 12 ++-- .../0084-Despawn-egg-hatches-chicken.patch | 16 ++--- ...085-Option-for-hay-block-fall-damage.patch | 14 ++--- patches/server/0086-Add-sleep-options.patch | 14 ++--- ...ombie-villager-transformation-chance.patch | 8 +-- ...091-Add-natural-cat-spawning-options.patch | 63 ++++++++----------- ...Add-player-death-exp-control-options.patch | 14 ++--- ...ack-cat-types-spawning-in-swamp-huts.patch | 6 +- ...96-Make-lava-flow-speed-configurable.patch | 8 +-- 17 files changed, 189 insertions(+), 186 deletions(-) diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 9514b5c28..4f2a6b027 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -422,41 +422,6 @@ player - **default:** 100 - **description:** Maximum amount of exp value to drop on death -cat-spawns -~~~~~~~~~~ -* delay - - **default:** 1200 - - **description:** Number of ticks between attempting to naturally spawn a cat -* swamp-hut - * disable - - **default:** false - - **description:** Control if cats can naturally spawn in witch swamp huts - * scan-range-for-other-cats - - **default:** 16 - - **description:** Do not spawn a cat if another cat is found within this range -* village - * disable - - **default:** false - - **description:** Control if cats can naturally spawn in villages/houses - * scan-range-for-other-cats - - **default:** 48 - - **description:** Do not spawn a cat if another cat is found within this range - -limit-pillager-outpost-spawns -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* **default**: 10 -* **description**: Limit the number of pillagers allowed to spawn at an outpost at any given time - -radius-villager-iron-golem-spawns -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* **default**: 0 -* **description**: Radius villagers search for existing iron golems before spawning more. Value of 0 disables features - -limit-villager-iron-golem-spawns -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* **default**: 5 -* **description**: Maximum amount of iron golems villagers can spawn in configured radius - entities-target-with-follow-range ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * **default**: false @@ -522,6 +487,18 @@ elytra mob ~~~ +* cat + * natural-spawns + * delay + - **default:** 1200 + - **description:** Number of ticks between attempting to naturally spawn a cat + * scan-range-for-other-cats + * swamp-hut + - **default:** 16 + - **description:** Do not spawn a cat if another cat is found within this range. Set to 0 to disable + * village + - **default:** 48 + - **description:** Do not spawn a cat if another cat is found within this range. Set to 0 to disable * chicken * eggs-hatch-when-despawned * max @@ -530,6 +507,18 @@ mob * range - **default:** 10 - **description:** The range in which to check for maximum number of allowed chickens. +* pillager + * limit-outpost-spawns + * **default**: 10 + * **description**: Limit the number of pillagers allowed to spawn at an outpost at any given time +* villager + * iron-golem-spawn + * radius + * **default**: 0 + * **description**: Radius villagers search for existing iron golems before spawning more. Value of 0 disables features + * limit + * **default**: 5 + * **description**: Maximum amount of iron golems villagers can spawn in configured radius * zombie-villager * transformation-chance * easy diff --git a/patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch b/patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch index dce04dda1..ec6e12445 100644 --- a/patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch +++ b/patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch @@ -1,4 +1,4 @@ -From fa2f33292c0e5798936fdd7779cfe403e22929ab Mon Sep 17 00:00:00 2001 +From 05225cd7543552bff6a28d35f4f47ada032c514d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Mon, 22 Jul 2019 14:24:26 -0500 Subject: [PATCH] Implement a hard limit for pillager outpost spawns @@ -9,19 +9,19 @@ Subject: [PATCH] Implement a hard limit for pillager outpost spawns 2 files changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java -index 70f43c5159..9a56bd30e4 100644 +index 70f43c5159..baca8f7054 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java +++ b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java @@ -143,6 +143,7 @@ public class ChunkProviderGenerate extends ChunkGeneratorAbstract 0 && getWorld().getEntitiesByClass(EntityPillager.class, new AxisAlignedBB(blockposition).grow(128)).size() < getWorld().purpurConfig.limitPillagerOutpostSpawns) // Purpur ++ if (getWorld().purpurConfig.pillagerLimitOutpostSpawns > 0 && getWorld().getEntitiesByClass(EntityPillager.class, new AxisAlignedBB(blockposition).grow(128)).size() < getWorld().purpurConfig.pillagerLimitOutpostSpawns) // Purpur return WorldGenerator.PILLAGER_OUTPOST.e(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a6f014a050..a934099d81 100644 +index a6f014a050..c6de971ac5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -118,4 +118,9 @@ public class PurpurWorldConfig { @@ -29,11 +29,11 @@ index a6f014a050..a934099d81 100644 milkCuresBadOmen = getBoolean("milk-cures-bad-omen", milkCuresBadOmen); } + -+ public int limitPillagerOutpostSpawns = 10; -+ private void limitPillagerOutpostSpawns() { -+ limitPillagerOutpostSpawns = getInt("limit-pillager-outpost-spawns", limitPillagerOutpostSpawns); ++ public int pillagerLimitOutpostSpawns = 10; ++ private void pillagerSettings() { ++ pillagerLimitOutpostSpawns = getInt("mobs.pillager.limit-outpost-spawns", pillagerLimitOutpostSpawns); + } } -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0042-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0042-Implement-configurable-search-radius-for-villagers-t.patch index 097798777..8ef2f9472 100644 --- a/patches/server/0042-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0042-Implement-configurable-search-radius-for-villagers-t.patch @@ -1,42 +1,61 @@ -From 966076841875809a4cc27b3a8fd525bef3547582 Mon Sep 17 00:00:00 2001 +From 2b50b40a4d96a235826d2702936bd1f1afc2bc55 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 | 1 + + src/main/java/net/minecraft/server/EntityVillager.java | 5 +---- src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++ - 2 files changed, 8 insertions(+) + 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 572723005..b3a0295ae 100644 +index 5727230058..daa9544453 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -874,6 +874,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -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.radiusVillagerIronGolemSpawns > 0 && world.a(EntityIronGolem.class, getBoundingBox().grow(world.purpurConfig.radiusVillagerIronGolemSpawns)).size() > world.purpurConfig.limitVillagerIronGolemSpawns) return null; // Purpur ++ 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 a934099d8..8d01cdc8e 100644 +index c6de971ac5..9dddfd8155 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -123,4 +123,11 @@ public class PurpurWorldConfig { - private void limitPillagerOutpostSpawns() { - limitPillagerOutpostSpawns = getInt("limit-pillager-outpost-spawns", limitPillagerOutpostSpawns); + private void pillagerSettings() { + pillagerLimitOutpostSpawns = getInt("mobs.pillager.limit-outpost-spawns", pillagerLimitOutpostSpawns); } + -+ public int radiusVillagerIronGolemSpawns = 0; -+ public int limitVillagerIronGolemSpawns = 5; -+ private void radiusVillagerIronGolemSpawns() { -+ radiusVillagerIronGolemSpawns = getInt("radius-villager-iron-golem-spawns", radiusVillagerIronGolemSpawns); -+ limitVillagerIronGolemSpawns = getInt("limit-villager-iron-golem-spawns", limitVillagerIronGolemSpawns); ++ 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); + } } -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0044-Implement-configurable-villager-brain-ticks.patch b/patches/server/0044-Implement-configurable-villager-brain-ticks.patch index 27e952470..4d9570ea5 100644 --- a/patches/server/0044-Implement-configurable-villager-brain-ticks.patch +++ b/patches/server/0044-Implement-configurable-villager-brain-ticks.patch @@ -1,4 +1,4 @@ -From e9017245f70b307f62d07cd1c0e6ba87c6e9de42 Mon Sep 17 00:00:00 2001 +From 0e366064ed25e7255921af0e4acc532ca38ca52d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 23 Jul 2019 08:28:21 -0500 Subject: [PATCH] Implement configurable villager brain ticks @@ -9,10 +9,10 @@ Subject: [PATCH] Implement configurable villager brain ticks 2 files changed, 13 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index e5361be33a..12da4a22b8 100644 +index daa9544453..7d146d9783 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -53,6 +53,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -49,6 +49,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation }, MemoryModuleType.MEETING_POINT, (entityvillager, villageplacetype) -> { return villageplacetype == VillagePlaceType.r; }); @@ -20,7 +20,7 @@ index e5361be33a..12da4a22b8 100644 public EntityVillager(EntityTypes entitytypes, World world) { this(entitytypes, world, VillagerType.PLAINS); -@@ -66,6 +67,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -62,6 +63,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation this.setCanPickupLoot(true); this.setVillagerData(this.getVillagerData().withType(villagertype).withProfession(VillagerProfession.NONE)); this.bo = this.a(new Dynamic(DynamicOpsNBT.a, new NBTTagCompound())); @@ -28,7 +28,7 @@ index e5361be33a..12da4a22b8 100644 } @Override -@@ -145,6 +147,10 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -141,6 +143,10 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @Override protected void mobTick() { this.world.getMethodProfiler().enter("brain"); @@ -40,7 +40,7 @@ index e5361be33a..12da4a22b8 100644 this.world.getMethodProfiler().exit(); if (!this.et() && this.bB > 0) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 48d4f1f5aa..44232346e1 100644 +index cccb966df0..2abdea8731 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -232,6 +232,13 @@ public class PurpurConfig { @@ -58,5 +58,5 @@ index 48d4f1f5aa..44232346e1 100644 private static void zombieHorseSettings() { zombieHorseSpawnChance = (float) getDouble("settings.mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0045-Implement-elytra-settings.patch b/patches/server/0045-Implement-elytra-settings.patch index 7297a9d47..5e118f0fd 100644 --- a/patches/server/0045-Implement-elytra-settings.patch +++ b/patches/server/0045-Implement-elytra-settings.patch @@ -1,4 +1,4 @@ -From 06041349f67f8fbb0817f243547cceeac61da7fe Mon Sep 17 00:00:00 2001 +From 9e23a1e16c112c6d72cfa9f5e15888c48fed3be6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 25 Jul 2019 18:07:37 -0500 Subject: [PATCH] Implement elytra settings @@ -13,7 +13,7 @@ Subject: [PATCH] Implement elytra settings 6 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 758131649..7d424040c 100644 +index 7581316497..7d424040cc 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2652,9 +2652,16 @@ public abstract class EntityLiving extends Entity { @@ -45,7 +45,7 @@ index 758131649..7d424040c 100644 this.world.broadcastEntityEffect(this, d(enumitemslot)); } diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java -index a43e52889..cc8fbccd1 100644 +index a43e52889f..cc8fbccd16 100644 --- a/src/main/java/net/minecraft/server/ItemFireworks.java +++ b/src/main/java/net/minecraft/server/ItemFireworks.java @@ -39,6 +39,14 @@ public class ItemFireworks extends Item { @@ -64,7 +64,7 @@ index a43e52889..cc8fbccd1 100644 itemstack.subtract(1); } else ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index d09f0b3f7..eafce44b3 100644 +index 1108aa0852..2b39d5ca20 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -401,7 +401,7 @@ public final class ItemStack { @@ -90,7 +90,7 @@ index d09f0b3f7..eafce44b3 100644 if (this.count == 1 && t0 instanceof EntityHuman) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((EntityHuman) t0, this); diff --git a/src/main/java/net/minecraft/server/ItemTrident.java b/src/main/java/net/minecraft/server/ItemTrident.java -index 1cbaed9da..b7610aaf7 100644 +index 1cbaed9da4..b7610aaf70 100644 --- a/src/main/java/net/minecraft/server/ItemTrident.java +++ b/src/main/java/net/minecraft/server/ItemTrident.java @@ -100,6 +100,16 @@ public class ItemTrident extends Item { @@ -111,7 +111,7 @@ index 1cbaed9da..b7610aaf7 100644 entityhuman.r(20); if (entityhuman.onGround) { diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java -index 212af252b..fbc30e6ec 100644 +index 212af252be..fbc30e6ece 100644 --- a/src/main/java/net/minecraft/server/Vec3D.java +++ b/src/main/java/net/minecraft/server/Vec3D.java @@ -98,6 +98,7 @@ public class Vec3D implements IPosition { @@ -123,14 +123,13 @@ index 212af252b..fbc30e6ec 100644 return this.x * this.x + this.y * this.y + this.z * this.z; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8d01cdc8e..059cf85f4 100644 +index 9dddfd8155..06d6275809 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -130,4 +130,17 @@ public class PurpurWorldConfig { - radiusVillagerIronGolemSpawns = getInt("radius-villager-iron-golem-spawns", radiusVillagerIronGolemSpawns); - limitVillagerIronGolemSpawns = getInt("limit-villager-iron-golem-spawns", limitVillagerIronGolemSpawns); +@@ -119,6 +119,19 @@ public class PurpurWorldConfig { + milkCuresBadOmen = getBoolean("milk-cures-bad-omen", milkCuresBadOmen); } -+ + + public int elytraDamagePerSecond = 1; + public double elytraDamageMultiplyBySpeed = 0; + public boolean elytraIgnoreUnbreaking = false; @@ -143,7 +142,10 @@ index 8d01cdc8e..059cf85f4 100644 + elytraDamagePerFireworkBoost = getInt("elytra.damage-per-boost.firework", elytraDamagePerFireworkBoost); + elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); + } - } ++ + public int pillagerLimitOutpostSpawns = 10; + private void pillagerSettings() { + pillagerLimitOutpostSpawns = getInt("mobs.pillager.limit-outpost-spawns", pillagerLimitOutpostSpawns); -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0050-Implement-AFK-API.patch b/patches/server/0050-Implement-AFK-API.patch index 1ba07d29b..e00a407b2 100644 --- a/patches/server/0050-Implement-AFK-API.patch +++ b/patches/server/0050-Implement-AFK-API.patch @@ -1,4 +1,4 @@ -From 97354fff32f4f7933175fe81fa397d5252871483 Mon Sep 17 00:00:00 2001 +From a812fd3b8c0aef3ba27d7a49f4b721ee73d9db5a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 8 Aug 2019 15:29:15 -0500 Subject: [PATCH] Implement AFK API @@ -17,7 +17,7 @@ Subject: [PATCH] Implement AFK API 10 files changed, 113 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index dee92e5a7..5e99ad814 100644 +index dee92e5a72..5e99ad8144 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1374,6 +1374,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -29,7 +29,7 @@ index dee92e5a7..5e99ad814 100644 double d3 = this.locX() - d0; double d4 = this.locY() - d1; diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 57c528d53..3c9f18096 100644 +index 57c528d532..3c9f180960 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -86,6 +86,15 @@ public abstract class EntityHuman extends EntityLiving { @@ -49,7 +49,7 @@ index 57c528d53..3c9f18096 100644 super(EntityTypes.PLAYER, world); this.bV = ItemStack.a; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 8565ad9c7..50a922ff1 100644 +index 8565ad9c76..50a922ff1b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1583,8 +1583,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -105,7 +105,7 @@ index 8565ad9c7..50a922ff1 100644 return this.serverStatisticManager; } diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java -index 8b36252ae..5e2d56d5d 100644 +index 8b36252ae1..5e2d56d5de 100644 --- a/src/main/java/net/minecraft/server/IEntityAccess.java +++ b/src/main/java/net/minecraft/server/IEntityAccess.java @@ -116,28 +116,18 @@ public interface IEntityAccess { @@ -150,7 +150,7 @@ index 8b36252ae..5e2d56d5d 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java -index 8d7273a38..71c61dc45 100644 +index 8d7273a38b..71c61dc45e 100644 --- a/src/main/java/net/minecraft/server/IEntitySelector.java +++ b/src/main/java/net/minecraft/server/IEntitySelector.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; @@ -170,7 +170,7 @@ index 8d7273a38..71c61dc45 100644 public static Predicate a(double d0, double d1, double d2, double d3) { double d4 = d3 * d3; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a4af019bc..2db59c55c 100644 +index a4af019bc6..2db59c55ca 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -277,6 +277,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -205,7 +205,7 @@ index a4af019bc..2db59c55c 100644 if (from.getX() != Double.MAX_VALUE) { Location oldTo = to.clone(); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 0a9df816c..84c069330 100644 +index 0a9df816c2..84c0693303 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -367,7 +367,7 @@ public class WorldServer extends World { @@ -227,7 +227,7 @@ index 0a9df816c..84c069330 100644 } else if (entityplayer.isSleeping()) { ++j; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 059cf85f4..0764be9d1 100644 +index 06d6275809..259f6fa287 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -238,8 +238,8 @@ index 059cf85f4..0764be9d1 100644 import org.bukkit.configuration.file.YamlConfiguration; import org.spigotmc.SpigotWorldConfig; -@@ -131,6 +132,21 @@ public class PurpurWorldConfig { - limitVillagerIronGolemSpawns = getInt("limit-villager-iron-golem-spawns", limitVillagerIronGolemSpawns); +@@ -132,6 +133,21 @@ public class PurpurWorldConfig { + elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } + public boolean idleTimeoutKick = true; @@ -257,11 +257,11 @@ index 059cf85f4..0764be9d1 100644 + idleTimeoutBroadcastBack = ChatColor.translateAlternateColorCodes('&', getString("idle-timeout.broadcast.back", idleTimeoutBroadcastBack)); + } + - public int elytraDamagePerSecond = 1; - public double elytraDamageMultiplyBySpeed = 0; - public boolean elytraIgnoreUnbreaking = false; + public int pillagerLimitOutpostSpawns = 10; + private void pillagerSettings() { + pillagerLimitOutpostSpawns = getInt("mobs.pillager.limit-outpost-spawns", pillagerLimitOutpostSpawns); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 712056cad..c12d52e5d 100644 +index 712056cad1..c12d52e5df 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2063,4 +2063,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -287,7 +287,7 @@ index 712056cad..c12d52e5d 100644 + // Purpur end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 92601c581..185717c80 100644 +index 92601c581c..185717c804 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -128,6 +128,7 @@ public class ActivationRange diff --git a/patches/server/0060-Allow-leashing-villagers.patch b/patches/server/0060-Allow-leashing-villagers.patch index b4200c9dc..2f5c7893e 100644 --- a/patches/server/0060-Allow-leashing-villagers.patch +++ b/patches/server/0060-Allow-leashing-villagers.patch @@ -1,4 +1,4 @@ -From 60d581d85c6303cfddcbb8404c07ac16f90820f8 Mon Sep 17 00:00:00 2001 +From a439ab2a24f3776c3e58df37c7462b0af13f7fec Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 3 Oct 2019 18:08:03 -0500 Subject: [PATCH] Allow leashing villagers @@ -10,7 +10,7 @@ Subject: [PATCH] Allow leashing villagers 3 files changed, 10 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 116820dd8..f9bbc0be4 100644 +index 116820dd81..f9bbc0be45 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -1050,6 +1050,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -22,10 +22,10 @@ index 116820dd8..f9bbc0be4 100644 if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) { ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder())); diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 4ddeb8c29..51b9bfd33 100644 +index 7d146d9783..4187bb6026 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -984,4 +984,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -980,4 +980,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation return optional.isPresent() && optional1.isPresent() ? i - ((MinecraftSerializableLong) optional.get()).a() < 24000L && i - ((MinecraftSerializableLong) optional1.get()).a() < 36000L : false; } @@ -38,7 +38,7 @@ index 4ddeb8c29..51b9bfd33 100644 + // Purpur - end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 569c5b344..7ab88bd64 100644 +index 1d6627cf05..12638c8169 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -260,9 +260,11 @@ public class PurpurConfig { @@ -54,5 +54,5 @@ index 569c5b344..7ab88bd64 100644 public static boolean zombieTargetsTurtleEggs = true; -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0080-Implement-infinite-lava.patch b/patches/server/0080-Implement-infinite-lava.patch index 7c9cef253..ab54909ba 100644 --- a/patches/server/0080-Implement-infinite-lava.patch +++ b/patches/server/0080-Implement-infinite-lava.patch @@ -1,4 +1,4 @@ -From 51cfe6295662e3ffb5bda3331140c21d342bcc49 Mon Sep 17 00:00:00 2001 +From ce2b6d10538fe243152dd6d7ba55804488795233 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 23 Nov 2019 17:55:42 -0600 Subject: [PATCH] Implement infinite lava @@ -69,7 +69,7 @@ index 9eba9a12c0..39252e6873 100644 protected boolean c; protected boolean d; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3ad3415c4a..9594d72e35 100644 +index 10c659da7a..006dcd225c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -144,6 +144,11 @@ public class PurpurWorldConfig { @@ -81,9 +81,9 @@ index 3ad3415c4a..9594d72e35 100644 + lavaInfinite = getBoolean("settings.lava-flow.infinite", lavaInfinite); + } + - public int limitPillagerOutpostSpawns = 10; - private void limitPillagerOutpostSpawns() { - limitPillagerOutpostSpawns = getInt("limit-pillager-outpost-spawns", limitPillagerOutpostSpawns); + public int elytraDamagePerSecond = 1; + public double elytraDamageMultiplyBySpeed = 0; + public boolean elytraIgnoreUnbreaking = false; -- 2.24.0 diff --git a/patches/server/0082-Villagers-follow-emerald-blocks.patch b/patches/server/0082-Villagers-follow-emerald-blocks.patch index 760806cf0..6e428ddfa 100644 --- a/patches/server/0082-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0082-Villagers-follow-emerald-blocks.patch @@ -1,4 +1,4 @@ -From 0a7cb9e8304d9aebdda3063c6d1076a25e804bce Mon Sep 17 00:00:00 2001 +From 3f64c9d3b117dfff3f18d61e4510e362242c1436 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 22:10:12 -0600 Subject: [PATCH] Villagers follow emerald blocks @@ -9,10 +9,10 @@ Subject: [PATCH] Villagers follow emerald blocks 2 files changed, 12 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 8b036c3b53..22b6e02895 100644 +index 4187bb6026..d8cbe549d4 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -29,6 +29,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; +@@ -25,6 +25,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; public class EntityVillager extends EntityVillagerAbstract implements ReputationHandler, VillagerDataHolder { @@ -20,7 +20,7 @@ index 8b036c3b53..22b6e02895 100644 private static final DataWatcherObject bz = DataWatcher.a(EntityVillager.class, DataWatcherRegistry.q); public static final Map bx = ImmutableMap.of(Items.BREAD, 4, Items.POTATO, 1, Items.CARROT, 1, Items.BEETROOT, 1); private static final Set bA = ImmutableSet.of(Items.BREAD, Items.POTATO, Items.CARROT, Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT, new Item[]{Items.BEETROOT_SEEDS}); -@@ -70,6 +71,15 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -66,6 +67,15 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation brainTickOffset = getRandom().nextInt(100); // Purpur } @@ -37,7 +37,7 @@ index 8b036c3b53..22b6e02895 100644 public BehaviorController getBehaviorController() { return (BehaviorController) super.getBehaviorController(); // CraftBukkit - decompile error diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 68db82759d..4bf208b35c 100644 +index 66f524ebf8..cc4731ccc8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -280,10 +280,12 @@ public class PurpurConfig { @@ -54,5 +54,5 @@ index 68db82759d..4bf208b35c 100644 public static boolean zombieTargetsTurtleEggs = true; -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0084-Despawn-egg-hatches-chicken.patch b/patches/server/0084-Despawn-egg-hatches-chicken.patch index 5a51edc47..704590241 100644 --- a/patches/server/0084-Despawn-egg-hatches-chicken.patch +++ b/patches/server/0084-Despawn-egg-hatches-chicken.patch @@ -1,4 +1,4 @@ -From b6fae51c16321e3c6ae36ce3624c047b94cd22c6 Mon Sep 17 00:00:00 2001 +From 43b0b6e7711d55097bcedaa9bab727228aeb324b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 23:47:42 -0600 Subject: [PATCH] Despawn egg hatches chicken @@ -41,21 +41,23 @@ index e61af3f5eb..184b2a015a 100644 Vec3D vec3d = this.getMot(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c618169db3..e54f5dcfd4 100644 +index 006dcd225c..63215502e2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -188,4 +188,11 @@ public class PurpurWorldConfig { - elytraDamagePerFireworkBoost = getInt("elytra.damage-per-boost.firework", elytraDamagePerFireworkBoost); - elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); +@@ -177,6 +177,13 @@ public class PurpurWorldConfig { + idleTimeoutBroadcastBack = ChatColor.translateAlternateColorCodes('&', getString("idle-timeout.broadcast.back", idleTimeoutBroadcastBack)); } -+ + + public int chickenEggsHatchWhenDespawnedMax = 0; + public int chickenEggsHatchWhenDespawnedRange = 10; + private void chickenSettings() { + chickenEggsHatchWhenDespawnedMax = getInt("mobs.chicken.eggs-hatch-when-despawned.max", chickenEggsHatchWhenDespawnedMax); + chickenEggsHatchWhenDespawnedRange = getInt("mobs.chicken.eggs-hatch-when-despawned.range", chickenEggsHatchWhenDespawnedRange); + } - } ++ + public int pillagerLimitOutpostSpawns = 10; + private void pillagerSettings() { + pillagerLimitOutpostSpawns = getInt("mobs.pillager.limit-outpost-spawns", pillagerLimitOutpostSpawns); -- 2.24.0 diff --git a/patches/server/0085-Option-for-hay-block-fall-damage.patch b/patches/server/0085-Option-for-hay-block-fall-damage.patch index 0413e67a2..22c35c55e 100644 --- a/patches/server/0085-Option-for-hay-block-fall-damage.patch +++ b/patches/server/0085-Option-for-hay-block-fall-damage.patch @@ -1,4 +1,4 @@ -From e93a887f22af6046e4070afd97c9d5b8033a202d Mon Sep 17 00:00:00 2001 +From e9b244c959e8ee034c4206171665907903355099 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 30 Nov 2019 01:31:09 -0600 Subject: [PATCH] Option for hay block fall damage @@ -21,11 +21,11 @@ index ca81c49f0a..ca8f957989 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c618169db3..2de81f0d3e 100644 +index fc7238886a..31f9b86d5a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -149,6 +149,11 @@ public class PurpurWorldConfig { - lavaInfinite = getBoolean("settings.lava-flow.infinite", lavaInfinite); +@@ -144,6 +144,11 @@ public class PurpurWorldConfig { + milkCuresBadOmen = getBoolean("milk-cures-bad-omen", milkCuresBadOmen); } + public boolean hayBlockFallDamage = true; @@ -33,9 +33,9 @@ index c618169db3..2de81f0d3e 100644 + hayBlockFallDamage = getBoolean("hay-block-fall-damage", hayBlockFallDamage); + } + - public int limitPillagerOutpostSpawns = 10; - private void limitPillagerOutpostSpawns() { - limitPillagerOutpostSpawns = getInt("limit-pillager-outpost-spawns", limitPillagerOutpostSpawns); + public boolean lavaInfinite = false; + private void lavaSettings() { + lavaInfinite = getBoolean("settings.lava-flow.infinite", lavaInfinite); -- 2.24.0 diff --git a/patches/server/0086-Add-sleep-options.patch b/patches/server/0086-Add-sleep-options.patch index 33f96203a..47c82e4fd 100644 --- a/patches/server/0086-Add-sleep-options.patch +++ b/patches/server/0086-Add-sleep-options.patch @@ -1,4 +1,4 @@ -From 18f230da2e420b38ec84967a1b5ae8c79f363faf Mon Sep 17 00:00:00 2001 +From ce25ea0e468fcae7a6ca9bbae69b59ff67d15877 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 30 Nov 2019 03:30:17 -0600 Subject: [PATCH] Add sleep options @@ -73,11 +73,11 @@ index 3c9f180960..3957daf751 100644 return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_NOW); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fbe7063441..f5283d7aa5 100644 +index 4cfdd5c81c..0b01e5c7cd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -166,6 +166,13 @@ public class PurpurWorldConfig { - limitVillagerIronGolemSpawns = getInt("limit-villager-iron-golem-spawns", limitVillagerIronGolemSpawns); +@@ -182,6 +182,13 @@ public class PurpurWorldConfig { + idleTimeoutBroadcastBack = ChatColor.translateAlternateColorCodes('&', getString("idle-timeout.broadcast.back", idleTimeoutBroadcastBack)); } + public boolean sleepOnlyWithCondition = false; @@ -87,9 +87,9 @@ index fbe7063441..f5283d7aa5 100644 + sleepCondition = getString("sleep.condition", sleepCondition); + } + - public boolean idleTimeoutKick = true; - public boolean idleTimeoutTickNearbyEntities = false; - public boolean idleTimeoutCountAsSleeping = false; + public int chickenEggsHatchWhenDespawnedMax = 0; + public int chickenEggsHatchWhenDespawnedRange = 10; + private void chickenSettings() { -- 2.24.0 diff --git a/patches/server/0090-Add-option-for-zombie-villager-transformation-chance.patch b/patches/server/0090-Add-option-for-zombie-villager-transformation-chance.patch index 0a02c4bf2..30ec61567 100644 --- a/patches/server/0090-Add-option-for-zombie-villager-transformation-chance.patch +++ b/patches/server/0090-Add-option-for-zombie-villager-transformation-chance.patch @@ -1,4 +1,4 @@ -From bfdb4c203220387e3757e4de3006e6b76773ba97 Mon Sep 17 00:00:00 2001 +From 4eb2649127af10e226c64546eed6aa104e61cd3f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 19 Dec 2019 16:59:46 -0600 Subject: [PATCH] Add option for zombie villager transformation chance @@ -35,12 +35,12 @@ index 47248cc45e..5703e9e70c 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0e36f85fb1..c3e0a65c69 100644 +index 0b01e5c7cd..b4f5599661 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -207,4 +207,13 @@ public class PurpurWorldConfig { - chickenEggsHatchWhenDespawnedMax = getInt("mobs.chicken.eggs-hatch-when-despawned.max", chickenEggsHatchWhenDespawnedMax); - chickenEggsHatchWhenDespawnedRange = getInt("mobs.chicken.eggs-hatch-when-despawned.range", chickenEggsHatchWhenDespawnedRange); + villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); + villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); } + + public double zombieVillagerTransformationChanceEasy = 0.0D; diff --git a/patches/server/0091-Add-natural-cat-spawning-options.patch b/patches/server/0091-Add-natural-cat-spawning-options.patch index 566c9543f..49593e3c9 100644 --- a/patches/server/0091-Add-natural-cat-spawning-options.patch +++ b/patches/server/0091-Add-natural-cat-spawning-options.patch @@ -1,15 +1,15 @@ -From 2ce60c74d7a9eb0691d795dfc1ebb034d82e3b4f Mon Sep 17 00:00:00 2001 +From 5dfba45d55c57a95b360638215c5d8cc3f4070ec Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 26 Dec 2019 18:52:55 -0600 Subject: [PATCH] Add natural cat spawning options --- - .../java/net/minecraft/server/MobSpawnerCat.java | 12 +++++++----- - .../java/net/pl3x/purpur/PurpurWorldConfig.java | 13 +++++++++++++ - 2 files changed, 20 insertions(+), 5 deletions(-) + .../net/minecraft/server/MobSpawnerCat.java | 19 +++++++++++++------ + .../net/pl3x/purpur/PurpurWorldConfig.java | 9 +++++++++ + 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minecraft/server/MobSpawnerCat.java b/src/main/java/net/minecraft/server/MobSpawnerCat.java -index 6024478dc0..3da1af0eac 100644 +index 6024478dc0..034b973365 100644 --- a/src/main/java/net/minecraft/server/MobSpawnerCat.java +++ b/src/main/java/net/minecraft/server/MobSpawnerCat.java @@ -15,7 +15,7 @@ public class MobSpawnerCat { @@ -21,67 +21,58 @@ index 6024478dc0..3da1af0eac 100644 EntityPlayer entityplayer = worldserver.k(); if (entityplayer == null) { -@@ -31,10 +31,12 @@ public class MobSpawnerCat { - } else { - if (SpawnerCreature.a(EntityPositionTypes.Surface.ON_GROUND, (IWorldReader) worldserver, blockposition, EntityTypes.CAT)) { - if (worldserver.a(blockposition, 2)) { -+ if (worldserver.purpurConfig.catSpawnDisableVillage) return 0; // Purpur - return this.a(worldserver, blockposition); - } - - if (WorldGenerator.SWAMP_HUT.b(worldserver, blockposition)) { -+ if (worldserver.purpurConfig.catSpawnDisableSwampHut) return 0; // Purpur - return this.a((World) worldserver, blockposition); - } - } -@@ -49,10 +51,10 @@ public class MobSpawnerCat { +@@ -49,10 +49,13 @@ public class MobSpawnerCat { } private int a(WorldServer worldserver, BlockPosition blockposition) { - boolean flag = true; -+ int range = worldserver.purpurConfig.catSpawnVillageScanRange; // Purpur ++ // Purpur start ++ int range = worldserver.purpurConfig.catSpawnVillageScanRange; ++ if (range <= 0) return 0; ++ // Purpur end - if (worldserver.B().a(VillagePlaceType.q.c(), blockposition, 48, VillagePlace.Occupancy.IS_OCCUPIED) > 4L) { +- if (worldserver.B().a(VillagePlaceType.q.c(), blockposition, 48, VillagePlace.Occupancy.IS_OCCUPIED) > 4L) { - List list = worldserver.a(EntityCat.class, (new AxisAlignedBB(blockposition)).grow(48.0D, 8.0D, 48.0D)); ++ if (worldserver.B().a(VillagePlaceType.q.c(), blockposition, range, VillagePlace.Occupancy.IS_OCCUPIED) > 4L) { + List list = worldserver.a(EntityCat.class, (new AxisAlignedBB(blockposition)).grow(range, 8.0D, range)); // Purpur if (list.size() < 5) { return this.a(blockposition, (World) worldserver); -@@ -63,8 +65,8 @@ public class MobSpawnerCat { +@@ -63,8 +66,12 @@ public class MobSpawnerCat { } private int a(World world, BlockPosition blockposition) { - boolean flag = true; - List list = world.a(EntityCat.class, (new AxisAlignedBB(blockposition)).grow(16.0D, 8.0D, 16.0D)); -+ int range = world.purpurConfig.catSpawnSwampHutScanRange; // Purpur ++ // Purpur start ++ int range = world.purpurConfig.catSpawnSwampHutScanRange; ++ if (range <= 0) return 0; ++ // Purpur end ++ + List list = world.a(EntityCat.class, (new AxisAlignedBB(blockposition)).grow(range, 8.0D, range)); // Purpur return list.size() < 1 ? this.a(blockposition, world) : 0; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 499bbe4ff2..deccd0084a 100644 +index b4f5599661..0a933e29a4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -154,6 +154,19 @@ public class PurpurWorldConfig { - hayBlockFallDamage = getBoolean("hay-block-fall-damage", hayBlockFallDamage); +@@ -189,6 +189,15 @@ public class PurpurWorldConfig { + sleepCondition = getString("sleep.condition", sleepCondition); } + public int catSpawnDelay = 1200; -+ public boolean catSpawnDisableSwampHut = false; + public int catSpawnSwampHutScanRange = 16; -+ public boolean catSpawnDisableVillage = false; + public int catSpawnVillageScanRange = 48; + private void catSettings() { -+ catSpawnDelay = getInt("cat-spawns.delay", catSpawnDelay); -+ catSpawnDisableSwampHut = getBoolean("cat-spawns.swamp-hut.disable", catSpawnDisableSwampHut); -+ catSpawnSwampHutScanRange = getInt("cat-spawns.swamp-hut.scan-range-for-other-cats", catSpawnSwampHutScanRange); -+ catSpawnDisableVillage = getBoolean("cat-spawns.village.disable", catSpawnDisableVillage); -+ catSpawnVillageScanRange = getInt("cat-spawns.village.scan-range-for-other-cats", catSpawnVillageScanRange); ++ catSpawnDelay = getInt("mobs.cat.natural-spawns.delay", catSpawnDelay); ++ catSpawnSwampHutScanRange = getInt("mobs.cat.natural-spawns.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); ++ catSpawnVillageScanRange = getInt("mobs.cat.natural-spawns.scan-range-for-other-cats.village", catSpawnVillageScanRange); + } + - public int limitPillagerOutpostSpawns = 10; - private void limitPillagerOutpostSpawns() { - limitPillagerOutpostSpawns = getInt("limit-pillager-outpost-spawns", limitPillagerOutpostSpawns); + public int chickenEggsHatchWhenDespawnedMax = 0; + public int chickenEggsHatchWhenDespawnedRange = 10; + private void chickenSettings() { -- 2.24.0 diff --git a/patches/server/0092-Add-player-death-exp-control-options.patch b/patches/server/0092-Add-player-death-exp-control-options.patch index 78e78009f..9973f692d 100644 --- a/patches/server/0092-Add-player-death-exp-control-options.patch +++ b/patches/server/0092-Add-player-death-exp-control-options.patch @@ -1,4 +1,4 @@ -From 704d8126bd2f4d60fde55740413be8f384583bbf Mon Sep 17 00:00:00 2001 +From 6008fe12c4429329fd28edcbe7cde65560146f97 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 26 Dec 2019 22:08:37 -0600 Subject: [PATCH] Add player death exp control options @@ -35,11 +35,11 @@ index 3957daf751..15e342454c 100644 return 0; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index deccd0084a..6351e78902 100644 +index 0a933e29a4..60ba8c1e9b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -154,6 +154,13 @@ public class PurpurWorldConfig { - hayBlockFallDamage = getBoolean("hay-block-fall-damage", hayBlockFallDamage); +@@ -167,6 +167,13 @@ public class PurpurWorldConfig { + elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } + public String playerDeathExpDropEquation = "expLevel * 7"; @@ -49,9 +49,9 @@ index deccd0084a..6351e78902 100644 + playerDeathExpDropMax = getInt("player.exp-dropped-on-death.maximum", playerDeathExpDropMax); + } + - public int catSpawnDelay = 1200; - public boolean catSpawnDisableSwampHut = false; - public int catSpawnSwampHutScanRange = 16; + public boolean idleTimeoutKick = true; + public boolean idleTimeoutTickNearbyEntities = false; + public boolean idleTimeoutCountAsSleeping = false; -- 2.24.0 diff --git a/patches/server/0095-Fix-non-black-cat-types-spawning-in-swamp-huts.patch b/patches/server/0095-Fix-non-black-cat-types-spawning-in-swamp-huts.patch index 48fc05433..c0d6b82b0 100644 --- a/patches/server/0095-Fix-non-black-cat-types-spawning-in-swamp-huts.patch +++ b/patches/server/0095-Fix-non-black-cat-types-spawning-in-swamp-huts.patch @@ -1,4 +1,4 @@ -From a80fe2b39956fdb1b31553590ab26f50f27a5428 Mon Sep 17 00:00:00 2001 +From 9a41f2be0f54b9220fb0202039dd569fa957daa2 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 2 Jan 2020 01:23:22 -0600 Subject: [PATCH] Fix non black cat types spawning in swamp huts @@ -8,10 +8,10 @@ Subject: [PATCH] Fix non black cat types spawning in swamp huts 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/MobSpawnerCat.java b/src/main/java/net/minecraft/server/MobSpawnerCat.java -index 3da1af0eac..7e48895778 100644 +index 034b973365..cc2f37869a 100644 --- a/src/main/java/net/minecraft/server/MobSpawnerCat.java +++ b/src/main/java/net/minecraft/server/MobSpawnerCat.java -@@ -77,8 +77,9 @@ public class MobSpawnerCat { +@@ -82,8 +82,9 @@ public class MobSpawnerCat { if (entitycat == null) { return 0; } else { diff --git a/patches/server/0096-Make-lava-flow-speed-configurable.patch b/patches/server/0096-Make-lava-flow-speed-configurable.patch index 401c55fe2..e9af72443 100644 --- a/patches/server/0096-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0096-Make-lava-flow-speed-configurable.patch @@ -1,4 +1,4 @@ -From 5843b2181d73bf9aa67a0030357ec385355492a8 Mon Sep 17 00:00:00 2001 +From a652ba103f160888434109e739fa845e8f146654 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 2 Jan 2020 11:31:36 -0600 Subject: [PATCH] Make lava flow speed configurable @@ -38,10 +38,10 @@ index 39252e6873..75f8441ab6 100644 return this.d; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3a750bedee..71aadd05f9 100644 +index 60ba8c1e9b..01029e504f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -145,8 +145,12 @@ public class PurpurWorldConfig { +@@ -150,8 +150,12 @@ public class PurpurWorldConfig { } public boolean lavaInfinite = false; @@ -53,7 +53,7 @@ index 3a750bedee..71aadd05f9 100644 + lavaSpeedNotNether = getInt("settings.lava-flow.speed.not-nether", lavaSpeedNotNether); } - public boolean hayBlockFallDamage = true; + public int elytraDamagePerSecond = 1; -- 2.24.0