From 945d01fd9efe93e892a6a2be2467373e3c684300 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 26 Nov 2011 03:20:19 +0200 Subject: on_newplayer and on_respawnplayer callbacks --- src/server.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/server.cpp') 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 \"" <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 -- cgit v1.2.3