From 071c11d1f79fdfe67abccc1ea099056c5e6d8f36 Mon Sep 17 00:00:00 2001 From: itsRevela Date: Thu, 26 Mar 2026 10:56:33 -0500 Subject: [PATCH] Fix pistons permanently breaking server-wide on dedicated servers triggerEvent() set ignoreUpdate to true at the start but three early return paths skipped the reset at the end. Once any of these paths was hit, the TLS flag stayed true permanently, blocking all piston neighbor updates for the rest of the server session. --- Minecraft.World/PistonBaseTile.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Minecraft.World/PistonBaseTile.cpp b/Minecraft.World/PistonBaseTile.cpp index e8e2a7138..530cbf73b 100644 --- a/Minecraft.World/PistonBaseTile.cpp +++ b/Minecraft.World/PistonBaseTile.cpp @@ -218,10 +218,12 @@ bool PistonBaseTile::triggerEvent(Level *level, int x, int y, int z, int param1, if (extend && param1 == TRIGGER_CONTRACT) { level->setData(x, y, z, facing | EXTENDED_BIT, UPDATE_CLIENTS); + ignoreUpdate(false); return false; } else if (!extend && param1 == TRIGGER_EXTEND) { + ignoreUpdate(false); return false; } } @@ -247,6 +249,7 @@ bool PistonBaseTile::triggerEvent(Level *level, int x, int y, int z, int param1, } else { + ignoreUpdate(false); return false; } PIXEndNamedEvent();