diff options
author | Ciaran Gultnieks <ciaran@ciarang.com> | 2011-05-16 11:34:06 +0100 |
---|---|---|
committer | Ciaran Gultnieks <ciaran@ciarang.com> | 2011-05-16 11:34:06 +0100 |
commit | 7cdd988f88ae3fc5b1ca342c3c5e176eec0ba8f9 (patch) | |
tree | 569d55a5282b2c04888038c56dd1acd6f2a614a3 | |
parent | 50c48219a7ee6fe11566779f03e5e80361155b3f (diff) | |
download | minetest-7cdd988f88ae3fc5b1ca342c3c5e176eec0ba8f9.tar.gz minetest-7cdd988f88ae3fc5b1ca342c3c5e176eec0ba8f9.tar.bz2 minetest-7cdd988f88ae3fc5b1ca342c3c5e176eec0ba8f9.zip |
Better synchronisation of build/mine attempts when the player isn't allowed to
-rw-r--r-- | src/server.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server.cpp b/src/server.cpp index f77b4f3c6..338b528e7 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2174,8 +2174,6 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) { if(datasize < 17) return; - if((player->privs & PRIV_BUILD) == 0) - return; /* length: 17 [0] u16 command @@ -2281,6 +2279,10 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) cannot_remove_node = true; } + // Make sure the player is allowed to do it + if((player->privs & PRIV_BUILD) == 0) + cannot_remove_node = true; + /* If node can't be removed, set block to be re-sent to client and quit. @@ -2427,7 +2429,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) try{ // Don't add a node if this is not a free space MapNode n2 = m_env.getMap().getNode(p_over); - if(content_buildable_to(n2.d) == false) + if(content_buildable_to(n2.d) == false + || (player->privs & PRIV_BUILD) ==0) { // Client probably has wrong data. // Set block not sent, so that client will get |