From dc556091df8dac200dbf35ced69b17462422f475 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Thu, 25 Apr 2024 09:06:13 -0700
Subject: [PATCH] readd fix bee aging patch

---
 .../server/Fix-bees-aging-inside-hives.patch  | 41 +++++++++++++++
 .../0693-Fix-bees-aging-inside-hives.patch    | 51 -------------------
 2 files changed, 41 insertions(+), 51 deletions(-)
 create mode 100644 patches/server/Fix-bees-aging-inside-hives.patch
 delete mode 100644 removed-patches-1-20-5/0693-Fix-bees-aging-inside-hives.patch

diff --git a/patches/server/Fix-bees-aging-inside-hives.patch b/patches/server/Fix-bees-aging-inside-hives.patch
new file mode 100644
index 0000000000..bf13c7fbe8
--- /dev/null
+++ b/patches/server/Fix-bees-aging-inside-hives.patch
@@ -0,0 +1,41 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <jake.m.potrebic@gmail.com>
+Date: Sat, 21 Aug 2021 21:54:16 -0700
+Subject: [PATCH] Fix bees aging inside hives
+
+Fixes bees incorrectly being aged up due to upstream's
+resetting the ticks inside hive on a failed release
+
+diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
++++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+@@ -0,0 +0,0 @@ public class BeehiveBlockEntity extends BlockEntity {
+                     iterator.remove();
+                     // CraftBukkit start
+                 } else {
+-                    tileentitybeehive_hivebee.ticksInHive = tileentitybeehive_hivebee.occupant.minTicksInHive / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable
++                    tileentitybeehive_hivebee.exitTickCounter = tileentitybeehive_hivebee.occupant.minTicksInHive / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable // Paper - Fix bees aging inside hives; use exitTickCounter to keep actual bee life
+                     // CraftBukkit end
+                 }
+             }
+@@ -0,0 +0,0 @@ public class BeehiveBlockEntity extends BlockEntity {
+     private static class BeeData {
+ 
+         private final BeehiveBlockEntity.Occupant occupant;
++        private int exitTickCounter; // Paper - Fix bees aging inside hives; separate counter for checking if bee should exit to reduce exit attempts
+         private int ticksInHive;
+ 
+         BeeData(BeehiveBlockEntity.Occupant data) {
+             this.occupant = data;
+             this.ticksInHive = data.ticksInHive();
++            this.exitTickCounter = this.ticksInHive; // Paper - Fix bees aging inside hives
+         }
+ 
+         public boolean tick() {
+-            return this.ticksInHive++ > this.occupant.minTicksInHive;
++            this.ticksInHive++; // Paper - Fix bees aging inside hives
++            return this.exitTickCounter++ > this.occupant.minTicksInHive; // Paper - Fix bees aging inside hives
+         }
+ 
+         public BeehiveBlockEntity.Occupant toOccupant() {
diff --git a/removed-patches-1-20-5/0693-Fix-bees-aging-inside-hives.patch b/removed-patches-1-20-5/0693-Fix-bees-aging-inside-hives.patch
deleted file mode 100644
index 773c92da75..0000000000
--- a/removed-patches-1-20-5/0693-Fix-bees-aging-inside-hives.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <jake.m.potrebic@gmail.com>
-Date: Sat, 21 Aug 2021 21:54:16 -0700
-Subject: [PATCH] Fix bees aging inside hives
-
-Fixes bees incorrectly being aged up due to upstream's
-resetting the ticks inside hive on a failed release
-
-TODO: Test if still needed
-
-diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
-index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
---- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
-+++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
-@@ -0,0 +0,0 @@ public class BeehiveBlockEntity extends BlockEntity {
- 
-         for (Iterator iterator = bees.iterator(); iterator.hasNext(); ++tileentitybeehive_hivebee.ticksInHive) {
-             tileentitybeehive_hivebee = (BeehiveBlockEntity.BeeData) iterator.next();
--            if (tileentitybeehive_hivebee.ticksInHive > tileentitybeehive_hivebee.minOccupationTicks) {
-+            if (tileentitybeehive_hivebee.exitTickCounter > tileentitybeehive_hivebee.minOccupationTicks) { // Paper - Fix bees aging inside hives; use exitTickCounter
-                 BeehiveBlockEntity.BeeReleaseStatus tileentitybeehive_releasestatus = tileentitybeehive_hivebee.entityData.getBoolean("HasNectar") ? BeehiveBlockEntity.BeeReleaseStatus.HONEY_DELIVERED : BeehiveBlockEntity.BeeReleaseStatus.BEE_RELEASED;
- 
-                 if (BeehiveBlockEntity.releaseOccupant(world, pos, state, tileentitybeehive_hivebee, (List) null, tileentitybeehive_releasestatus, flowerPos)) {
-@@ -0,0 +0,0 @@ public class BeehiveBlockEntity extends BlockEntity {
-                     iterator.remove();
-                     // CraftBukkit start
-                 } else {
--                    tileentitybeehive_hivebee.ticksInHive = tileentitybeehive_hivebee.minOccupationTicks / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable
-+                    tileentitybeehive_hivebee.exitTickCounter = tileentitybeehive_hivebee.minOccupationTicks / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable // Paper - Fix bees aging inside hives; use exitTickCounter to keep actual bee life
-                     // CraftBukkit end
-                 }
-             }
-+            tileentitybeehive_hivebee.exitTickCounter++; // Paper - Fix bees aging inside hives
-         }
- 
-         if (flag) {
-@@ -0,0 +0,0 @@ public class BeehiveBlockEntity extends BlockEntity {
- 
-         final CompoundTag entityData;
-         int ticksInHive;
-+        int exitTickCounter; // Paper - Fix bees aging inside hives; separate counter for checking if bee should exit to reduce exit attempts
-         final int minOccupationTicks;
- 
-         BeeData(CompoundTag entityData, int ticksInHive, int minOccupationTicks) {
-             BeehiveBlockEntity.removeIgnoredBeeTags(entityData);
-             this.entityData = entityData;
-             this.ticksInHive = ticksInHive;
-+            this.exitTickCounter = ticksInHive; // Paper - Fix bees aging inside hives
-             this.minOccupationTicks = minOccupationTicks;
-         }
-     }