From c5a06f7f212e5f5d0149318d2fc65d0ad7cfe0fe Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 20 Aug 2017 20:48:55 +0200 Subject: [PATCH] Chat connection is actually reaching the handler now --- .../Server_Common/Network/CommonNetwork.h | 2 ++ .../Server_Zone/Network/GameConnection.cpp | 6 +++--- .../Server_Zone/Network/GameConnection.h | 7 ++++--- src/servers/Server_Zone/Session.cpp | 18 ++++++++++++++++++ src/servers/Server_Zone/Session.h | 4 ++++ 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/servers/Server_Common/Network/CommonNetwork.h b/src/servers/Server_Common/Network/CommonNetwork.h index 8c6947bb..326664dc 100644 --- a/src/servers/Server_Common/Network/CommonNetwork.h +++ b/src/servers/Server_Common/Network/CommonNetwork.h @@ -226,6 +226,8 @@ namespace Packets { ReqCharDelete = 0x000A, ReqCharCreate = 0x000B, + TellChatHandler = 0x0064,// updated for sb + PingHandler = 0x0065,// updated for sb InitHandler = 0x0066,// updated for sb ChatHandler = 0x0067,// updated for sb diff --git a/src/servers/Server_Zone/Network/GameConnection.cpp b/src/servers/Server_Zone/Network/GameConnection.cpp index 78ed9073..4add3a46 100644 --- a/src/servers/Server_Zone/Network/GameConnection.cpp +++ b/src/servers/Server_Zone/Network/GameConnection.cpp @@ -297,16 +297,16 @@ void Core::Network::GameConnection::handlePackets( const Core::Network::Packets: m_pSession = session; // main connection, assinging it to the session - if( ipcHeader.connectionType == 1 ) + if( ipcHeader.connectionType == ConnectionType::Zone ) { g_log.info( "[" + std::string( id ) + "] Setting session for zone connection" ); session->setZoneConnection( pCon ); } // chat connection, assinging it to the session - else if( ipcHeader.connectionType == 2 ) + else if( ipcHeader.connectionType == ConnectionType::Chat ) { g_log.info( "[" + std::string( id ) + "] Setting session for chat connection" ); - // session->setClientChatConnection( pCon ); + session->setChatConnection( pCon ); } GamePacket pPe( 0x00, 0x18, 0, 0, 0x07 ); diff --git a/src/servers/Server_Zone/Network/GameConnection.h b/src/servers/Server_Zone/Network/GameConnection.h index 855a4f52..55717af6 100644 --- a/src/servers/Server_Zone/Network/GameConnection.h +++ b/src/servers/Server_Zone/Network/GameConnection.h @@ -17,10 +17,11 @@ namespace Core { namespace Network { -enum struct ConnectionType : uint8_t +enum ConnectionType : uint8_t { - Zone, - Chat, + Zone = 1, + Chat = 2, + Lobby = 3, None }; diff --git a/src/servers/Server_Zone/Session.cpp b/src/servers/Server_Zone/Session.cpp index 2b316f4f..5754e2eb 100644 --- a/src/servers/Server_Zone/Session.cpp +++ b/src/servers/Server_Zone/Session.cpp @@ -27,11 +27,23 @@ void Core::Session::setZoneConnection( Core::Network::GameConnectionPtr pZoneCon m_pZoneConnection = pZoneCon; } +void Core::Session::setChatConnection( Core::Network::GameConnectionPtr pChatCon ) +{ + pChatCon->m_conType = Network::ConnectionType::Chat; + m_pChatConnection = pChatCon; +} + Core::Network::GameConnectionPtr Core::Session::getZoneConnection() const { return m_pZoneConnection; } +Core::Network::GameConnectionPtr Core::Session::getChatConnection() const +{ + return m_pChatConnection; +} + + bool Core::Session::loadPlayer() { @@ -84,6 +96,12 @@ void Core::Session::update() m_pZoneConnection->processOutQueue(); } + if( m_pZoneConnection ) + { + m_pChatConnection->processInQueue(); + m_pChatConnection->processOutQueue(); + } + } Core::Entity::PlayerPtr Core::Session::getPlayer() const diff --git a/src/servers/Server_Zone/Session.h b/src/servers/Server_Zone/Session.h index f6b9eac8..d1aba601 100644 --- a/src/servers/Server_Zone/Session.h +++ b/src/servers/Server_Zone/Session.h @@ -18,7 +18,10 @@ namespace Core { void setZoneConnection( Network::GameConnectionPtr zoneCon ); + void setChatConnection( Network::GameConnectionPtr chatCon ); + Network::GameConnectionPtr getZoneConnection() const; + Network::GameConnectionPtr getChatConnection() const; uint32_t getLastDataTime() const; @@ -42,6 +45,7 @@ namespace Core { uint32_t m_lastDataTime; Network::GameConnectionPtr m_pZoneConnection; + Network::GameConnectionPtr m_pChatConnection; };