TrinityCore
Loading...
Searching...
No Matches
MailPackets.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef TRINITYCORE_MAIL_PACKETS_H
19
#define TRINITYCORE_MAIL_PACKETS_H
20
21
#include "
Packet.h
"
22
#include "
ItemPacketsCommon.h
"
23
#include "
ObjectGuid.h
"
24
25
class
Player
;
26
struct
Mail
;
27
28
namespace
WorldPackets
29
{
30
namespace
Mail
31
{
32
struct
MailAttachedItem
33
{
34
MailAttachedItem
(
::Item
const
* item,
uint8
pos);
35
36
uint8
Position
= 0;
37
uint64
AttachID
= 0;
38
Item::ItemInstance
Item
;
39
int32
Count
= 0;
40
int32
Charges
= 0;
41
uint32
MaxDurability
= 0;
42
int32
Durability
= 0;
43
bool
Unlocked
=
false
;
44
std::vector<Item::ItemEnchantData>
Enchants
;
45
std::vector<Item::ItemGemData>
Gems
;
46
};
47
48
struct
MailListEntry
49
{
50
MailListEntry
(
::Mail
const
* mail,
::Player
* player);
51
52
uint64
MailID
= 0;
53
uint8
SenderType
= 0;
54
ObjectGuid
SenderCharacter
;
55
uint32
AltSenderID
;
56
uint64
Cod
= 0;
57
int32
StationeryID
= 0;
58
uint64
SentMoney
= 0;
59
int32
Flags
= 0;
60
float
DaysLeft
= 0.0f;
61
int32
MailTemplateID
= 0;
62
std::string
Subject
;
63
std::string
Body
;
64
std::vector<MailAttachedItem>
Attachments
;
65
};
66
67
class
MailGetList
final :
public
ClientPacket
68
{
69
public
:
70
explicit
MailGetList
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_GET_LIST
,
std
::move(packet)) { }
71
72
void
Read
()
override
;
73
74
ObjectGuid
Mailbox
;
75
};
76
77
class
MailListResult
final :
public
ServerPacket
78
{
79
public
:
80
explicit
MailListResult
() :
ServerPacket
(
SMSG_MAIL_LIST_RESULT
, 8) { }
81
82
WorldPacket
const
*
Write
()
override
;
83
84
int32
TotalNumRecords
= 0;
85
std::vector<MailListEntry>
Mails
;
86
};
87
88
class
MailCreateTextItem
final :
public
ClientPacket
89
{
90
public
:
91
explicit
MailCreateTextItem
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_CREATE_TEXT_ITEM
,
std
::move(packet)) { }
92
93
void
Read
()
override
;
94
95
ObjectGuid
Mailbox
;
96
uint64
MailID
= 0;
97
};
98
99
class
SendMail
final :
public
ClientPacket
100
{
101
public
:
102
struct
StructSendMail
103
{
104
struct
MailAttachment
105
{
106
uint8
AttachPosition
= 0;
107
ObjectGuid
ItemGUID
;
108
};
109
110
ObjectGuid
Mailbox
;
111
int32
StationeryID
= 0;
112
int64
SendMoney
= 0;
113
int64
Cod
= 0;
114
std::string
Target
;
115
std::string
Subject
;
116
std::string
Body
;
117
std::vector<MailAttachment>
Attachments
;
118
};
119
120
explicit
SendMail
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_SEND_MAIL
,
std
::move(packet)) { }
121
122
void
Read
()
override
;
123
124
StructSendMail
Info
;
125
};
126
127
class
MailCommandResult
final :
public
ServerPacket
128
{
129
public
:
130
explicit
MailCommandResult
() :
ServerPacket
(
SMSG_MAIL_COMMAND_RESULT
) { }
131
132
WorldPacket
const
*
Write
()
override
;
133
134
uint64
MailID
= 0;
135
int32
Command
= 0;
136
int32
ErrorCode
= 0;
137
int32
BagResult
= 0;
138
uint64
AttachID
= 0;
139
int32
QtyInInventory
= 0;
140
};
141
142
class
MailReturnToSender
final :
public
ClientPacket
143
{
144
public
:
145
explicit
MailReturnToSender
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_RETURN_TO_SENDER
,
std
::move(packet)) { }
146
147
void
Read
()
override
;
148
149
uint64
MailID
= 0;
150
ObjectGuid
SenderGUID
;
151
};
152
153
class
MailMarkAsRead
final :
public
ClientPacket
154
{
155
public
:
156
explicit
MailMarkAsRead
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_MARK_AS_READ
,
std
::move(packet)) { }
157
158
void
Read
()
override
;
159
160
ObjectGuid
Mailbox
;
161
uint64
MailID
= 0;
162
};
163
164
class
MailDelete
final :
public
ClientPacket
165
{
166
public
:
167
explicit
MailDelete
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_DELETE
,
std
::move(packet)) { }
168
169
void
Read
()
override
;
170
171
uint64
MailID
= 0;
172
int32
DeleteReason
= 0;
173
};
174
175
class
MailTakeItem
final :
public
ClientPacket
176
{
177
public
:
178
explicit
MailTakeItem
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_TAKE_ITEM
,
std
::move(packet)) { }
179
180
void
Read
()
override
;
181
182
ObjectGuid
Mailbox
;
183
uint64
MailID
= 0;
184
uint64
AttachID
= 0;
185
};
186
187
class
MailTakeMoney
final :
public
ClientPacket
188
{
189
public
:
190
explicit
MailTakeMoney
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_MAIL_TAKE_MONEY
,
std
::move(packet)) { }
191
192
void
Read
()
override
;
193
194
ObjectGuid
Mailbox
;
195
uint64
MailID
= 0;
196
uint64
Money
= 0;
197
};
198
199
class
MailQueryNextMailTime
final :
public
ClientPacket
200
{
201
public
:
202
explicit
MailQueryNextMailTime
(
WorldPacket
&& packet) :
ClientPacket
(
CMSG_QUERY_NEXT_MAIL_TIME
,
std
::move(packet)) { }
203
204
void
Read
()
override
{ }
205
};
206
207
class
MailQueryNextTimeResult
final :
public
ServerPacket
208
{
209
public
:
210
struct
MailNextTimeEntry
211
{
212
MailNextTimeEntry
(
::Mail
const
* mail);
213
214
ObjectGuid
SenderGuid
;
215
float
TimeLeft
= 0.0f;
216
int32
AltSenderID
= 0;
217
int32
AltSenderType
= 0;
218
int32
StationeryID
= 0;
219
};
220
221
explicit
MailQueryNextTimeResult
() :
ServerPacket
(
SMSG_MAIL_QUERY_NEXT_TIME_RESULT
, 8) { }
222
223
WorldPacket
const
*
Write
()
override
;
224
225
float
NextMailTime
= 0.0f;
226
std::vector<MailNextTimeEntry>
Next
;
227
};
228
229
class
NotifyReceivedMail
:
ServerPacket
230
{
231
public
:
232
explicit
NotifyReceivedMail
() :
ServerPacket
(
SMSG_NOTIFY_RECEIVED_MAIL
, 4) { }
233
234
WorldPacket
const
*
Write
()
override
;
235
236
float
Delay
= 0.0f;
237
};
238
}
239
}
240
241
#endif
// TRINITYCORE_MAIL_PACKETS_H
uint8
uint8_t uint8
Definition
Define.h:156
int64
int64_t int64
Definition
Define.h:149
int32
int32_t int32
Definition
Define.h:150
uint64
uint64_t uint64
Definition
Define.h:153
uint32
uint32_t uint32
Definition
Define.h:154
ItemPacketsCommon.h
ObjectGuid.h
SMSG_NOTIFY_RECEIVED_MAIL
@ SMSG_NOTIFY_RECEIVED_MAIL
Definition
Opcodes.h:2019
SMSG_MAIL_COMMAND_RESULT
@ SMSG_MAIL_COMMAND_RESULT
Definition
Opcodes.h:1838
SMSG_MAIL_LIST_RESULT
@ SMSG_MAIL_LIST_RESULT
Definition
Opcodes.h:1839
SMSG_MAIL_QUERY_NEXT_TIME_RESULT
@ SMSG_MAIL_QUERY_NEXT_TIME_RESULT
Definition
Opcodes.h:1840
CMSG_MAIL_GET_LIST
@ CMSG_MAIL_GET_LIST
Definition
Opcodes.h:570
CMSG_SEND_MAIL
@ CMSG_SEND_MAIL
Definition
Opcodes.h:890
CMSG_MAIL_TAKE_MONEY
@ CMSG_MAIL_TAKE_MONEY
Definition
Opcodes.h:574
CMSG_MAIL_CREATE_TEXT_ITEM
@ CMSG_MAIL_CREATE_TEXT_ITEM
Definition
Opcodes.h:568
CMSG_MAIL_MARK_AS_READ
@ CMSG_MAIL_MARK_AS_READ
Definition
Opcodes.h:571
CMSG_QUERY_NEXT_MAIL_TIME
@ CMSG_QUERY_NEXT_MAIL_TIME
Definition
Opcodes.h:768
CMSG_MAIL_DELETE
@ CMSG_MAIL_DELETE
Definition
Opcodes.h:569
CMSG_MAIL_TAKE_ITEM
@ CMSG_MAIL_TAKE_ITEM
Definition
Opcodes.h:573
CMSG_MAIL_RETURN_TO_SENDER
@ CMSG_MAIL_RETURN_TO_SENDER
Definition
Opcodes.h:572
Packet.h
Item
Definition
Item.h:179
ObjectGuid
Definition
ObjectGuid.h:308
Player
Definition
Player.h:1233
WorldPacket
Definition
WorldPacket.h:26
WorldPackets::ClientPacket
Definition
Packet.h:61
WorldPackets::Mail::MailCommandResult
Definition
MailPackets.h:128
WorldPackets::Mail::MailCommandResult::BagResult
int32 BagResult
Definition
MailPackets.h:137
WorldPackets::Mail::MailCommandResult::ErrorCode
int32 ErrorCode
Definition
MailPackets.h:136
WorldPackets::Mail::MailCommandResult::QtyInInventory
int32 QtyInInventory
Definition
MailPackets.h:139
WorldPackets::Mail::MailCommandResult::MailCommandResult
MailCommandResult()
Definition
MailPackets.h:130
WorldPackets::Mail::MailCommandResult::AttachID
uint64 AttachID
Definition
MailPackets.h:138
WorldPackets::Mail::MailCommandResult::MailID
uint64 MailID
Definition
MailPackets.h:134
WorldPackets::Mail::MailCommandResult::Command
int32 Command
Definition
MailPackets.h:135
WorldPackets::Mail::MailCommandResult::Write
WorldPacket const * Write() override
Definition
MailPackets.cpp:222
WorldPackets::Mail::MailCreateTextItem
Definition
MailPackets.h:89
WorldPackets::Mail::MailCreateTextItem::MailCreateTextItem
MailCreateTextItem(WorldPacket &&packet)
Definition
MailPackets.h:91
WorldPackets::Mail::MailCreateTextItem::MailID
uint64 MailID
Definition
MailPackets.h:96
WorldPackets::Mail::MailCreateTextItem::Mailbox
ObjectGuid Mailbox
Definition
MailPackets.h:95
WorldPackets::Mail::MailCreateTextItem::Read
void Read() override
Definition
MailPackets.cpp:182
WorldPackets::Mail::MailDelete
Definition
MailPackets.h:165
WorldPackets::Mail::MailDelete::MailDelete
MailDelete(WorldPacket &&packet)
Definition
MailPackets.h:167
WorldPackets::Mail::MailDelete::Read
void Read() override
Definition
MailPackets.cpp:240
WorldPackets::Mail::MailDelete::MailID
uint64 MailID
Definition
MailPackets.h:171
WorldPackets::Mail::MailDelete::DeleteReason
int32 DeleteReason
Definition
MailPackets.h:172
WorldPackets::Mail::MailGetList
Definition
MailPackets.h:68
WorldPackets::Mail::MailGetList::Mailbox
ObjectGuid Mailbox
Definition
MailPackets.h:74
WorldPackets::Mail::MailGetList::MailGetList
MailGetList(WorldPacket &&packet)
Definition
MailPackets.h:70
WorldPackets::Mail::MailGetList::Read
void Read() override
Definition
MailPackets.cpp:166
WorldPackets::Mail::MailListResult
Definition
MailPackets.h:78
WorldPackets::Mail::MailListResult::MailListResult
MailListResult()
Definition
MailPackets.h:80
WorldPackets::Mail::MailListResult::Write
WorldPacket const * Write() override
Definition
MailPackets.cpp:171
WorldPackets::Mail::MailListResult::TotalNumRecords
int32 TotalNumRecords
Definition
MailPackets.h:84
WorldPackets::Mail::MailListResult::Mails
std::vector< MailListEntry > Mails
Definition
MailPackets.h:85
WorldPackets::Mail::MailMarkAsRead
Definition
MailPackets.h:154
WorldPackets::Mail::MailMarkAsRead::MailMarkAsRead
MailMarkAsRead(WorldPacket &&packet)
Definition
MailPackets.h:156
WorldPackets::Mail::MailMarkAsRead::Mailbox
ObjectGuid Mailbox
Definition
MailPackets.h:160
WorldPackets::Mail::MailMarkAsRead::Read
void Read() override
Definition
MailPackets.cpp:234
WorldPackets::Mail::MailMarkAsRead::MailID
uint64 MailID
Definition
MailPackets.h:161
WorldPackets::Mail::MailQueryNextMailTime
Definition
MailPackets.h:200
WorldPackets::Mail::MailQueryNextMailTime::Read
void Read() override
Definition
MailPackets.h:204
WorldPackets::Mail::MailQueryNextMailTime::MailQueryNextMailTime
MailQueryNextMailTime(WorldPacket &&packet)
Definition
MailPackets.h:202
WorldPackets::Mail::MailQueryNextTimeResult
Definition
MailPackets.h:208
WorldPackets::Mail::MailQueryNextTimeResult::MailQueryNextTimeResult
MailQueryNextTimeResult()
Definition
MailPackets.h:221
WorldPackets::Mail::MailQueryNextTimeResult::NextMailTime
float NextMailTime
Definition
MailPackets.h:225
WorldPackets::Mail::MailQueryNextTimeResult::Write
WorldPacket const * Write() override
Definition
MailPackets.cpp:286
WorldPackets::Mail::MailQueryNextTimeResult::Next
std::vector< MailNextTimeEntry > Next
Definition
MailPackets.h:226
WorldPackets::Mail::MailReturnToSender
Definition
MailPackets.h:143
WorldPackets::Mail::MailReturnToSender::Read
void Read() override
Definition
MailPackets.cpp:216
WorldPackets::Mail::MailReturnToSender::SenderGUID
ObjectGuid SenderGUID
Definition
MailPackets.h:150
WorldPackets::Mail::MailReturnToSender::MailReturnToSender
MailReturnToSender(WorldPacket &&packet)
Definition
MailPackets.h:145
WorldPackets::Mail::MailReturnToSender::MailID
uint64 MailID
Definition
MailPackets.h:149
WorldPackets::Mail::MailTakeItem
Definition
MailPackets.h:176
WorldPackets::Mail::MailTakeItem::AttachID
uint64 AttachID
Definition
MailPackets.h:184
WorldPackets::Mail::MailTakeItem::Read
void Read() override
Definition
MailPackets.cpp:246
WorldPackets::Mail::MailTakeItem::MailID
uint64 MailID
Definition
MailPackets.h:183
WorldPackets::Mail::MailTakeItem::Mailbox
ObjectGuid Mailbox
Definition
MailPackets.h:182
WorldPackets::Mail::MailTakeItem::MailTakeItem
MailTakeItem(WorldPacket &&packet)
Definition
MailPackets.h:178
WorldPackets::Mail::MailTakeMoney
Definition
MailPackets.h:188
WorldPackets::Mail::MailTakeMoney::Mailbox
ObjectGuid Mailbox
Definition
MailPackets.h:194
WorldPackets::Mail::MailTakeMoney::MailID
uint64 MailID
Definition
MailPackets.h:195
WorldPackets::Mail::MailTakeMoney::Read
void Read() override
Definition
MailPackets.cpp:253
WorldPackets::Mail::MailTakeMoney::MailTakeMoney
MailTakeMoney(WorldPacket &&packet)
Definition
MailPackets.h:190
WorldPackets::Mail::MailTakeMoney::Money
uint64 Money
Definition
MailPackets.h:196
WorldPackets::Mail::NotifyReceivedMail
Definition
MailPackets.h:230
WorldPackets::Mail::NotifyReceivedMail::NotifyReceivedMail
NotifyReceivedMail()
Definition
MailPackets.h:232
WorldPackets::Mail::NotifyReceivedMail::Delay
float Delay
Definition
MailPackets.h:236
WorldPackets::Mail::NotifyReceivedMail::Write
WorldPacket const * Write() override
Definition
MailPackets.cpp:303
WorldPackets::Mail::SendMail
Definition
MailPackets.h:100
WorldPackets::Mail::SendMail::Info
StructSendMail Info
Definition
MailPackets.h:124
WorldPackets::Mail::SendMail::SendMail
SendMail(WorldPacket &&packet)
Definition
MailPackets.h:120
WorldPackets::Mail::SendMail::Read
void Read() override
Definition
MailPackets.cpp:196
WorldPackets::ServerPacket
Definition
Packet.h:47
WorldPackets
Definition
GameObjectAI.h:36
std
STL namespace.
Mail
Definition
Mail.h:175
Position
Definition
Position.h:30
WorldPackets::Item::ItemInstance
Definition
ItemPacketsCommon.h:65
WorldPackets::Mail::MailAttachedItem
Definition
MailPackets.h:33
WorldPackets::Mail::MailAttachedItem::Item
Item::ItemInstance Item
Definition
MailPackets.h:38
WorldPackets::Mail::MailAttachedItem::Enchants
std::vector< Item::ItemEnchantData > Enchants
Definition
MailPackets.h:44
WorldPackets::Mail::MailAttachedItem::Gems
std::vector< Item::ItemGemData > Gems
Definition
MailPackets.h:45
WorldPackets::Mail::MailAttachedItem::Durability
int32 Durability
Definition
MailPackets.h:42
WorldPackets::Mail::MailAttachedItem::Unlocked
bool Unlocked
Definition
MailPackets.h:43
WorldPackets::Mail::MailAttachedItem::Charges
int32 Charges
Definition
MailPackets.h:40
WorldPackets::Mail::MailAttachedItem::AttachID
uint64 AttachID
Definition
MailPackets.h:37
WorldPackets::Mail::MailAttachedItem::MaxDurability
uint32 MaxDurability
Definition
MailPackets.h:41
WorldPackets::Mail::MailAttachedItem::Count
int32 Count
Definition
MailPackets.h:39
WorldPackets::Mail::MailListEntry
Definition
MailPackets.h:49
WorldPackets::Mail::MailListEntry::Subject
std::string Subject
Definition
MailPackets.h:62
WorldPackets::Mail::MailListEntry::Body
std::string Body
Definition
MailPackets.h:63
WorldPackets::Mail::MailListEntry::Cod
uint64 Cod
Definition
MailPackets.h:56
WorldPackets::Mail::MailListEntry::StationeryID
int32 StationeryID
Definition
MailPackets.h:57
WorldPackets::Mail::MailListEntry::DaysLeft
float DaysLeft
Definition
MailPackets.h:60
WorldPackets::Mail::MailListEntry::SenderCharacter
ObjectGuid SenderCharacter
Definition
MailPackets.h:54
WorldPackets::Mail::MailListEntry::MailID
uint64 MailID
Definition
MailPackets.h:52
WorldPackets::Mail::MailListEntry::AltSenderID
uint32 AltSenderID
Definition
MailPackets.h:55
WorldPackets::Mail::MailListEntry::MailTemplateID
int32 MailTemplateID
Definition
MailPackets.h:61
WorldPackets::Mail::MailListEntry::SenderType
uint8 SenderType
Definition
MailPackets.h:53
WorldPackets::Mail::MailListEntry::Attachments
std::vector< MailAttachedItem > Attachments
Definition
MailPackets.h:64
WorldPackets::Mail::MailListEntry::Flags
int32 Flags
Definition
MailPackets.h:59
WorldPackets::Mail::MailListEntry::SentMoney
uint64 SentMoney
Definition
MailPackets.h:58
WorldPackets::Mail::MailQueryNextTimeResult::MailNextTimeEntry
Definition
MailPackets.h:211
WorldPackets::Mail::MailQueryNextTimeResult::MailNextTimeEntry::SenderGuid
ObjectGuid SenderGuid
Definition
MailPackets.h:214
WorldPackets::Mail::MailQueryNextTimeResult::MailNextTimeEntry::TimeLeft
float TimeLeft
Definition
MailPackets.h:215
WorldPackets::Mail::MailQueryNextTimeResult::MailNextTimeEntry::StationeryID
int32 StationeryID
Definition
MailPackets.h:218
WorldPackets::Mail::MailQueryNextTimeResult::MailNextTimeEntry::AltSenderID
int32 AltSenderID
Definition
MailPackets.h:216
WorldPackets::Mail::MailQueryNextTimeResult::MailNextTimeEntry::AltSenderType
int32 AltSenderType
Definition
MailPackets.h:217
WorldPackets::Mail::SendMail::StructSendMail::MailAttachment
Definition
MailPackets.h:105
WorldPackets::Mail::SendMail::StructSendMail::MailAttachment::ItemGUID
ObjectGuid ItemGUID
Definition
MailPackets.h:107
WorldPackets::Mail::SendMail::StructSendMail::MailAttachment::AttachPosition
uint8 AttachPosition
Definition
MailPackets.h:106
WorldPackets::Mail::SendMail::StructSendMail
Definition
MailPackets.h:103
WorldPackets::Mail::SendMail::StructSendMail::SendMoney
int64 SendMoney
Definition
MailPackets.h:112
WorldPackets::Mail::SendMail::StructSendMail::Subject
std::string Subject
Definition
MailPackets.h:115
WorldPackets::Mail::SendMail::StructSendMail::Mailbox
ObjectGuid Mailbox
Definition
MailPackets.h:110
WorldPackets::Mail::SendMail::StructSendMail::Cod
int64 Cod
Definition
MailPackets.h:113
WorldPackets::Mail::SendMail::StructSendMail::StationeryID
int32 StationeryID
Definition
MailPackets.h:111
WorldPackets::Mail::SendMail::StructSendMail::Body
std::string Body
Definition
MailPackets.h:116
WorldPackets::Mail::SendMail::StructSendMail::Target
std::string Target
Definition
MailPackets.h:114
WorldPackets::Mail::SendMail::StructSendMail::Attachments
std::vector< MailAttachment > Attachments
Definition
MailPackets.h:117
server
game
Server
Packets
MailPackets.h
Generated on Sun May 10 2026 02:09:02 for TrinityCore by
1.9.8