forked from Mirrorlandia_minetest/minetest
Better synchronisation of build/mine attempts when the player isn't allowed to
This commit is contained in:
parent
50c48219a7
commit
7cdd988f88
@ -2174,8 +2174,6 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
{
|
{
|
||||||
if(datasize < 17)
|
if(datasize < 17)
|
||||||
return;
|
return;
|
||||||
if((player->privs & PRIV_BUILD) == 0)
|
|
||||||
return;
|
|
||||||
/*
|
/*
|
||||||
length: 17
|
length: 17
|
||||||
[0] u16 command
|
[0] u16 command
|
||||||
@ -2281,6 +2279,10 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
cannot_remove_node = true;
|
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
|
If node can't be removed, set block to be re-sent to
|
||||||
client and quit.
|
client and quit.
|
||||||
@ -2427,7 +2429,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
try{
|
try{
|
||||||
// Don't add a node if this is not a free space
|
// Don't add a node if this is not a free space
|
||||||
MapNode n2 = m_env.getMap().getNode(p_over);
|
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.
|
// Client probably has wrong data.
|
||||||
// Set block not sent, so that client will get
|
// Set block not sent, so that client will get
|
||||||
|
Loading…
Reference in New Issue
Block a user