diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-03-31 17:08:39 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-03-31 17:08:39 +0300 |
commit | 13159c1a48690d4ede3dbabc7699ea3d49072860 (patch) | |
tree | 7a5458d911bbc0e13cdadf0afc6b63a904b4a785 /src/server.cpp | |
parent | 0fbef74f3159422bc4a299226ab05692218f2c3b (diff) | |
download | minetest-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.cpp | 8 |
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); |