mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 08:57:44 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: b75eeca0 Boost light task priority to ensure it doesnt hold up chunk loads 3d2bc848 Ensure VillagerTrades doesn't load async - fixes #3495 e470f1ef Add more information to Timing Reports f4a47db6 Improve Thread Pool usage to allow single threads for single cpu servers a4fe910f Fix sounds when using worldedit regen command 70ad51a8 Updated Upstream (Bukkit/CraftBukkit) d7cfa4fa Improve legacy format serialization more
66 lines
3.2 KiB
Diff
66 lines
3.2 KiB
Diff
From afadc70dec5429c8b819d659687f20feb6bc0f6c 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 | 4 ++++
|
|
2 files changed, 25 insertions(+)
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
|
|
index 2926fbb957..bbb9ca1efc 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 5b042a6098..647bece31f 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -262,11 +262,15 @@ public class PurpurWorldConfig {
|
|
public boolean chickenRidableInWater = false;
|
|
public boolean chickenRequireShiftToMount = true;
|
|
public boolean chickenDontLayEggsWhenRidden = false;
|
|
+ public int chickenEggsHatchWhenDespawnedMax = 0;
|
|
+ public int chickenEggsHatchWhenDespawnedRange = 10;
|
|
private void chickenSettings() {
|
|
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
|
|
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
|
|
chickenRequireShiftToMount = getBoolean("mobs.chicken.require-shift-to-mount", chickenRequireShiftToMount);
|
|
chickenDontLayEggsWhenRidden = getBoolean("mobs.chicken.dont-lay-eggs-when-ridden", chickenDontLayEggsWhenRidden);
|
|
+ chickenEggsHatchWhenDespawnedMax = getInt("mobs.chicken.eggs-hatch-when-despawned.max", chickenEggsHatchWhenDespawnedMax);
|
|
+ chickenEggsHatchWhenDespawnedRange = getInt("mobs.chicken.eggs-hatch-when-despawned.range", chickenEggsHatchWhenDespawnedRange);
|
|
}
|
|
|
|
public boolean codRidable = false;
|
|
--
|
|
2.24.0
|
|
|