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.Unknown_1127_1;
260 data >> houseInfo.Unknown_1127_2;
261 data >> houseInfo.Unknown_1127_3;
262 data >> houseInfo.Unknown_1127_4;
263
264 data >> SizedString::Data(houseInfo.NeighborhoodName);
265
266 return data;
267}
268
270{
277
278 _worldPacket >> SizedString::BitsSize<10>(Note);
289
290 if (VoiceChatInfo)
291 {
293 _worldPacket >> Bits<1>(VoiceChatInfo->TargetIsCurrentlyInVoiceChatWithPlayer);
294 }
295
297
299
300 if (MailInfo)
302
303 if (CalenderInfo)
305
306 if (PetInfo)
308
309 if (GuildInfo)
311
314
315 if (LfgListAppInfo)
317
318 if (ClubFinderInfo)
320
321 if (ArenaTeamInfo)
323
324 if (HouseInfo)
326}
327
329{
330 data >> complaintOffender.PlayerGuid;
331 data >> complaintOffender.RealmAddress;
332 data >> complaintOffender.TimeSinceOffence;
333
334 return data;
335}
336
338{
339 data >> chat.Command;
340 data >> chat.ChannelID;
341 data >> SizedString::BitsSize<12>(chat.MessageLog);
342
343 data >> SizedString::Data(chat.MessageLog);
344
345 return data;
346}
347
349{
352
353 switch (ComplaintType)
354 {
357 break;
360 break;
364 break;
365 default:
366 break;
367 }
368}
369
377
379{
380 _worldPacket >> Bits<1>(Type);
381 _worldPacket >> SizedString::BitsSize<12>(DiagInfo);
382 _worldPacket >> SizedString::BitsSize<10>(Text);
383
386}
387}
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:152
void FlushBits()
Definition ByteBuffer.h:141
WorldPacket _worldPacket
Definition Packet.h:43
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< GMTicketCase > Cases
WorldPacket const * Write() override
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