aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-09-25 17:08:55 +0200
committerMachiavelli <none@none>2010-09-25 17:08:55 +0200
commita312a667cb06a42d0eb97e85b5b10ada7fa77d4e (patch)
treef2ef68d0f08d8c34219e08dfdae0a6da018dab5a
parent5aaef4601a59ad9381e8251944d47a11f66f12fd (diff)
Core/Player: Correctly send social list to player on login. Fixes display of number of online friends in the icon on the chat pane.
Fixes issue #3807. --HG-- branch : trunk
-rw-r--r--src/server/game/Entities/Player/Player.cpp3
-rw-r--r--src/server/game/Entities/Player/SocialMgr.cpp3
-rw-r--r--src/server/game/Entities/Player/SocialMgr.h2
-rw-r--r--src/server/game/Server/Protocol/Handlers/MiscHandler.cpp2
4 files changed, 5 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 98193cdd998..fe166a1b099 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -20978,7 +20978,8 @@ void Player::SetGroup(Group *group, int8 subgroup)
void Player::SendInitialPacketsBeforeAddToMap()
{
- GetSocial()->SendSocialList();
+ /// Pass 'this' as argument because we're not stored in ObjectAccessor yet
+ GetSocial()->SendSocialList(this);
// guild bank list wtf?
diff --git a/src/server/game/Entities/Player/SocialMgr.cpp b/src/server/game/Entities/Player/SocialMgr.cpp
index e80fa300ca5..f224b18407d 100644
--- a/src/server/game/Entities/Player/SocialMgr.cpp
+++ b/src/server/game/Entities/Player/SocialMgr.cpp
@@ -115,9 +115,8 @@ void PlayerSocial::SetFriendNote(uint32 friend_guid, std::string note)
m_playerSocialMap[friend_guid].Note = note;
}
-void PlayerSocial::SendSocialList()
+void PlayerSocial::SendSocialList(Player* plr)
{
- Player *plr = sObjectMgr.GetPlayer(GetPlayerGUID());
if (!plr)
return;
diff --git a/src/server/game/Entities/Player/SocialMgr.h b/src/server/game/Entities/Player/SocialMgr.h
index c5e7db50f67..5bcc025f76f 100644
--- a/src/server/game/Entities/Player/SocialMgr.h
+++ b/src/server/game/Entities/Player/SocialMgr.h
@@ -126,7 +126,7 @@ class PlayerSocial
void RemoveFromSocialList(uint32 friend_guid, bool ignore);
void SetFriendNote(uint32 friend_guid, std::string note);
// Packet send's
- void SendSocialList();
+ void SendSocialList(Player* plr);
// Misc
bool HasFriend(uint32 friend_guid);
bool HasIgnore(uint32 ignore_guid);
diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp
index 935fe523621..fd3485834cf 100644
--- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp
@@ -530,7 +530,7 @@ void WorldSession::HandleContactListOpcode(WorldPacket & recv_data)
uint32 unk;
recv_data >> unk;
sLog.outDebug("unk value is %u", unk);
- _player->GetSocial()->SendSocialList();
+ _player->GetSocial()->SendSocialList(_player);
}
void WorldSession::HandleAddFriendOpcode(WorldPacket & recv_data)