From 0b0075e6ad0b3110cabdfc92cedb0a24d2b5ec42 Mon Sep 17 00:00:00 2001 From: Xunto Date: Mon, 22 Aug 2016 22:21:48 +0400 Subject: [PATCH] Move on join and on leave messages to lua (#4460) --- builtin/game/misc.lua | 14 +++++++++++--- src/server.cpp | 30 ------------------------------ 2 files changed, 11 insertions(+), 33 deletions(-) diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua index 4773e001..d7164812 100644 --- a/builtin/game/misc.lua +++ b/builtin/game/misc.lua @@ -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() diff --git a/src/server.cpp b/src/server.cpp index 97a53f18..fb241f17 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -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)