geforkt von Mirrors/Paper
dc684c60d1
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
42 Zeilen
2.4 KiB
Diff
42 Zeilen
2.4 KiB
Diff
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 6fb7ec36f6f7a3021fac4b9e31fd333dfd5ea5e5..7b263fab4f0014400b3b8e7e33db32f9a125f6ba 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
|
|
@@ -314,7 +314,7 @@ 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
|
|
}
|
|
}
|
|
@@ -474,15 +474,18 @@ 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() {
|