mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 01:17:42 +01:00
64 lines
2.9 KiB
Diff
64 lines
2.9 KiB
Diff
From 43b0b6e7711d55097bcedaa9bab727228aeb324b 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 | 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..184b2a015a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityItem.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityItem.java
|
|
@@ -165,6 +165,27 @@ public class EntityItem extends Entity {
|
|
}
|
|
// Spigot end
|
|
|
|
+ // Purpur start
|
|
+ @Override
|
|
+ public void die() {
|
|
+ if (!dead && world.purpurConfig.chickenEggsHatchWhenDespawnedMax > 0) {
|
|
+ ItemStack item = getItemStack();
|
|
+ if (item != null && item.getItem() == Items.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);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ super.die();
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
private void u() {
|
|
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 006dcd225c..63215502e2 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -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
|
|
|