TrinityCore
Loading...
Searching...
No Matches
TicketPackets.cpp
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#include "TicketPackets.h"
19#include "PacketOperators.h"
20#include "SupportMgr.h"
21
23{
25{
26 data >> header.MapID;
27 data >> header.Position;
28 data >> header.Facing;
29 data >> header.Program;
30
31 return data;
32}
33
40
42{
43 _worldPacket << Size<int32>(Cases);
44
45 for (GMTicketCase const& c : Cases)
46 {
47 _worldPacket << int32(c.CaseID);
48 _worldPacket << c.CaseOpened;
49 _worldPacket << int32(c.CaseStatus);
50 _worldPacket << uint16(c.CfgRealmID);
51 _worldPacket << uint64(c.CharacterID);
52 _worldPacket << int32(c.WaitTimeOverrideMinutes);
53
54 _worldPacket << SizedString::BitsSize<11>(c.Url);
55 _worldPacket << SizedString::BitsSize<10>(c.WaitTimeOverrideMessage);
56 _worldPacket << SizedCString::BitsSize<24>(c.Title);
57 _worldPacket << SizedCString::BitsSize<24>(c.Description);
59
61 _worldPacket << SizedString::Data(c.WaitTimeOverrideMessage);
63 _worldPacket << SizedCString::Data(c.Description);
64 }
65
66 return &_worldPacket;
67}
68
73
75{
77
78 _worldPacket >> SizedCString::BitsSize<24>(Note);
79 _worldPacket >> Bits<1>(IsSuggestion);
80
82}
83
84SupportTicketChatLine::SupportTicketChatLine(time_t timestamp, std::string_view text)
85 : Timestamp(timestamp), Text(text) { }
86
88{
89 data >> line.Timestamp;
90 data >> SizedString::BitsSize<12>(line.Text);
91 data >> SizedString::Data(line.Text);
92
93 return data;
94}
95
97{
98 data >> Size<uint32>(chatlog.Lines);
99 data >> OptionalInit(chatlog.ReportLineIndex);
100
101 for (SupportTicketChatLine& line : chatlog.Lines)
102 data >> line;
103
104 if (chatlog.ReportLineIndex)
105 data >> *chatlog.ReportLineIndex;
106
107 return data;
108}
109
111{
112 data >> line.Timestamp;
113 data >> line.PlayerGuid;
114
115 data >> OptionalInit(line.ClubID);
116 data >> OptionalInit(line.ChannelGuid);
117 data >> OptionalInit(line.WorldServer);
118 data >> OptionalInit(line.Cmd);
119 data >> SizedString::BitsSize<12>(line.Text);
120
121 if (line.ClubID)
122 data >> *line.ClubID;
123
124 if (line.ChannelGuid)
125 data >> *line.ChannelGuid;
126
127 if (line.WorldServer)
128 {
129 data >> line.WorldServer->Realm;
130 data >> line.WorldServer->Server;
131 data >> line.WorldServer->Type;
132 }
133
134 if (line.Cmd)
135 data >> *line.Cmd;
136
137 data >> SizedString::Data(line.Text);
138
139 return data;
140}
141
143{
144 data >> Size<uint32>(chatlog.Lines);
145
146 for (SupportTicketHorusChatLine& line : chatlog.Lines)
147 data >> line;
148
149 return data;
150}
151
153{
154 data >> mail.MailID;
155 data >> SizedString::BitsSize<13>(mail.MailBody);
156 data >> SizedString::BitsSize<9>(mail.MailSubject);
157
158 data >> SizedString::Data(mail.MailBody);
159 data >> SizedString::Data(mail.MailSubject);
160
161 return data;
162}
163
165{
166 data >> event.EventID;
167 data >> event.InviteID;
168 data >> SizedString::BitsSize<8>(event.EventTitle);
169
170 data >> SizedString::Data(event.EventTitle);
171
172 return data;
173}
174
176{
177 data >> pet.PetID;
178 data >> SizedString::BitsSize<8>(pet.PetName);
179
180 data >> SizedString::Data(pet.PetName);
181
182 return data;
183}
184
186{
187 data.ResetBitPos();
188
189 data >> SizedString::BitsSize<7>(guild.GuildName);
190 data >> guild.GuildID;
191
192 data >> SizedString::Data(guild.GuildName);
193
194 return data;
195}
196
198{
199 data >> lfgListSearchResult.Ticket;
200 data >> lfgListSearchResult.ActivityID;
201 data >> lfgListSearchResult.FactionID;
202 data >> lfgListSearchResult.LastTouchedName;
203 data >> lfgListSearchResult.LastTouchedComment;
204 data >> lfgListSearchResult.LastTouchedVoiceChat;
205 data >> lfgListSearchResult.LastTouchedAny;
206 data >> lfgListSearchResult.PartyGuid;
207
208 data >> SizedString::BitsSize<10>(lfgListSearchResult.Name);
209 data >> SizedString::BitsSize<11>(lfgListSearchResult.Comment);
210 data >> SizedString::BitsSize<8>(lfgListSearchResult.VoiceChat);
211
212 data >> SizedString::Data(lfgListSearchResult.Name);
213 data >> SizedString::Data(lfgListSearchResult.Comment);
214 data >> SizedString::Data(lfgListSearchResult.VoiceChat);
215
216 return data;
217}
218
220{
221 data >> lfgListApplicant.Ticket;
222 data >> SizedString::BitsSize<9>(lfgListApplicant.Comment);
223
224 data >> SizedString::Data(lfgListApplicant.Comment);
225
226 return data;
227}
228
230{
231 data >> clubInfo.PostingID;
232 data >> clubInfo.ClubID;
233 data >> clubInfo.GuildID;
234 data >> SizedString::BitsSize<12>(clubInfo.PostingDescription);
235
236 data >> SizedString::Data(clubInfo.PostingDescription);
237
238 return data;
239}
240
242{
243 data.ResetBitPos();
244
245 data >> SizedString::BitsSize<7>(arenaTeam.ArenaTeamName);
246 data >> arenaTeam.ArenaTeamID;
247
248 data >> SizedString::Data(arenaTeam.ArenaTeamName);
249
250 return data;
251}
252
254{
255 data.ResetBitPos();
256
257 data >> SizedString::BitsSize<8>(houseInfo.NeighborhoodName);
258
259 data >> houseInfo.NeighborhoodGUID;
260 data >> houseInfo.NeighborhoodOwnerGUID;
261 data >> houseInfo.HouseGUID;
262 data >> houseInfo.PlotID;
263
264 data >> SizedString::Data(houseInfo.NeighborhoodName);
265
266 return data;
267}
268
270{
271 data.ResetBitPos();
272
273 data >> SizedCString::BitsSize<24>(housingBlueprint.Id);
274 data >> SizedCString::BitsSize<24>(housingBlueprint.ShareCode);
275
276 data >> SizedCString::Data(housingBlueprint.Id);
277 data >> SizedCString::Data(housingBlueprint.ShareCode);
278
279 return data;
280}
281
283{
291
292 _worldPacket >> SizedString::BitsSize<10>(Note);
304
306
307 if (MailInfo)
309
310 if (CalenderInfo)
312
313 if (PetInfo)
315
316 if (GuildInfo)
318
321
322 if (LfgListAppInfo)
324
325 if (ClubFinderInfo)
327
328 if (ArenaTeamInfo)
330
331 if (HouseInfo)
333
336
337 if (VoiceChatInfo)
338 {
340 _worldPacket >> Bits<1>(VoiceChatInfo->TargetIsCurrentlyInVoiceChatWithPlayer);
341 }
342}
343
345{
346 data >> complaintOffender.PlayerGuid;
347 data >> complaintOffender.RealmAddress;
348 data >> complaintOffender.TimeSinceOffence;
349
350 return data;
351}
352
354{
355 data >> chat.Command;
356 data >> chat.ChannelID;
357 data >> SizedString::BitsSize<12>(chat.MessageLog);
358
359 data >> SizedString::Data(chat.MessageLog);
360
361 return data;
362}
363
365{
368
369 switch (ComplaintType)
370 {
373 break;
376 break;
380 break;
381 default:
382 break;
383 }
384}
385
393
395{
396 _worldPacket >> Bits<1>(Type);
397 _worldPacket >> SizedString::BitsSize<12>(DiagInfo);
398 _worldPacket >> SizedString::BitsSize<10>(Text);
399
402}
403}
uint8_t uint8
Definition Define.h:156
int32_t int32
Definition Define.h:150
uint64_t uint64
Definition Define.h:153
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
@ SUPPORT_SPAM_TYPE_CHAT
Definition SupportMgr.h:91
@ SUPPORT_SPAM_TYPE_CALENDAR
Definition SupportMgr.h:92
@ SUPPORT_SPAM_TYPE_MAIL
Definition SupportMgr.h:90
void ResetBitPos()
Definition ByteBuffer.h:153
void FlushBits()
Definition ByteBuffer.h:142
WorldPacket _worldPacket
Definition Packet.h:43
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< GMTicketCase > Cases
WorldPacket const * Write() override
Optional< SupportTicketHousingBlueprint > HousingBlueprint
Optional< SupportTicketLFGListEntryInfo > LfgListEntryInfo
Optional< SupportTicketArenaTeamInfo > ArenaTeamInfo
Optional< SupportTicketLFGListApplicant > LfgListAppInfo
Optional< SupportTicketMailInfo > MailInfo
Optional< SupportTicketVoiceChatInfo > VoiceChatInfo
Optional< SupportTicketHouseInfo > HouseInfo
Optional< SupportTicketClubFinderInfo > ClubFinderInfo
Optional< SupportTicketGuildInfo > GuildInfo
Optional< SupportTicketCalendarEventInfo > CalenderInfo
DataWriter< Container > Data(Container const &value)
DataWriter< Container > Data(Container const &value)
ByteBuffer & operator>>(ByteBuffer &data, SupportTicketHeader &header)
OptionalInitWriter< T > OptionalInit(Optional< T > const &value)
Array< SupportTicketChatLine, 255 > Lines
TaggedPosition<::Position::XYZ > Position
Array< SupportTicketHorusChatLine, 255 > Lines