summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-03-31 17:08:39 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-03-31 17:08:39 +0300
commit13159c1a48690d4ede3dbabc7699ea3d49072860 (patch)
tree7a5458d911bbc0e13cdadf0afc6b63a904b4a785 /src/server.cpp
parent0fbef74f3159422bc4a299226ab05692218f2c3b (diff)
downloadminetest-13159c1a48690d4ede3dbabc7699ea3d49072860.tar.gz
minetest-13159c1a48690d4ede3dbabc7699ea3d49072860.tar.bz2
minetest-13159c1a48690d4ede3dbabc7699ea3d49072860.zip
Add server-side enforcement of the 'fast' privilege; also fix client checking 'fly' instead of 'fast'
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server.cpp b/src/server.cpp
index d6357e416..b015e103e 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -4315,13 +4315,16 @@ void Server::reportPrivsModified(const std::string &name)
i = m_clients.getIterator();
i.atEnd() == false; i++){
RemoteClient *client = i.getNode()->getValue();
- SendPlayerPrivileges(client->peer_id);
+ Player *player = m_env->getPlayer(client->peer_id);
+ reportPrivsModified(player->getName());
}
} else {
Player *player = m_env->getPlayer(name.c_str());
if(!player)
return;
SendPlayerPrivileges(player->peer_id);
+ player->getPlayerSAO()->updatePrivileges(
+ getPlayerEffectivePrivs(name));
}
}
@@ -4520,7 +4523,8 @@ PlayerSAO* Server::emergePlayer(const char *name, u16 peer_id)
/*
Create a new player active object
*/
- PlayerSAO *playersao = new PlayerSAO(m_env, player, peer_id);
+ PlayerSAO *playersao = new PlayerSAO(m_env, player, peer_id,
+ getPlayerEffectivePrivs(player->getName()));
/* Add object to environment */
m_env->addActiveObject(playersao);