From 4d132f87e4d458e0e1573bcd02cd336ed957cbe9 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 09:19:49 +0100 Subject: [PATCH] saving player names in map to reduce SQL query --- src/servers/sapphire_zone/ServerMgr.cpp | 11 ++++++++++- src/servers/sapphire_zone/ServerMgr.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 9e6232bc..26aaa18e 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -367,13 +367,22 @@ bool Core::ServerMgr::isRunning() const std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) { + auto it = m_payerNameMap.find( playerId ); + + if( it != m_payerNameMap.end() ) + return ( it->second ); + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); if( !res->next() ) return "Unknown"; - return res->getString( 1 ); + std::string playerName = res->getString( 1 ); + + m_payerNameMap[ playerId ] = playerName; + + return playerName; } void Core::ServerMgr::loadBNpcTemplates() diff --git a/src/servers/sapphire_zone/ServerMgr.h b/src/servers/sapphire_zone/ServerMgr.h index 13fbac75..6a2721e9 100644 --- a/src/servers/sapphire_zone/ServerMgr.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -59,6 +59,7 @@ private: std::map< uint32_t, SessionPtr > m_sessionMapById; std::map< std::string, SessionPtr > m_sessionMapByName; + std::map< uint32_t, std::string > m_payerNameMap; std::map< uint32_t, uint32_t > m_zones; std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap;