diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2015-02-08 02:51:49 +0100 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-01-25 23:36:24 -0300 |
commit | 62b62ddd63942090b23f8881f2c6ad93d0a251dc (patch) | |
tree | 7daffa0192e15a7a87e6a3a71e11a5171a357f22 /src/server/game/Handlers/MiscHandler.cpp | |
parent | f57132b795a097a2c4c863a8153b0c1be5e008c0 (diff) |
Core/Packets: updated some contactlist packets
(cherry picked from commit e01bb918875f88ede211fc13ff3908e30249de33)
Conflicts:
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
src/server/game/Entities/Player/SocialMgr.cpp
src/server/game/Entities/Player/SocialMgr.h
src/server/game/Handlers/MiscHandler.cpp
src/server/game/Server/Packets/MiscPackets.cpp
src/server/game/Server/Protocol/Opcodes.cpp
src/server/game/Server/Protocol/Opcodes.h
src/server/game/Server/WorldSession.cpp
src/server/game/Server/WorldSession.h
src/server/shared/Database/Implementation/CharacterDatabase.cpp
src/server/shared/Database/Implementation/CharacterDatabase.h
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 9043eb7cc2c..4a80c2f07df 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -34,7 +34,6 @@ #include "Object.h" #include "Battleground.h" #include "OutdoorPvP.h" -#include "SocialMgr.h" #include "AccountMgr.h" #include "DBCEnums.h" #include "ScriptMgr.h" @@ -514,188 +513,6 @@ void WorldSession::HandleStandStateChangeOpcode(WorldPacket& recvData) _player->SetStandState(animstate); } -void WorldSession::HandleContactListOpcode(WorldPacket& recvData) -{ - uint32 unk; - recvData >> unk; - TC_LOG_DEBUG("network", "WORLD: Received CMSG_CONTACT_LIST - Unk: %d", unk); - _player->GetSocial()->SendSocialList(_player); -} - -void WorldSession::HandleAddFriendOpcode(WorldPacket& recvData) -{ - TC_LOG_DEBUG("network", "WORLD: Received CMSG_ADD_FRIEND"); - - std::string friendName = GetTrinityString(LANG_FRIEND_IGNORE_UNKNOWN); - std::string friendNote; - - recvData >> friendName; - - recvData >> friendNote; - - if (!normalizePlayerName(friendName)) - return; - - TC_LOG_DEBUG("network", "WORLD: %s asked to add friend : '%s'", - GetPlayer()->GetName().c_str(), friendName.c_str()); - - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_RACE_ACC_BY_NAME); - - stmt->setString(0, friendName); - - _addFriendCallback.SetParam(friendNote); - _addFriendCallback.SetFutureResult(CharacterDatabase.AsyncQuery(stmt)); -} - -void WorldSession::HandleAddFriendOpcodeCallBack(PreparedQueryResult result, std::string const& friendNote) -{ - if (!GetPlayer()) - return; - - ObjectGuid friendGuid; - uint32 friendAccountId; - uint32 team; - FriendsResult friendResult; - - friendResult = FRIEND_NOT_FOUND; - - if (result) - { - Field* fields = result->Fetch(); - - friendGuid = ObjectGuid(HighGuid::Player, 0, fields[0].GetUInt32()); - team = Player::TeamForRace(fields[1].GetUInt8()); - friendAccountId = fields[2].GetUInt32(); - - if (HasPermission(rbac::RBAC_PERM_ALLOW_GM_FRIEND) || AccountMgr::IsPlayerAccount(AccountMgr::GetSecurity(friendAccountId, realm.Id.Realm))) - { - if (friendGuid) - { - if (friendGuid == GetPlayer()->GetGUID()) - friendResult = FRIEND_SELF; - else if (GetPlayer()->GetTeam() != team && !HasPermission(rbac::RBAC_PERM_TWO_SIDE_ADD_FRIEND)) - friendResult = FRIEND_ENEMY; - else if (GetPlayer()->GetSocial()->HasFriend(friendGuid.GetCounter())) - friendResult = FRIEND_ALREADY; - else - { - Player* pFriend = ObjectAccessor::FindPlayer(friendGuid); - if (pFriend && pFriend->IsVisibleGloballyFor(GetPlayer())) - friendResult = FRIEND_ADDED_ONLINE; - else - friendResult = FRIEND_ADDED_OFFLINE; - if (!GetPlayer()->GetSocial()->AddToSocialList(friendGuid.GetCounter(), false)) - { - friendResult = FRIEND_LIST_FULL; - TC_LOG_DEBUG("network", "WORLD: %s's friend list is full.", GetPlayer()->GetName().c_str()); - } - } - GetPlayer()->GetSocial()->SetFriendNote(friendGuid.GetCounter(), friendNote); - } - } - } - - sSocialMgr->SendFriendStatus(GetPlayer(), friendResult, friendGuid.GetCounter(), false); - - TC_LOG_DEBUG("network", "WORLD: Sent (SMSG_FRIEND_STATUS)"); -} - -void WorldSession::HandleDelFriendOpcode(WorldPacket& recvData) -{ - ObjectGuid FriendGUID; - - TC_LOG_DEBUG("network", "WORLD: Received CMSG_DEL_FRIEND"); - - recvData >> FriendGUID; - - _player->GetSocial()->RemoveFromSocialList(FriendGUID.GetCounter(), false); - - sSocialMgr->SendFriendStatus(GetPlayer(), FRIEND_REMOVED, FriendGUID.GetCounter(), false); - - TC_LOG_DEBUG("network", "WORLD: Sent motd (SMSG_FRIEND_STATUS)"); -} - -void WorldSession::HandleAddIgnoreOpcode(WorldPacket& recvData) -{ - TC_LOG_DEBUG("network", "WORLD: Received CMSG_ADD_IGNORE"); - - std::string ignoreName = GetTrinityString(LANG_FRIEND_IGNORE_UNKNOWN); - - recvData >> ignoreName; - - if (!normalizePlayerName(ignoreName)) - return; - - TC_LOG_DEBUG("network", "WORLD: %s asked to Ignore: '%s'", - GetPlayer()->GetName().c_str(), ignoreName.c_str()); - - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_BY_NAME); - - stmt->setString(0, ignoreName); - - _addIgnoreCallback = CharacterDatabase.AsyncQuery(stmt); -} - -void WorldSession::HandleAddIgnoreOpcodeCallBack(PreparedQueryResult result) -{ - if (!GetPlayer()) - return; - - ObjectGuid IgnoreGuid; - FriendsResult ignoreResult; - - ignoreResult = FRIEND_IGNORE_NOT_FOUND; - - if (result) - { - IgnoreGuid = ObjectGuid(HighGuid::Player, (*result)[0].GetUInt32()); - - if (IgnoreGuid) - { - if (IgnoreGuid == GetPlayer()->GetGUID()) //not add yourself - ignoreResult = FRIEND_IGNORE_SELF; - else if (GetPlayer()->GetSocial()->HasIgnore(IgnoreGuid.GetCounter())) - ignoreResult = FRIEND_IGNORE_ALREADY; - else - { - ignoreResult = FRIEND_IGNORE_ADDED; - - // ignore list full - if (!GetPlayer()->GetSocial()->AddToSocialList(IgnoreGuid.GetCounter(), true)) - ignoreResult = FRIEND_IGNORE_FULL; - } - } - } - - sSocialMgr->SendFriendStatus(GetPlayer(), ignoreResult, IgnoreGuid.GetCounter(), false); - - TC_LOG_DEBUG("network", "WORLD: Sent (SMSG_FRIEND_STATUS)"); -} - -void WorldSession::HandleDelIgnoreOpcode(WorldPacket& recvData) -{ - ObjectGuid IgnoreGUID; - - TC_LOG_DEBUG("network", "WORLD: Received CMSG_DEL_IGNORE"); - - recvData >> IgnoreGUID; - - _player->GetSocial()->RemoveFromSocialList(IgnoreGUID.GetCounter(), true); - - sSocialMgr->SendFriendStatus(GetPlayer(), FRIEND_IGNORE_REMOVED, IgnoreGUID.GetCounter(), false); - - TC_LOG_DEBUG("network", "WORLD: Sent motd (SMSG_FRIEND_STATUS)"); -} - -void WorldSession::HandleSetContactNotesOpcode(WorldPacket& recvData) -{ - TC_LOG_DEBUG("network", "CMSG_SET_CONTACT_NOTES"); - ObjectGuid guid; - std::string note; - recvData >> guid >> note; - _player->GetSocial()->SetFriendNote(guid.GetCounter(), note); -} - void WorldSession::HandleBugOpcode(WorldPacket& recvData) { uint32 suggestion, contentlen, typelen; |