1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
/*
* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef FriendsPackets_h__
#define FriendsPackets_h__
#include "PacketsBase.h"
namespace Battlenet
{
namespace Friends
{
enum Opcode
{
CMSG_FRIEND_INVITE = 0x01, // Not implemented
CMSG_FRIEND_INVITE_RESPONSE = 0x02, // Not implemented
CMSG_FRIEND_REMOVE = 0x04, // Not implemented
CMSG_FRIEND_NOTE = 0x05, // Not implemented
CMSG_TOONS_OF_FRIEND_REQUEST = 0x06, // Not implemented
CMSG_BLOCK_ADD = 0x08, // Not implemented
CMSG_BLOCK_REMOVE = 0x0A, // Not implemented
CMSG_GET_FRIENDS_OF_FRIEND = 0x0B, // Not implemented
CMSG_GET_SOCIAL_NETWORK_FRIENDS = 0x0D, // Won't support
CMSG_SOCIAL_NETWORK_CONNECT = 0x0F, // Won't support
CMSG_SOCIAL_NETWORK_DISCONNECT = 0x11, // Won't support
CMSG_SOCIAL_NETWORK_CHECK_CONNECTED = 0x13,
CMSG_REALID_FRIEND_INVITE = 0x16, // Not implemented
SMSG_FRIEND_INVITE_NOTIFY = 0x01, // Not implemented
SMSG_FRIEND_INVITE_RESULT = 0x03, // Not implemented
SMSG_TOONS_OF_FRIEND_NOTIFY = 0x06, // Not implemented
SMSG_BLOCK_INVITE_NOTIFY = 0x07, // Not implemented
SMSG_BLOCK_ADD_FAILURE = 0x09, // Not implemented
SMSG_FRIENDS_OF_FRIEND = 0x0C, // Not implemented
SMSG_SOCIAL_NETWORK_FRIENDS = 0x0E, // Won't support
SMSG_SOCIAL_NETWORK_CONNECT_RESULT = 0x10, // Won't support
SMSG_SOCIAL_NETWORK_DISCONNECT_RESULT = 0x12, // Won't support
SMSG_SOCIAL_NETWORK_CHECK_CONNECTED_RESULT = 0x14,
SMSG_MAX_FRIENDS_NOTIFY = 0x15, // Not implemented
SMSG_FRIENDS_LIST_NOTIFY_3 = 0x18 // Not implemented
};
class GetFriendsOfFriend final : public ClientPacket
{
public:
GetFriendsOfFriend(PacketHeader const& header, BitStream& stream) : ClientPacket(header, stream)
{
ASSERT(header == PacketHeader(CMSG_GET_FRIENDS_OF_FRIEND, FRIENDS) && "Invalid packet header for GetFriendsOfFriend");
}
void Read() override;
std::string ToString() const override;
};
class SocialNetworkCheckConnected final : public ClientPacket
{
public:
SocialNetworkCheckConnected(PacketHeader const& header, BitStream& stream) : ClientPacket(header, stream)
{
ASSERT(header == PacketHeader(CMSG_SOCIAL_NETWORK_CHECK_CONNECTED, FRIENDS) && "Invalid packet header for SocialNetworkCheckConnected");
}
void Read() override;
std::string ToString() const override;
void CallHandler(Session* session) override;
uint32 SocialNetworkId = 0;
};
class RealIdFriendInvite final : public ClientPacket
{
public:
RealIdFriendInvite(PacketHeader const& header, BitStream& stream) : ClientPacket(header, stream)
{
ASSERT(header == PacketHeader(CMSG_REALID_FRIEND_INVITE, FRIENDS) && "Invalid packet header for RealIdFriendInvite");
}
void Read() override;
std::string ToString() const override;
std::string Email;
std::string Message;
};
class FriendInviteResult final : public ServerPacket
{
public:
FriendInviteResult() : ServerPacket(PacketHeader(SMSG_FRIEND_INVITE_RESULT, FRIENDS))
{
}
void Write() override;
std::string ToString() const override;
};
class FriendsOfFriend final : public ServerPacket
{
public:
FriendsOfFriend() : ServerPacket(PacketHeader(SMSG_FRIENDS_OF_FRIEND, FRIENDS))
{
}
void Write() override;
std::string ToString() const override;
};
class SocialNetworkCheckConnectedResult final : public ServerPacket
{
public:
SocialNetworkCheckConnectedResult() : ServerPacket(PacketHeader(SMSG_SOCIAL_NETWORK_CHECK_CONNECTED_RESULT, FRIENDS)),
Result(4601), SocialNetworkId(0) // 4601 = The Facebook add friend service is unavailable right now. Please try again later.
{
}
void Write() override;
std::string ToString() const override;
uint16 Result;
uint32 SocialNetworkId;
};
}
}
#endif // FriendsPackets_h__
|