34 if ((itr->second.Flags & flag) != 0)
49 itr->second.Flags |= flag;
53 stmt->
setUInt8(0, itr->second.Flags);
81 itr->second.Flags &= ~flag;
83 if (!itr->second.Flags)
98 stmt->
setUInt8(0, itr->second.Flags);
112 itr->second.Note = note;
136 uint8 contactFlags = v.second.Flags;
137 if (!(contactFlags &
flags))
153 contact.
Guid = v.first;
155 contact.
Notes = v.second.Note;
156 contact.
Status = v.second.Status;
157 contact.
AreaID = v.second.Area;
158 contact.
Level = v.second.Level;
159 contact.
ClassID = v.second.Class;
169 return (itr->second.Flags &
flags) != 0;
197 friendInfo.
Level = 0;
198 friendInfo.
Class = 0;
206 friendInfo.
Note = itr->second.Note;
223 else if (target->
isAFK())
248 friendStatus.
Guid = friendGuid;
266 PlayerSocial::PlayerSocialMap::const_iterator itr2 = itr->second._playerSocialMap.find(player->
GetGUID());
267 if (itr2 != itr->second._playerSocialMap.end() && (itr2->second.Flags &
SOCIAL_FLAG_FRIEND) != 0)
295 Field* fields = result->Fetch();
297 ObjectGuid friendGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32());
302 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)
Class used to access individual fields of database query result.
LowType GetCounter() const
static ObjectGuid GetGUID(Object const *o)
void SetPlayerGUID(ObjectGuid const &guid)
ObjectGuid const & GetPlayerGUID() const
bool HasIgnore(ObjectGuid const &ignoreGuid)
PlayerSocialMap _playerSocialMap
uint32 GetNumberOfSocialsWithFlag(SocialFlag flag)
bool _HasContact(ObjectGuid const &guid, SocialFlag flags)
bool AddToSocialList(ObjectGuid const &guid, SocialFlag flag)
void SetFriendNote(ObjectGuid const &guid, std::string const ¬e)
bool HasFriend(ObjectGuid const &friendGuid)
void RemoveFromSocialList(ObjectGuid const &guid, SocialFlag flag)
void SendSocialList(Player *player, uint32 flags)
void SendDirectMessage(WorldPacket const *data) const
WorldSession * GetSession() const
bool IsVisibleGloballyFor(Player const *player) const
PlayerSocial * GetSocial()
void setUInt32(uint8 index, uint32 value)
void setUInt8(uint8 index, uint8 value)
void setString(uint8 index, std::string const &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)
WorldPacket const * Write() override
Player session in the World.
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
AccountTypes GetSecurity() const
uint32 GetRecruiterId() const
bool HasPermission(uint32 permissionId)
uint32 GetAccountId() const
@ 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