diff options
Diffstat (limited to '')
-rw-r--r-- | src/ClientHandle.cpp | 4 | ||||
-rw-r--r-- | src/Root.cpp | 10 | ||||
-rw-r--r-- | src/Root.h | 4 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 9644679d7..161bdeb9d 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -382,7 +382,7 @@ void cClientHandle::Authenticate(const AString & a_Name, const AString & a_UUID, // Send player list items SendPlayerListAddPlayer(*m_Player); World->BroadcastPlayerListAddPlayer(*m_Player); - World->SendPlayerList(m_Player); + cRoot::Get()->SendPlayerLists(m_Player); m_Player->Initialize(*World); m_State = csAuthenticated; @@ -1475,7 +1475,7 @@ void cClientHandle::HandleChat(const AString & a_Message) Msg.AddTextPart(AString("<") + m_Player->GetName() + "> ", Color); Msg.ParseText(Message); Msg.UnderlineUrls(); - m_Player->GetWorld()->BroadcastChat(Msg); + cRoot::Get()->BroadcastChat(Msg); } diff --git a/src/Root.cpp b/src/Root.cpp index b28e7c894..b60f6ae3a 100644 --- a/src/Root.cpp +++ b/src/Root.cpp @@ -558,6 +558,14 @@ void cRoot::SaveAllChunks(void) +void cRoot::SendPlayerLists(cPlayer * a_DestPlayer) +{ + for (WorldMap::iterator itr = m_WorldsByName.begin(), end = m_WorldsByName.end(); itr != end; ++itr) + { + itr->second->SendPlayerList(a_DestPlayer); + } // for itr - m_WorldsByName[] +} + void cRoot::BroadcastChat(const AString & a_Message, eMessageType a_ChatPrefix) @@ -582,8 +590,6 @@ void cRoot::BroadcastChat(const cCompositeChat & a_Message) - - bool cRoot::ForEachPlayer(cPlayerListCallback & a_Callback) { for (WorldMap::iterator itr = m_WorldsByName.begin(), itr2 = itr; itr != m_WorldsByName.end(); itr = itr2) diff --git a/src/Root.h b/src/Root.h index ab820427f..73fd6638c 100644 --- a/src/Root.h +++ b/src/Root.h @@ -145,6 +145,10 @@ public: /** Finds the player using it's complete username and calls the callback */ bool DoWithPlayer(const AString & a_PlayerName, cPlayerListCallback & a_Callback); + /** Send playerlist of all worlds to player */ + void SendPlayerLists(cPlayer * a_DestPlayer); + + // tolua_begin /// Sends a chat message to all connected clients (in all worlds) |