summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-26 03:20:19 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:53 +0200
commit945d01fd9efe93e892a6a2be2467373e3c684300 (patch)
treeed5c1daac607992f4784b6085eeed3b28bfa73a4 /src/server.cpp
parentd99d27dcbedee30e82f66ee76bf50b986ebfdc00 (diff)
downloadminetest-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.cpp26
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