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

@@ -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>
Date: Fri, 29 Nov 2019 23:47:42 -0600
Subject: [PATCH] Despawn egg hatches chicken
---
.../java/net/minecraft/server/EntityItem.java | 18 ++++++++++++++++++
.../java/net/pl3x/purpur/PurpurConfig.java | 5 +++++
2 files changed, 23 insertions(+)
.../java/net/minecraft/server/EntityItem.java | 21 +++++++++++++++++++
.../net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++
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
index e61af3f5eb..b9ad1ff70e 100644
index e61af3f5eb..184b2a015a 100644
--- a/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
+ // Purpur start
+ @Override
+ public void die() {
+ if (!dead && net.pl3x.purpur.PurpurConfig.chickenEggsHatchWhenDespawned) {
+ if (!dead && world.purpurConfig.chickenEggsHatchWhenDespawnedMax > 0) {
+ ItemStack item = getItemStack();
+ if (item != null && item.getItem() == Items.EGG) {
+ EntityChicken chicken = EntityTypes.CHICKEN.create(world);
+ if (chicken != null) {
+ chicken.setPosition(locX(), locY(), locZ());
+ chicken.setAge(-24000);
+ world.addEntity(chicken, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG);
+ int range = world.purpurConfig.chickenEggsHatchWhenDespawnedRange;
+ if (world.getEntitiesByClass(EntityChicken.class, new AxisAlignedBB(locX() - range, locY() - range, locZ() - range, locX() + range, locY() + range, locZ() + range)).size() < world.purpurConfig.chickenEggsHatchWhenDespawnedMax) {
+ EntityChicken chicken = EntityTypes.CHICKEN.create(world);
+ if (chicken != null) {
+ 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() {
Vec3D vec3d = this.getMot();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b5f12373a9..efdf01e98c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -203,6 +203,11 @@ public class PurpurConfig {
armorstandStepHeight = (float) getDouble("settings.armorstand.step-height", armorstandStepHeight);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c618169db3..e54f5dcfd4 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);
}
+ public static boolean chickenEggsHatchWhenDespawned = false;
+ private static void chickenSettings() {
+ chickenEggsHatchWhenDespawned = getBoolean("settings.mobs.chicken.eggs-hatch-when-despawned", chickenEggsHatchWhenDespawned);
+ }
+
public static int feedMushroomsToCows = 0;
private static void cowsSettings() {
feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows);
+ 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);
+ }
}
--
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>
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 f5283d7aa5..499bbe4ff2 100644
index 0e36f85fb1..c3e0a65c69 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -200,4 +200,13 @@ public class PurpurWorldConfig {
elytraDamagePerFireworkBoost = getInt("elytra.damage-per-boost.firework", elytraDamagePerFireworkBoost);
elytraDamagePerTridentBoost = getInt("elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
@@ -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);
}
+
+ public double zombieVillagerTransformationChanceEasy = 0.0D;