diff --git a/Spigot-Server-Patches/0425-Fix-items-not-falling-correctly.patch b/Spigot-Server-Patches/0425-Fix-items-not-falling-correctly.patch new file mode 100644 index 0000000000..44404b1ce4 --- /dev/null +++ b/Spigot-Server-Patches/0425-Fix-items-not-falling-correctly.patch @@ -0,0 +1,32 @@ +From e748f07aa4a2d6c1e2b85f64bc9505f8a0163bb8 Mon Sep 17 00:00:00 2001 +From: AJMFactsheets +Date: Fri, 17 Jan 2020 17:17:54 -0600 +Subject: [PATCH] Fix items not falling correctly + +Since 1.14, Mojang has added an optimization which skips checking if +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 +index e61af3f5..30a7843b 100644 +--- a/src/main/java/net/minecraft/server/EntityItem.java ++++ b/src/main/java/net/minecraft/server/EntityItem.java +@@ -86,7 +86,7 @@ public class EntityItem extends Entity { + } + } + +- if (!this.onGround || b(this.getMot()) > 9.999999747378752E-6D || (this.ticksLived + this.getId()) % 4 == 0) { ++ if (!this.onGround || b(this.getMot()) > 9.999999747378752E-6D || this.ticksLived % 4 == 3) { // Paper - Ensure checking item movement is always offset from Spigot's entity activation range check + this.move(EnumMoveType.SELF, this.getMot()); + float f = 0.98F; + +-- +2.17.1 +