37 for (PlayerSocialMap::const_iterator itr = _playerSocialMap.begin(); itr != _playerSocialMap.end(); ++itr)
38 if ((itr->second.Flags & flag) != 0)
53 itr->second.Flags |= flag;
54 itr->second.WowAccountGuid = accountGuid;
58 stmt->
setUInt8(0, itr->second.Flags);
66 itr =
_playerSocialMap.emplace(std::piecewise_construct, std::forward_as_tuple(friendGuid), std::forward_as_tuple()).first;
68 itr->second.Flags |= flag;
69 itr->second.WowAccountGuid = accountGuid;
92 itr->second.Flags &= ~flag;
94 if (!itr->second.Flags)
103 ObjectGuid accountGuid = itr->second.WowAccountGuid;
111 return social.second.Flags & SOCIAL_FLAG_IGNORED && social.second.WowAccountGuid == accountGuid;
122 stmt->
setUInt8(0, itr->second.Flags);
136 itr->second.Note = note;
160 uint8 contactFlags = v.second.Flags;
161 if (!(contactFlags &
flags))
177 contact.
Guid = v.first;
182 contact.
Notes = v.second.Note;
183 contact.
Status = v.second.Status;
184 contact.
AreaID = v.second.Area;
185 contact.
Level = v.second.Level;
186 contact.
ClassID = v.second.Class;
196 return (itr->second.Flags &
flags) != 0;
227 friendInfo.
Level = 0;
228 friendInfo.
Class = 0;
236 friendInfo.
Note = itr->second.Note;
253 else if (target->
isAFK())
279 friendStatus.
Guid = friendGuid;
298 PlayerSocial::PlayerSocialMap::const_iterator itr2 = itr->second._playerSocialMap.find(player->
GetGUID());
299 if (itr2 != itr->second._playerSocialMap.end() && (itr2->second.Flags &
SOCIAL_FLAG_FRIEND) != 0)
327 Field* fields = result->Fetch();
329 ObjectGuid friendGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
330 ObjectGuid friendAccountGuid = ObjectGuid::Create<HighGuid::WowAccount>(
uint64(fields[1].GetUInt32()));
337 while (result->NextRow());
@ CHAR_UPD_CHARACTER_SOCIAL_NOTE
@ CHAR_UPD_CHARACTER_SOCIAL_FLAGS
@ CHAR_DEL_CHARACTER_SOCIAL
@ CHAR_INS_CHARACTER_SOCIAL
std::shared_ptr< PreparedResultSet > PreparedQueryResult
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Role Based Access Control related classes definition.
FriendsResult
Results of friend related commands.
#define SOCIALMGR_IGNORE_LIMIT
#define SOCIALMGR_FRIEND_LIMIT
void utf8truncate(std::string &utf8str, size_t len)
ObjectGuid const & GetGUID() const
Class used to access individual fields of database query result.
uint8 GetUInt8() const noexcept
LowType GetCounter() const
void SetPlayerGUID(ObjectGuid const &guid)
ObjectGuid const & GetPlayerGUID() const
GuidUnorderedSet _ignoredAccounts
PlayerSocialMap _playerSocialMap
bool AddToSocialList(ObjectGuid const &guid, ObjectGuid const &accountGuid, SocialFlag flag)
uint32 GetNumberOfSocialsWithFlag(SocialFlag flag)
bool _HasContact(ObjectGuid const &guid, SocialFlag flags)
void SetFriendNote(ObjectGuid const &guid, std::string const ¬e)
bool HasIgnore(ObjectGuid const &ignoreGuid, ObjectGuid const &ignoreAccountGuid)
bool HasFriend(ObjectGuid const &friendGuid)
void RemoveFromSocialList(ObjectGuid const &guid, SocialFlag flag)
void SendSocialList(Player *player, uint32 flags)
PlayerSocial * GetSocial() const
void SendDirectMessage(WorldPacket const *data) const
WorldSession * GetSession() const
bool IsVisibleGloballyFor(Player const *player) const
void setString(uint8 index, std::string &&value)
void setUInt64(uint8 index, uint64 value)
void setUInt8(uint8 index, uint8 value)
static SocialMgr * instance()
static void GetFriendInfo(Player *player, ObjectGuid const &friendGUID, FriendInfo &friendInfo)
PlayerSocial * LoadFromDB(PreparedQueryResult result, ObjectGuid const &guid)
void SendFriendStatus(Player *player, FriendsResult result, ObjectGuid const &friendGuid, bool broadcast=false)
void BroadcastToFriendListers(Player *player, WorldPacket const *packet)
uint32 VirtualRealmAddress
WorldPacket const * Write() override
ObjectGuid WowAccountGuid
Player session in the World.
AccountTypes GetSecurity() const
uint32 GetRecruiterId() const
bool HasPermission(uint32 permissionId)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
uint32 GetAccountId() const
uint32 GetVirtualRealmAddress()
@ CONFIG_GM_LEVEL_IN_WHO_LIST
TC_GAME_API Player * FindPlayer(ObjectGuid const &)
@ RBAC_PERM_WHO_SEE_ALL_SEC_LEVELS
@ RBAC_PERM_TWO_SIDE_WHO_LIST
ObjectGuid WowAccountGuid