Add limits to chicken egg hatching patch

This commit is contained in:
William Blake Galbreath
2020-01-03 00:52:24 -06:00
parent 25433fabdd
commit 8d40b034fc
3 changed files with 43 additions and 37 deletions

View File

@@ -143,11 +143,6 @@ mobs
- **default**: true - **default**: true
- **description**: Require shift click to mount otherwise non-ridable mobs - **description**: Require shift click to mount otherwise non-ridable mobs
* chicken
* eggs-hatch-when-despawned
- **default:** false
- **description:** When chicken egg despawns a chicken is hatched in its place
* cow * cow
* feed-mushrooms-for-mooshroom * feed-mushrooms-for-mooshroom
- **default**: 0 - **default**: 0
@@ -527,6 +522,14 @@ elytra
mob mob
~~~ ~~~
* chicken
* eggs-hatch-when-despawned
* max
- **default:** 0
- **description:** Maximum number of chickens in an area allowed to spawn a chicken when an egg despawns. Set to 0 to disable feature.
* range
- **default:** 10
- **description:** The range in which to check for maximum number of allowed chickens.
* zombie-villager * zombie-villager
* transformation-chance * transformation-chance
* easy * easy

View File

@@ -1,32 +1,35 @@
From 209df14113e37519c2a2bfc00c15e04266c9ce31 Mon Sep 17 00:00:00 2001 From b6fae51c16321e3c6ae36ce3624c047b94cd22c6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com> From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 29 Nov 2019 23:47:42 -0600 Date: Fri, 29 Nov 2019 23:47:42 -0600
Subject: [PATCH] Despawn egg hatches chicken Subject: [PATCH] Despawn egg hatches chicken
--- ---
.../java/net/minecraft/server/EntityItem.java | 18 ++++++++++++++++++ .../java/net/minecraft/server/EntityItem.java | 21 +++++++++++++++++++
.../java/net/pl3x/purpur/PurpurConfig.java | 5 +++++ .../net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++
2 files changed, 23 insertions(+) 2 files changed, 28 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
index e61af3f5eb..b9ad1ff70e 100644 index e61af3f5eb..184b2a015a 100644
--- a/src/main/java/net/minecraft/server/EntityItem.java --- a/src/main/java/net/minecraft/server/EntityItem.java
+++ b/src/main/java/net/minecraft/server/EntityItem.java +++ b/src/main/java/net/minecraft/server/EntityItem.java
@@ -165,6 +165,24 @@ public class EntityItem extends Entity { @@ -165,6 +165,27 @@ public class EntityItem extends Entity {
} }
// Spigot end // Spigot end
+ // Purpur start + // Purpur start
+ @Override + @Override
+ public void die() { + public void die() {
+ if (!dead && net.pl3x.purpur.PurpurConfig.chickenEggsHatchWhenDespawned) { + if (!dead && world.purpurConfig.chickenEggsHatchWhenDespawnedMax > 0) {
+ ItemStack item = getItemStack(); + ItemStack item = getItemStack();
+ if (item != null && item.getItem() == Items.EGG) { + if (item != null && item.getItem() == Items.EGG) {
+ EntityChicken chicken = EntityTypes.CHICKEN.create(world); + int range = world.purpurConfig.chickenEggsHatchWhenDespawnedRange;
+ if (chicken != null) { + if (world.getEntitiesByClass(EntityChicken.class, new AxisAlignedBB(locX() - range, locY() - range, locZ() - range, locX() + range, locY() + range, locZ() + range)).size() < world.purpurConfig.chickenEggsHatchWhenDespawnedMax) {
+ chicken.setPosition(locX(), locY(), locZ()); + EntityChicken chicken = EntityTypes.CHICKEN.create(world);
+ chicken.setAge(-24000); + if (chicken != null) {
+ world.addEntity(chicken, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); + chicken.setPosition(locX(), locY(), locZ());
+ chicken.setAge(-24000);
+ world.addEntity(chicken, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG);
+ }
+ } + }
+ } + }
+ } + }
@@ -37,22 +40,22 @@ index e61af3f5eb..b9ad1ff70e 100644
private void u() { private void u() {
Vec3D vec3d = this.getMot(); Vec3D vec3d = this.getMot();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b5f12373a9..efdf01e98c 100644 index c618169db3..e54f5dcfd4 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -203,6 +203,11 @@ public class PurpurConfig { @@ -188,4 +188,11 @@ public class PurpurWorldConfig {
armorstandStepHeight = (float) getDouble("settings.armorstand.step-height", armorstandStepHeight); elytraDamagePerFireworkBoost = getInt("elytra.damage-per-boost.firework", elytraDamagePerFireworkBoost);
elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
} }
+ public static boolean chickenEggsHatchWhenDespawned = false;
+ private static void chickenSettings() {
+ chickenEggsHatchWhenDespawned = getBoolean("settings.mobs.chicken.eggs-hatch-when-despawned", chickenEggsHatchWhenDespawned);
+ }
+ +
public static int feedMushroomsToCows = 0; + public int chickenEggsHatchWhenDespawnedMax = 0;
private static void cowsSettings() { + public int chickenEggsHatchWhenDespawnedRange = 10;
feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows); + private void chickenSettings() {
+ chickenEggsHatchWhenDespawnedMax = getInt("mobs.chicken.eggs-hatch-when-despawned.max", chickenEggsHatchWhenDespawnedMax);
+ chickenEggsHatchWhenDespawnedRange = getInt("mobs.chicken.eggs-hatch-when-despawned.range", chickenEggsHatchWhenDespawnedRange);
+ }
}
-- --
2.24.0.rc1 2.24.0

View File

@@ -1,4 +1,4 @@
From 6797eea55509beb24f0826eed4ece9915772a2b2 Mon Sep 17 00:00:00 2001 From bfdb4c203220387e3757e4de3006e6b76773ba97 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com> From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 19 Dec 2019 16:59:46 -0600 Date: Thu, 19 Dec 2019 16:59:46 -0600
Subject: [PATCH] Add option for zombie villager transformation chance 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 diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f5283d7aa5..499bbe4ff2 100644 index 0e36f85fb1..c3e0a65c69 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -200,4 +200,13 @@ public class PurpurWorldConfig { @@ -207,4 +207,13 @@ public class PurpurWorldConfig {
elytraDamagePerFireworkBoost = getInt("elytra.damage-per-boost.firework", elytraDamagePerFireworkBoost); chickenEggsHatchWhenDespawnedMax = getInt("mobs.chicken.eggs-hatch-when-despawned.max", chickenEggsHatchWhenDespawnedMax);
elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); chickenEggsHatchWhenDespawnedRange = getInt("mobs.chicken.eggs-hatch-when-despawned.range", chickenEggsHatchWhenDespawnedRange);
} }
+ +
+ public double zombieVillagerTransformationChanceEasy = 0.0D; + public double zombieVillagerTransformationChanceEasy = 0.0D;