Move on join and on leave messages to lua (#4460)
authorXunto <xunto@users.noreply.github.com>
Mon, 22 Aug 2016 18:21:48 +0000 (22:21 +0400)
committerest31 <est31@users.noreply.github.com>
Mon, 22 Aug 2016 18:21:48 +0000 (20:21 +0200)
builtin/game/misc.lua
src/server.cpp

index 4773e0012ec242af9aeb6cdf1afc6ede56a209e6..d7164812aaa4c5046bcb1c0fa6f23b8e2171aab0 100644 (file)
@@ -87,11 +87,19 @@ end
 local player_list = {}
 
 core.register_on_joinplayer(function(player)
-       player_list[player:get_player_name()] = player
+       local player_name = player:get_player_name()
+       player_list[player_name] = player
+       core.chat_send_all("*** " .. player_name .. " joined the game.")
 end)
 
-core.register_on_leaveplayer(function(player)
-       player_list[player:get_player_name()] = nil
+core.register_on_leaveplayer(function(player, timed_out)
+       local player_name = player:get_player_name()
+       player_list[player_name] = nil
+       local announcement = "*** " ..  player_name .. " left the game."
+       if timed_out then
+               announcement = announcement .. " (timed out)"
+       end
+       core.chat_send_all(announcement)
 end)
 
 function core.get_connected_players()
index 97a53f189e05e3c3c4f1c815b7f291f1c341dade..fb241f1799dfffc3b7ee909f2800a6e963c6bb59 100644 (file)
@@ -1118,23 +1118,6 @@ PlayerSAO* Server::StageTwoClientInit(u16 peer_id)
        if(!m_simple_singleplayer_mode) {
                // Send information about server to player in chat
                SendChatMessage(peer_id, getStatusString());
-
-               // Send information about joining in chat
-               {
-                       std::string name = "unknown";
-                       Player *player = m_env->getPlayer(peer_id);
-                       if(player != NULL)
-                               name = player->getName();
-
-                       std::wstring message;
-                       message += L"*** ";
-                       message += narrow_to_wide(name);
-                       message += L" joined the game.";
-                       SendChatMessage(PEER_ID_INEXISTENT,message);
-                       if (m_admin_chat)
-                               m_admin_chat->outgoing_queue.push_back(
-                                       new ChatEventNick(CET_NICK_ADD, name));
-               }
        }
        Address addr = getPeerAddress(player->peer_id);
        std::string ip_str = addr.serializeString();
@@ -2660,19 +2643,6 @@ void Server::DeleteClient(u16 peer_id, ClientDeletionReason reason)
 
                Player *player = m_env->getPlayer(peer_id);
 
-               // Collect information about leaving in chat
-               {
-                       if(player != NULL && reason != CDR_DENY)
-                       {
-                               std::wstring name = narrow_to_wide(player->getName());
-                               message += L"*** ";
-                               message += name;
-                               message += L" left the game.";
-                               if(reason == CDR_TIMEOUT)
-                                       message += L" (timed out)";
-                       }
-               }
-
                /* Run scripts and remove from environment */
                {
                        if(player != NULL)