diff options
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/src/server.cpp b/src/server.cpp index fb2e0db95..a20e82856 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -696,11 +696,13 @@ void Server::AsyncRunStep(bool initial_step) std::map<v3s16, MapBlock*> modified_blocks; m_env->getServerMap().transformLiquids(modified_blocks, m_env); - /* - Set the modified blocks unsent for all the clients - */ if (!modified_blocks.empty()) { - SetBlocksNotSent(modified_blocks); + MapEditEvent event; + event.type = MEET_OTHER; + for (const auto &pair : modified_blocks) { + event.modified_blocks.insert(pair.first); + } + m_env->getMap().dispatchEvent(event); } } m_clients.step(dtime); @@ -1253,17 +1255,6 @@ void Server::onMapEditEvent(const MapEditEvent &event) m_unsent_map_edit_queue.push(new MapEditEvent(event)); } -void Server::SetBlocksNotSent(std::map<v3s16, MapBlock *>& block) -{ - std::vector<session_t> clients = m_clients.getClientIDs(); - ClientInterface::AutoLock clientlock(m_clients); - // Set the modified blocks unsent for all the clients - for (const session_t client_id : clients) { - if (RemoteClient *client = m_clients.lockedGetClientNoEx(client_id)) - client->SetBlocksNotSent(block); - } -} - void Server::peerAdded(con::Peer *peer) { verbosestream<<"Server::peerAdded(): peer->id=" |