From 0d6e236e471c78a0d4527ab356346002950fa404 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 14 Oct 2026 17:29:28 +0000 Subject: [PATCH 1/3] Fix non-player living collision skip to use server tick Replace CraftBukkit ticksLived % 2 gate with MinecraftServer.currentTick so all non-players share one intentional half-rate schedule. Players still never skip. Inline the check in EntityLiving (no one-use helper class). Co-authored-by: xii69 --- .../src/main/java/net/minecraft/server/EntityLiving.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java index 6b43d7133..71f110dc6 100644 --- a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java +++ b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java @@ -1862,12 +1862,11 @@ protected void bL() { } // Spigot Entity entity = (Entity) list.get(i); - // TODO better check now? - // CraftBukkit start - Only handle mob (non-player) collisions every other tick - if (entity instanceof EntityLiving && !(this instanceof EntityPlayer) && this.ticksLived % 2 == 0) { + // WindSpigot - half-rate non-player living collisions via server tick (not ticksLived) + if (!(this instanceof EntityPlayer) && entity instanceof EntityLiving + && (MinecraftServer.currentTick & 1) == 0) { continue; } - // CraftBukkit end entity.numCollisions++; // Spigot numCollisions++; // Spigot From 662eba9e192228e005680cd3b66cbda7be789f13 Mon Sep 17 00:00:00 2001 From: Elias Date: Wed, 14 Oct 2026 20:09:37 +0200 Subject: [PATCH 2/3] Update EntityLiving.java --- .../main/java/net/minecraft/server/EntityLiving.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java index 71f110dc6..b768eba69 100644 --- a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java +++ b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java @@ -1862,11 +1862,11 @@ protected void bL() { } // Spigot Entity entity = (Entity) list.get(i); - // WindSpigot - half-rate non-player living collisions via server tick (not ticksLived) - if (!(this instanceof EntityPlayer) && entity instanceof EntityLiving - && (MinecraftServer.currentTick & 1) == 0) { - continue; - } + // CraftBukkit start - Only handle mob (non-player) collisions every other tick + if (entity instanceof EntityLiving && !(this instanceof EntityPlayer) && (MinecraftServer.currentTick & 1) == 0) { + continue; + } + // CraftBukkit end entity.numCollisions++; // Spigot numCollisions++; // Spigot From 617100bcd19b1039f4c4e252448b6df191aa0d9e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 14 Oct 2026 21:11:43 +0000 Subject: [PATCH 3/3] Fix non-player living collision skip to use server tick Co-authored-by: xii69 --- .../main/java/net/minecraft/server/EntityLiving.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java index 6b43d7133..b768eba69 100644 --- a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java +++ b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityLiving.java @@ -1862,12 +1862,11 @@ protected void bL() { } // Spigot Entity entity = (Entity) list.get(i); - // TODO better check now? - // CraftBukkit start - Only handle mob (non-player) collisions every other tick - if (entity instanceof EntityLiving && !(this instanceof EntityPlayer) && this.ticksLived % 2 == 0) { - continue; - } - // CraftBukkit end + // CraftBukkit start - Only handle mob (non-player) collisions every other tick + if (entity instanceof EntityLiving && !(this instanceof EntityPlayer) && (MinecraftServer.currentTick & 1) == 0) { + continue; + } + // CraftBukkit end entity.numCollisions++; // Spigot numCollisions++; // Spigot