diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-11-26 03:20:19 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-11-29 19:13:53 +0200 |
commit | 945d01fd9efe93e892a6a2be2467373e3c684300 (patch) | |
tree | ed5c1daac607992f4784b6085eeed3b28bfa73a4 /src/server.cpp | |
parent | d99d27dcbedee30e82f66ee76bf50b986ebfdc00 (diff) | |
download | minetest-945d01fd9efe93e892a6a2be2467373e3c684300.tar.gz minetest-945d01fd9efe93e892a6a2be2467373e3c684300.tar.bz2 minetest-945d01fd9efe93e892a6a2be2467373e3c684300.zip |
on_newplayer and on_respawnplayer callbacks
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/server.cpp b/src/server.cpp index 6cb125aa8..78b7e79bd 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -4348,9 +4348,13 @@ void Server::HandlePlayerHP(Player *player, s16 damage) void Server::RespawnPlayer(Player *player) { - v3f pos = findSpawnPos(m_env->getServerMap()); - player->setPosition(pos); player->hp = 20; + ServerRemotePlayer *srp = (ServerRemotePlayer*)player; + bool repositioned = scriptapi_on_respawnplayer(m_lua, srp); + if(!repositioned){ + v3f pos = findSpawnPos(m_env->getServerMap()); + player->setPosition(pos); + } SendMovePlayer(player); SendPlayerHP(player); } @@ -4617,9 +4621,7 @@ Player *Server::emergePlayer(const char *name, const char *password, u16 peer_id m_authmanager.setPrivs(name, stringToPrivs(g_settings->get("default_privs"))); - /* - Set player position - */ + /* Set player position */ infostream<<"Server: Finding spawn place for player \"" <<name<<"\""<<std::endl; @@ -4628,16 +4630,14 @@ Player *Server::emergePlayer(const char *name, const char *password, u16 peer_id player = new ServerRemotePlayer(m_env, pos, peer_id, name); - /* - Add player to environment - */ - + /* Add player to environment */ m_env->addPlayer(player); - /* - Add stuff to inventory - */ - + /* Run scripts */ + ServerRemotePlayer *srp = (ServerRemotePlayer*)player; + scriptapi_on_newplayer(m_lua, srp); + + /* Add stuff to inventory */ if(g_settings->getBool("creative_mode")) { // Warning: double code above |