aboutsummaryrefslogtreecommitdiff
path: root/src/game/MiscHandler.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-05 09:17:57 -0600
committermegamage <none@none>2009-03-05 09:17:57 -0600
commitc1ea842cf77506236803b0524e930bcbaa6e1e8b (patch)
treefeacc9d96f562fd0daf3432392fe98cb61b54692 /src/game/MiscHandler.cpp
parent19ce0bb39ff3d4d5568410e29fa5372623735fbb (diff)
parent465b10fc60a1f135ec26f09fc88d673a1e73a95d (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/game/MiscHandler.cpp')
-rw-r--r--src/game/MiscHandler.cpp104
1 files changed, 58 insertions, 46 deletions
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index c55590d6b67..3a582f96f27 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -487,42 +487,48 @@ void WorldSession::HandleAddFriendOpcode( WorldPacket & recv_data )
void WorldSession::HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 accountId, std::string friendNote)
{
- if(!result)
- return;
-
- uint64 friendGuid = MAKE_NEW_GUID((*result)[0].GetUInt32(), 0, HIGHGUID_PLAYER);
- uint32 team = Player::TeamForRace((*result)[1].GetUInt8());
-
- delete result;
-
+ uint64 friendGuid;
+ uint32 team;
+ FriendsResult friendResult;
+
WorldSession * session = sWorld.FindSession(accountId);
+
if(!session || !session->GetPlayer())
return;
+
+ friendResult = FRIEND_NOT_FOUND;
+ friendGuid = 0;
- FriendsResult friendResult = FRIEND_NOT_FOUND;
- if(friendGuid)
+ if(result)
{
- if(friendGuid==session->GetPlayer()->GetGUID())
- friendResult = FRIEND_SELF;
- else if(session->GetPlayer()->GetTeam() != team && !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND) && session->GetSecurity() < SEC_MODERATOR)
- friendResult = FRIEND_ENEMY;
- else if(session->GetPlayer()->GetSocial()->HasFriend(GUID_LOPART(friendGuid)))
- friendResult = FRIEND_ALREADY;
- else
+ friendGuid = MAKE_NEW_GUID((*result)[0].GetUInt32(), 0, HIGHGUID_PLAYER);
+ team = Player::TeamForRace((*result)[1].GetUInt8());
+
+ delete result;
+
+ if(friendGuid)
{
- Player* pFriend = ObjectAccessor::FindPlayer(friendGuid);
- if( pFriend && pFriend->IsInWorld() && pFriend->IsVisibleGloballyFor(session->GetPlayer()))
- friendResult = FRIEND_ADDED_ONLINE;
+ if(friendGuid==session->GetPlayer()->GetGUID())
+ friendResult = FRIEND_SELF;
+ else if(session->GetPlayer()->GetTeam() != team && !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND) && session->GetSecurity() < SEC_MODERATOR)
+ friendResult = FRIEND_ENEMY;
+ else if(session->GetPlayer()->GetSocial()->HasFriend(GUID_LOPART(friendGuid)))
+ friendResult = FRIEND_ALREADY;
else
- friendResult = FRIEND_ADDED_OFFLINE;
-
- if(!session->GetPlayer()->GetSocial()->AddToSocialList(GUID_LOPART(friendGuid), false))
{
- friendResult = FRIEND_LIST_FULL;
- sLog.outDebug( "WORLD: %s's friend list is full.", session->GetPlayer()->GetName());
- }
+ Player* pFriend = ObjectAccessor::FindPlayer(friendGuid);
+ if( pFriend && pFriend->IsInWorld() && pFriend->IsVisibleGloballyFor(session->GetPlayer()))
+ friendResult = FRIEND_ADDED_ONLINE;
+ else
+ friendResult = FRIEND_ADDED_OFFLINE;
+ if(!session->GetPlayer()->GetSocial()->AddToSocialList(GUID_LOPART(friendGuid), false))
+ {
+ friendResult = FRIEND_LIST_FULL;
+ sLog.outDebug( "WORLD: %s's friend list is full.", session->GetPlayer()->GetName());
+ }
- session->GetPlayer()->GetSocial()->SetFriendNote(GUID_LOPART(friendGuid), friendNote);
+ session->GetPlayer()->GetSocial()->SetFriendNote(GUID_LOPART(friendGuid), friendNote);
+ }
}
}
@@ -571,31 +577,37 @@ void WorldSession::HandleAddIgnoreOpcode( WorldPacket & recv_data )
void WorldSession::HandleAddIgnoreOpcodeCallBack(QueryResult *result, uint32 accountId)
{
- if(!result)
- return;
-
- uint64 IgnoreGuid = MAKE_NEW_GUID((*result)[0].GetUInt32(), 0, HIGHGUID_PLAYER);
-
- delete result;
-
+ uint64 IgnoreGuid;
+ FriendsResult ignoreResult;
+
WorldSession * session = sWorld.FindSession(accountId);
+
if(!session || !session->GetPlayer())
return;
+
+ ignoreResult = FRIEND_IGNORE_NOT_FOUND;
+ IgnoreGuid = 0;
- FriendsResult ignoreResult = FRIEND_IGNORE_NOT_FOUND;
- if(IgnoreGuid)
+ if(result)
{
- if(IgnoreGuid==session->GetPlayer()->GetGUID()) //not add yourself
- ignoreResult = FRIEND_IGNORE_SELF;
- else if( session->GetPlayer()->GetSocial()->HasIgnore(GUID_LOPART(IgnoreGuid)) )
- ignoreResult = FRIEND_IGNORE_ALREADY;
- else
- {
- ignoreResult = FRIEND_IGNORE_ADDED;
+ IgnoreGuid = MAKE_NEW_GUID((*result)[0].GetUInt32(), 0, HIGHGUID_PLAYER);
- // ignore list full
- if(!session->GetPlayer()->GetSocial()->AddToSocialList(GUID_LOPART(IgnoreGuid), true))
- ignoreResult = FRIEND_IGNORE_FULL;
+ delete result;
+
+ if(IgnoreGuid)
+ {
+ if(IgnoreGuid==session->GetPlayer()->GetGUID()) //not add yourself
+ ignoreResult = FRIEND_IGNORE_SELF;
+ else if( session->GetPlayer()->GetSocial()->HasIgnore(GUID_LOPART(IgnoreGuid)) )
+ ignoreResult = FRIEND_IGNORE_ALREADY;
+ else
+ {
+ ignoreResult = FRIEND_IGNORE_ADDED;
+
+ // ignore list full
+ if(!session->GetPlayer()->GetSocial()->AddToSocialList(GUID_LOPART(IgnoreGuid), true))
+ ignoreResult = FRIEND_IGNORE_FULL;
+ }
}
}