From e77735f9a5985a99dc4f2d2cad8dfb35e4346437 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 23:48:54 -0600 Subject: [PATCH] Despawn egg hatches chicken --- docs/source/configuration.rst | 5 ++ .../0085-Despawn-egg-hatches-chicken.patch | 58 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 patches/server/0085-Despawn-egg-hatches-chicken.patch diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index f40cfcad3..3d54d6896 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -148,6 +148,11 @@ mobs - **default**: true - **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 * feed-mushrooms-for-mooshroom - **default**: 0 diff --git a/patches/server/0085-Despawn-egg-hatches-chicken.patch b/patches/server/0085-Despawn-egg-hatches-chicken.patch new file mode 100644 index 000000000..dd5042632 --- /dev/null +++ b/patches/server/0085-Despawn-egg-hatches-chicken.patch @@ -0,0 +1,58 @@ +From 19dfa417405272bbab21d90f3fd0a88828ebb0c7 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 + +--- + .../java/net/minecraft/server/EntityItem.java | 18 ++++++++++++++++++ + .../java/net/pl3x/purpur/PurpurConfig.java | 5 +++++ + 2 files changed, 23 insertions(+) + +diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java +index df26cef6a6..4849f600a1 100644 +--- a/src/main/java/net/minecraft/server/EntityItem.java ++++ b/src/main/java/net/minecraft/server/EntityItem.java +@@ -164,6 +164,24 @@ public class EntityItem extends Entity { + } + // Spigot end + ++ // Purpur start ++ @Override ++ public void die() { ++ if (!dead && net.pl3x.purpur.PurpurConfig.chickenEggsHatchWhenDespawned) { ++ 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); ++ } ++ } ++ } ++ super.die(); ++ } ++ // Purpur end ++ + private void v() { + 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); + } + ++ 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); +-- +2.24.0.rc1 +