From d49ce751ba6f8f2eb171633cea30a1119935f8c7 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Thu, 11 Nov 2021 21:02:29 +0000 Subject: Miscellaneous fixes (#5320) * Protocol: update Abilities flags + Add Spectator handling * BioGen: move include * ClientHandle: rename Respawn packet dimension check flag * Make it clearer what it's doing. * ClientHandle: move ProcessProtocolIn calls to World * Player: remove some redundant initialisation * Player: UpdateCapabilities enables flight for spectators * Produce growth: improve comments * ClientHandle: run unload checks using delta time * Fix forgotten initialisation of time member --- src/World.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/World.cpp') diff --git a/src/World.cpp b/src/World.cpp index 3b52bd9aa..94fc0ba00 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -1028,6 +1028,12 @@ void cWorld::Tick(std::chrono::milliseconds a_Dt, std::chrono::milliseconds a_La BroadcastPlayerListUpdatePing(); } + // Process all clients' buffered actions: + for (const auto Player : m_Players) + { + Player->GetClientHandle()->ProcessProtocolIn(); + } + TickQueuedChunkDataSets(); TickQueuedBlocks(); m_ChunkMap.Tick(a_Dt); @@ -1234,7 +1240,7 @@ void cWorld::TickQueuedEntityAdditions(void) decltype(m_EntitiesToAdd) EntitiesToAdd; { cCSLock Lock(m_CSEntitiesToAdd); - EntitiesToAdd = std::move(m_EntitiesToAdd); + std::swap(EntitiesToAdd, m_EntitiesToAdd); } // Ensures m_Players manipulation happens under the chunkmap lock. -- cgit v1.2.3