2020-05-06 11:48:49 +02:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2020-01-20 16:57:12 +01:00
From: AJMFactsheets <AJMFactsheets@gmail.com>
Date: Fri, 17 Jan 2020 17:17:54 -0600
Subject: [PATCH] Fix items not falling correctly
2020-01-20 17:04:39 +01:00
Since 1.14, Mojang has added an optimization which skips checking if
2020-01-20 16:57:12 +01:00
an item should fall every fourth tick.
However, Spigot's entity activation range class also has an
optimization which skips ticking active entities every fourth tick.
This can result in a state where an item will never properly fall
due to its move method never being called.
This patch resolves the conflict by offsetting checking an item's
move method from Spigot's entity activation range check.
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
2020-08-31 14:30:51 +02:00
index 574e2cce9b821e36bd0efee6d5fb79dde36246cb..bc4f84c8857aab45a69c915104de8d70b758698c 100644
2020-01-20 16:57:12 +01:00
--- a/src/main/java/net/minecraft/server/EntityItem.java
+++ b/src/main/java/net/minecraft/server/EntityItem.java
2020-08-25 04:22:08 +02:00
@@ -89,7 +89,7 @@ public class EntityItem extends Entity {
2020-01-20 16:57:12 +01:00
}
}
2020-08-25 04:22:08 +02:00
- if (!this.onGround || c(this.getMot()) > 9.999999747378752E-6D || (this.ticksLived + this.getId()) % 4 == 0) {
+ if (!this.onGround || c(this.getMot()) > 9.999999747378752E-6D || this.ticksLived % 4 == 0) { // Paper - Ensure checking item movement is always offset from Spigot's entity activation range check
2020-01-20 16:57:12 +01:00
this.move(EnumMoveType.SELF, this.getMot());
2020-08-25 04:22:08 +02:00
float f1 = 0.98F;
2020-01-20 16:57:12 +01:00