Fix creative mode double block break on single click

This commit is contained in:
MCbabel 2026-03-06 00:56:41 +01:00
parent eed770b121
commit 76d5ba8e3a

View file

@ -133,6 +133,9 @@ void MultiPlayerGameMode::startDestroyBlock(int x, int y, int z, int face)
if (localPlayerMode->isCreative()) if (localPlayerMode->isCreative())
{ {
// Skip if we just broke a block — prevents double-break on single clicks
if (destroyDelay > 0) return;
connection->send(shared_ptr<PlayerActionPacket>( new PlayerActionPacket(PlayerActionPacket::START_DESTROY_BLOCK, x, y, z, face) )); connection->send(shared_ptr<PlayerActionPacket>( new PlayerActionPacket(PlayerActionPacket::START_DESTROY_BLOCK, x, y, z, face) ));
creativeDestroyBlock(minecraft, this, x, y, z, face); creativeDestroyBlock(minecraft, this, x, y, z, face);
destroyDelay = 5; destroyDelay = 5;
@ -178,6 +181,7 @@ void MultiPlayerGameMode::stopDestroyBlock()
isDestroying = false; isDestroying = false;
destroyProgress = 0; destroyProgress = 0;
destroyDelay = 0;
minecraft->level->destroyTileProgress(minecraft->player->entityId, xDestroyBlock, yDestroyBlock, zDestroyBlock, -1); minecraft->level->destroyTileProgress(minecraft->player->entityId, xDestroyBlock, yDestroyBlock, zDestroyBlock, -1);
} }