[10815] Use in social lists API ObjectGuid form.

0 GUID_LOPART uses in code. :)
This commit is contained in:
VladimirMangos 2010-12-02 08:31:56 +03:00
parent 3c0b80dada
commit a8a7f3c796
13 changed files with 55 additions and 53 deletions

View file

@ -111,7 +111,7 @@ void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data)
} }
// OK result but not send invite // OK result but not send invite
if(player->GetSocial()->HasIgnore(GetPlayer()->GetGUIDLow())) if(player->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid()))
return; return;
if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam()) if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam())

View file

@ -623,7 +623,7 @@ void Channel::Invite(uint64 p, const char *newname)
} }
WorldPacket data; WorldPacket data;
if(!newp->GetSocial()->HasIgnore(GUID_LOPART(p))) if(!newp->GetSocial()->HasIgnore(p))
{ {
MakeInvite(&data, p); MakeInvite(&data, p);
SendToOne(&data, newp->GetGUID()); SendToOne(&data, newp->GetGUID());
@ -668,7 +668,7 @@ void Channel::SendToAll(WorldPacket *data, uint64 p)
Player *plr = sObjectMgr.GetPlayer(i->first); Player *plr = sObjectMgr.GetPlayer(i->first);
if(plr) if(plr)
{ {
if(!p || !plr->GetSocial()->HasIgnore(GUID_LOPART(p))) if(!p || !plr->GetSocial()->HasIgnore(p))
plr->GetSession()->SendPacket(data); plr->GetSession()->SendPacket(data);
} }
} }

View file

@ -724,7 +724,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder)
group->SendUpdate(); group->SendUpdate();
// friend status // friend status
sSocialMgr.SendFriendStatus(pCurrChar, FRIEND_ONLINE, pCurrChar->GetGUIDLow(), true); sSocialMgr.SendFriendStatus(pCurrChar, FRIEND_ONLINE, pCurrChar->GetObjectGuid(), true);
// Place character in world (and load zone) before some object loading // Place character in world (and load zone) before some object loading
pCurrChar->LoadCorpse(); pCurrChar->LoadCorpse();

View file

@ -87,7 +87,7 @@ void WorldSession::HandleGroupInviteOpcode( WorldPacket & recv_data )
return; return;
} }
// just ignore us // just ignore us
if(player->GetSocial()->HasIgnore(GetPlayer()->GetGUIDLow())) if(player->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid()))
{ {
SendPartyResult(PARTY_OP_INVITE, membername, ERR_IGNORING_YOU_S); SendPartyResult(PARTY_OP_INVITE, membername, ERR_IGNORING_YOU_S);
return; return;

View file

@ -559,7 +559,7 @@ void Guild::BroadcastToGuild(WorldSession *session, const std::string& msg, uint
{ {
Player *pl = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, itr->first)); Player *pl = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, itr->first));
if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_GCHATLISTEN) && !pl->GetSocial()->HasIgnore(session->GetPlayer()->GetGUIDLow()) ) if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_GCHATLISTEN) && !pl->GetSocial()->HasIgnore(session->GetPlayer()->GetObjectGuid()) )
pl->GetSession()->SendPacket(&data); pl->GetSession()->SendPacket(&data);
} }
} }
@ -576,7 +576,7 @@ void Guild::BroadcastToOfficers(WorldSession *session, const std::string& msg, u
Player *pl = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, itr->first)); Player *pl = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, itr->first));
if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_OFFCHATLISTEN) && !pl->GetSocial()->HasIgnore(session->GetPlayer()->GetGUIDLow())) if (pl && pl->GetSession() && HasRankRight(pl->GetRank(),GR_RIGHT_OFFCHATLISTEN) && !pl->GetSocial()->HasIgnore(session->GetPlayer()->GetObjectGuid()))
pl->GetSession()->SendPacket(&data); pl->GetSession()->SendPacket(&data);
} }
} }

View file

@ -89,7 +89,7 @@ void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket)
} }
// OK result but not send invite // OK result but not send invite
if(player->GetSocial()->HasIgnore(GetPlayer()->GetGUIDLow())) if(player->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid()))
return; return;
// not let enemies sign guild charter // not let enemies sign guild charter

View file

@ -474,7 +474,7 @@ void WorldSession::HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 acc
friendResult = FRIEND_SELF; friendResult = FRIEND_SELF;
else if(session->GetPlayer()->GetTeam() != team && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_ADD_FRIEND) && session->GetSecurity() < SEC_MODERATOR) else if(session->GetPlayer()->GetTeam() != team && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_ADD_FRIEND) && session->GetSecurity() < SEC_MODERATOR)
friendResult = FRIEND_ENEMY; friendResult = FRIEND_ENEMY;
else if(session->GetPlayer()->GetSocial()->HasFriend(friendLowGuid)) else if(session->GetPlayer()->GetSocial()->HasFriend(friendGuid))
friendResult = FRIEND_ALREADY; friendResult = FRIEND_ALREADY;
else else
{ {
@ -484,32 +484,32 @@ void WorldSession::HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 acc
else else
friendResult = FRIEND_ADDED_OFFLINE; friendResult = FRIEND_ADDED_OFFLINE;
if(!session->GetPlayer()->GetSocial()->AddToSocialList(friendLowGuid, false)) if(!session->GetPlayer()->GetSocial()->AddToSocialList(friendGuid, false))
{ {
friendResult = FRIEND_LIST_FULL; friendResult = FRIEND_LIST_FULL;
DEBUG_LOG( "WORLD: %s's friend list is full.", session->GetPlayer()->GetName()); DEBUG_LOG( "WORLD: %s's friend list is full.", session->GetPlayer()->GetName());
} }
session->GetPlayer()->GetSocial()->SetFriendNote(friendLowGuid, friendNote); session->GetPlayer()->GetSocial()->SetFriendNote(friendGuid, friendNote);
} }
} }
sSocialMgr.SendFriendStatus(session->GetPlayer(), friendResult, friendLowGuid, false); sSocialMgr.SendFriendStatus(session->GetPlayer(), friendResult, friendGuid, false);
DEBUG_LOG( "WORLD: Sent (SMSG_FRIEND_STATUS)" ); DEBUG_LOG( "WORLD: Sent (SMSG_FRIEND_STATUS)" );
} }
void WorldSession::HandleDelFriendOpcode( WorldPacket & recv_data ) void WorldSession::HandleDelFriendOpcode( WorldPacket & recv_data )
{ {
uint64 FriendGUID; uint64 friendGuid;
DEBUG_LOG( "WORLD: Received CMSG_DEL_FRIEND" ); DEBUG_LOG( "WORLD: Received CMSG_DEL_FRIEND" );
recv_data >> FriendGUID; recv_data >> friendGuid;
_player->GetSocial()->RemoveFromSocialList(GUID_LOPART(FriendGUID), false); _player->GetSocial()->RemoveFromSocialList(friendGuid, false);
sSocialMgr.SendFriendStatus(GetPlayer(), FRIEND_REMOVED, GUID_LOPART(FriendGUID), false); sSocialMgr.SendFriendStatus(GetPlayer(), FRIEND_REMOVED, friendGuid, false);
DEBUG_LOG( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" ); DEBUG_LOG( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" );
} }
@ -552,34 +552,34 @@ void WorldSession::HandleAddIgnoreOpcodeCallBack(QueryResult *result, uint32 acc
{ {
if (ignoreGuid == session->GetPlayer()->GetObjectGuid()) if (ignoreGuid == session->GetPlayer()->GetObjectGuid())
ignoreResult = FRIEND_IGNORE_SELF; ignoreResult = FRIEND_IGNORE_SELF;
else if (session->GetPlayer()->GetSocial()->HasIgnore(ignoreLowGuid)) else if (session->GetPlayer()->GetSocial()->HasIgnore(ignoreGuid))
ignoreResult = FRIEND_IGNORE_ALREADY; ignoreResult = FRIEND_IGNORE_ALREADY;
else else
{ {
ignoreResult = FRIEND_IGNORE_ADDED; ignoreResult = FRIEND_IGNORE_ADDED;
// ignore list full // ignore list full
if(!session->GetPlayer()->GetSocial()->AddToSocialList(ignoreLowGuid, true)) if(!session->GetPlayer()->GetSocial()->AddToSocialList(ignoreGuid, true))
ignoreResult = FRIEND_IGNORE_FULL; ignoreResult = FRIEND_IGNORE_FULL;
} }
} }
sSocialMgr.SendFriendStatus(session->GetPlayer(), ignoreResult, ignoreLowGuid, false); sSocialMgr.SendFriendStatus(session->GetPlayer(), ignoreResult, ignoreGuid, false);
DEBUG_LOG( "WORLD: Sent (SMSG_FRIEND_STATUS)" ); DEBUG_LOG( "WORLD: Sent (SMSG_FRIEND_STATUS)" );
} }
void WorldSession::HandleDelIgnoreOpcode( WorldPacket & recv_data ) void WorldSession::HandleDelIgnoreOpcode( WorldPacket & recv_data )
{ {
uint64 IgnoreGUID; uint64 ignoreGuid;
DEBUG_LOG( "WORLD: Received CMSG_DEL_IGNORE" ); DEBUG_LOG( "WORLD: Received CMSG_DEL_IGNORE" );
recv_data >> IgnoreGUID; recv_data >> ignoreGuid;
_player->GetSocial()->RemoveFromSocialList(GUID_LOPART(IgnoreGUID), true); _player->GetSocial()->RemoveFromSocialList(ignoreGuid, true);
sSocialMgr.SendFriendStatus(GetPlayer(), FRIEND_IGNORE_REMOVED, GUID_LOPART(IgnoreGUID), false); sSocialMgr.SendFriendStatus(GetPlayer(), FRIEND_IGNORE_REMOVED, ignoreGuid, false);
DEBUG_LOG( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" ); DEBUG_LOG( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" );
} }
@ -590,7 +590,7 @@ void WorldSession::HandleSetContactNotesOpcode( WorldPacket & recv_data )
ObjectGuid guid; ObjectGuid guid;
std::string note; std::string note;
recv_data >> guid >> note; recv_data >> guid >> note;
_player->GetSocial()->SetFriendNote(guid.GetCounter(), note); _player->GetSocial()->SetFriendNote(guid, note);
} }
void WorldSession::HandleBugOpcode( WorldPacket & recv_data ) void WorldSession::HandleBugOpcode( WorldPacket & recv_data )

View file

@ -48,7 +48,7 @@ uint32 PlayerSocial::GetNumberOfSocialsWithFlag(SocialFlag flag)
return counter; return counter;
} }
bool PlayerSocial::AddToSocialList(uint32 friend_lowguid, bool ignore) bool PlayerSocial::AddToSocialList(ObjectGuid friend_guid, bool ignore)
{ {
// check client limits // check client limits
if(ignore) if(ignore)
@ -66,25 +66,25 @@ bool PlayerSocial::AddToSocialList(uint32 friend_lowguid, bool ignore)
if(ignore) if(ignore)
flag = SOCIAL_FLAG_IGNORED; flag = SOCIAL_FLAG_IGNORED;
PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(friend_lowguid); PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(friend_guid.GetCounter());
if(itr != m_playerSocialMap.end()) if(itr != m_playerSocialMap.end())
{ {
CharacterDatabase.PExecute("UPDATE character_social SET flags = (flags | %u) WHERE guid = '%u' AND friend = '%u'", flag, m_playerLowGuid, friend_lowguid); CharacterDatabase.PExecute("UPDATE character_social SET flags = (flags | %u) WHERE guid = '%u' AND friend = '%u'", flag, m_playerLowGuid, friend_guid.GetCounter());
m_playerSocialMap[friend_lowguid].Flags |= flag; m_playerSocialMap[friend_guid.GetCounter()].Flags |= flag;
} }
else else
{ {
CharacterDatabase.PExecute("INSERT INTO character_social (guid, friend, flags) VALUES ('%u', '%u', '%u')", m_playerLowGuid, friend_lowguid, flag); CharacterDatabase.PExecute("INSERT INTO character_social (guid, friend, flags) VALUES ('%u', '%u', '%u')", m_playerLowGuid, friend_guid.GetCounter(), flag);
FriendInfo fi; FriendInfo fi;
fi.Flags |= flag; fi.Flags |= flag;
m_playerSocialMap[friend_lowguid] = fi; m_playerSocialMap[friend_guid.GetCounter()] = fi;
} }
return true; return true;
} }
void PlayerSocial::RemoveFromSocialList(uint32 friend_lowguid, bool ignore) void PlayerSocial::RemoveFromSocialList(ObjectGuid friend_guid, bool ignore)
{ {
PlayerSocialMap::iterator itr = m_playerSocialMap.find(friend_lowguid); PlayerSocialMap::iterator itr = m_playerSocialMap.find(friend_guid.GetCounter());
if(itr == m_playerSocialMap.end()) // not exist if(itr == m_playerSocialMap.end()) // not exist
return; return;
@ -95,18 +95,18 @@ void PlayerSocial::RemoveFromSocialList(uint32 friend_lowguid, bool ignore)
itr->second.Flags &= ~flag; itr->second.Flags &= ~flag;
if(itr->second.Flags == 0) if(itr->second.Flags == 0)
{ {
CharacterDatabase.PExecute("DELETE FROM character_social WHERE guid = '%u' AND friend = '%u'", m_playerLowGuid, friend_lowguid); CharacterDatabase.PExecute("DELETE FROM character_social WHERE guid = '%u' AND friend = '%u'", m_playerLowGuid, friend_guid.GetCounter());
m_playerSocialMap.erase(itr); m_playerSocialMap.erase(itr);
} }
else else
{ {
CharacterDatabase.PExecute("UPDATE character_social SET flags = (flags & ~%u) WHERE guid = '%u' AND friend = '%u'", flag, m_playerLowGuid, friend_lowguid); CharacterDatabase.PExecute("UPDATE character_social SET flags = (flags & ~%u) WHERE guid = '%u' AND friend = '%u'", flag, m_playerLowGuid, friend_guid.GetCounter());
} }
} }
void PlayerSocial::SetFriendNote(uint32 friend_lowguid, std::string note) void PlayerSocial::SetFriendNote(ObjectGuid friend_guid, std::string note)
{ {
PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(friend_lowguid); PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(friend_guid.GetCounter());
if(itr == m_playerSocialMap.end()) // not exist if(itr == m_playerSocialMap.end()) // not exist
return; return;
@ -114,8 +114,8 @@ void PlayerSocial::SetFriendNote(uint32 friend_lowguid, std::string note)
std::string safe_note = note; std::string safe_note = note;
CharacterDatabase.escape_string(safe_note); CharacterDatabase.escape_string(safe_note);
CharacterDatabase.PExecute("UPDATE character_social SET note = '%s' WHERE guid = '%u' AND friend = '%u'", safe_note.c_str(), m_playerLowGuid, friend_lowguid); CharacterDatabase.PExecute("UPDATE character_social SET note = '%s' WHERE guid = '%u' AND friend = '%u'", safe_note.c_str(), m_playerLowGuid, friend_guid.GetCounter());
m_playerSocialMap[friend_lowguid].Note = note; m_playerSocialMap[friend_guid.GetCounter()].Note = note;
} }
void PlayerSocial::SendSocialList() void PlayerSocial::SendSocialList()
@ -153,17 +153,17 @@ void PlayerSocial::SendSocialList()
DEBUG_LOG("WORLD: Sent SMSG_CONTACT_LIST"); DEBUG_LOG("WORLD: Sent SMSG_CONTACT_LIST");
} }
bool PlayerSocial::HasFriend(uint32 friend_guid) bool PlayerSocial::HasFriend(ObjectGuid friend_guid)
{ {
PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(friend_guid); PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(friend_guid.GetCounter());
if(itr != m_playerSocialMap.end()) if(itr != m_playerSocialMap.end())
return itr->second.Flags & SOCIAL_FLAG_FRIEND; return itr->second.Flags & SOCIAL_FLAG_FRIEND;
return false; return false;
} }
bool PlayerSocial::HasIgnore(uint32 ignore_guid) bool PlayerSocial::HasIgnore(ObjectGuid ignore_guid)
{ {
PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(ignore_guid); PlayerSocialMap::const_iterator itr = m_playerSocialMap.find(ignore_guid.GetCounter());
if(itr != m_playerSocialMap.end()) if(itr != m_playerSocialMap.end())
return itr->second.Flags & SOCIAL_FLAG_IGNORED; return itr->second.Flags & SOCIAL_FLAG_IGNORED;
return false; return false;
@ -227,8 +227,10 @@ void SocialMgr::MakeFriendStatusPacket(FriendsResult result, uint32 guid, WorldP
*data << ObjectGuid(HIGHGUID_PLAYER, guid); *data << ObjectGuid(HIGHGUID_PLAYER, guid);
} }
void SocialMgr::SendFriendStatus(Player *player, FriendsResult result, uint32 friend_lowguid, bool broadcast) void SocialMgr::SendFriendStatus(Player *player, FriendsResult result, ObjectGuid friend_guid, bool broadcast)
{ {
uint32 friend_lowguid = friend_guid.GetCounter();
FriendInfo fi; FriendInfo fi;
WorldPacket data; WorldPacket data;

View file

@ -120,14 +120,14 @@ class PlayerSocial
PlayerSocial(); PlayerSocial();
~PlayerSocial(); ~PlayerSocial();
// adding/removing // adding/removing
bool AddToSocialList(uint32 friend_guid, bool ignore); bool AddToSocialList(ObjectGuid friend_guid, bool ignore);
void RemoveFromSocialList(uint32 friend_guid, bool ignore); void RemoveFromSocialList(ObjectGuid friend_guid, bool ignore);
void SetFriendNote(uint32 friend_guid, std::string note); void SetFriendNote(ObjectGuid friend_guid, std::string note);
// Packet send's // Packet send's
void SendSocialList(); void SendSocialList();
// Misc // Misc
bool HasFriend(uint32 friend_guid); bool HasFriend(ObjectGuid friend_guid);
bool HasIgnore(uint32 ignore_guid); bool HasIgnore(ObjectGuid ignore_guid);
void SetPlayerGuid(ObjectGuid guid) { m_playerLowGuid = guid.GetCounter(); } void SetPlayerGuid(ObjectGuid guid) { m_playerLowGuid = guid.GetCounter(); }
uint32 GetNumberOfSocialsWithFlag(SocialFlag flag); uint32 GetNumberOfSocialsWithFlag(SocialFlag flag);
private: private:
@ -146,7 +146,7 @@ class SocialMgr
void GetFriendInfo(Player *player, uint32 friendGUID, FriendInfo &friendInfo); void GetFriendInfo(Player *player, uint32 friendGUID, FriendInfo &friendInfo);
// Packet management // Packet management
void MakeFriendStatusPacket(FriendsResult result, uint32 friend_guid, WorldPacket *data); void MakeFriendStatusPacket(FriendsResult result, uint32 friend_guid, WorldPacket *data);
void SendFriendStatus(Player *player, FriendsResult result, uint32 friend_guid, bool broadcast); void SendFriendStatus(Player *player, FriendsResult result, ObjectGuid friend_guid, bool broadcast);
void BroadcastToFriendListers(Player *player, WorldPacket *packet); void BroadcastToFriendListers(Player *player, WorldPacket *packet);
// Loading // Loading
PlayerSocial *LoadFromDB(QueryResult *result, ObjectGuid guid); PlayerSocial *LoadFromDB(QueryResult *result, ObjectGuid guid);

View file

@ -6842,7 +6842,7 @@ void Spell::EffectDuel(SpellEffectIndex eff_idx)
Player *target = (Player*)unitTarget; Player *target = (Player*)unitTarget;
// caster or target already have requested duel // caster or target already have requested duel
if( caster->duel || target->duel || !target->GetSocial() || target->GetSocial()->HasIgnore(caster->GetGUIDLow()) ) if( caster->duel || target->duel || !target->GetSocial() || target->GetSocial()->HasIgnore(caster->GetObjectGuid()) )
return; return;
// Players can only fight a duel with each other outside (=not inside dungeons and not in capital cities) // Players can only fight a duel with each other outside (=not inside dungeons and not in capital cities)

View file

@ -597,7 +597,7 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
return; return;
} }
if (pOther->GetSocial()->HasIgnore(GetPlayer()->GetGUIDLow())) if (pOther->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid()))
{ {
SendTradeStatus(TRADE_STATUS_IGNORE_YOU); SendTradeStatus(TRADE_STATUS_IGNORE_YOU);
return; return;

View file

@ -424,7 +424,7 @@ void WorldSession::LogoutPlayer(bool Save)
_player->GetGroup()->SendUpdate(); _player->GetGroup()->SendUpdate();
///- Broadcast a logout message to the player's friends ///- Broadcast a logout message to the player's friends
sSocialMgr.SendFriendStatus(_player, FRIEND_OFFLINE, _player->GetGUIDLow(), true); sSocialMgr.SendFriendStatus(_player, FRIEND_OFFLINE, _player->GetObjectGuid(), true);
sSocialMgr.RemovePlayerSocial (_player->GetGUIDLow ()); sSocialMgr.RemovePlayerSocial (_player->GetGUIDLow ());
///- Remove the player from the world ///- Remove the player from the world

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10814" #define REVISION_NR "10815"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__