TrinityCore
CalendarPackets.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 "CalendarPackets.h"
19
21{
22 data << uint64(eventInfo.EventID);
23 data << uint8(eventInfo.EventType);
24 data << eventInfo.Date;
25 data << uint32(eventInfo.Flags);
26 data << int32(eventInfo.TextureID);
27 data << uint64(eventInfo.EventClubID);
28 data << eventInfo.OwnerGuid;
29
30 data.WriteBits(eventInfo.EventName.size(), 8);
31 data.FlushBits();
32 data.WriteString(eventInfo.EventName);
33
34 return data;
35}
36
38{
39 data << uint64(lockoutInfo.InstanceID);
40 data << int32(lockoutInfo.MapID);
41 data << uint32(lockoutInfo.DifficultyID);
42 data << int32(lockoutInfo.ExpireTime);
43
44 return data;
45}
46
48{
49 data << uint64(inviteInfo.EventID);
50 data << uint64(inviteInfo.InviteID);
51 data << uint8(inviteInfo.Status);
52 data << uint8(inviteInfo.Moderator);
53 data << uint8(inviteInfo.InviteType);
54 data << inviteInfo.InviterGuid;
56 data.FlushBits();
57
58 return data;
59}
60
62{
63 data << inviteInfo.Guid;
64 data << uint64(inviteInfo.InviteID);
65
66 data << uint8(inviteInfo.Level);
67 data << uint8(inviteInfo.Status);
68 data << uint8(inviteInfo.Moderator);
69 data << uint8(inviteInfo.InviteType);
70 data << inviteInfo.ResponseTime;
71
72 data.WriteBits(inviteInfo.Notes.size(), 8);
73 data.FlushBits();
74 data.WriteString(inviteInfo.Notes);
75
76 return data;
77}
78
80{
82}
83
85{
86 _worldPacket >> ClubID;
87 _worldPacket >> MinLevel;
88 _worldPacket >> MaxLevel;
89 _worldPacket >> MaxRankOrder;
90}
91
93{
94 buffer >> invite.Guid;
95 buffer >> invite.Status;
96 buffer >> invite.Moderator;
97 if (buffer.ReadBit())
98 invite.Unused_801_1.emplace();
99
100 if (buffer.ReadBit())
101 invite.Unused_801_2.emplace();
102
103 if (buffer.ReadBit())
104 invite.Unused_801_3.emplace();
105
106 if (invite.Unused_801_1)
107 buffer >> *invite.Unused_801_1;
108
109 if (invite.Unused_801_2)
110 buffer >> *invite.Unused_801_2;
111
112 if (invite.Unused_801_3)
113 buffer >> *invite.Unused_801_3;
114
115 return buffer;
116}
117
119{
120 buffer >> addEventInfo.ClubID;
121 buffer >> addEventInfo.EventType;
122 buffer >> addEventInfo.TextureID;
123 buffer >> addEventInfo.Time;
124 buffer >> addEventInfo.Flags;
125 addEventInfo.Invites.resize(buffer.read<uint32>());
126
127 uint8 titleLength = buffer.ReadBits(8);
128 uint16 descriptionLength = buffer.ReadBits(11);
129
131 buffer >> invite;
132
133 addEventInfo.Title = buffer.ReadString(titleLength);
134 addEventInfo.Description = buffer.ReadString(descriptionLength);
135
136 return buffer;
137}
138
140{
141 _worldPacket >> EventInfo;
142 _worldPacket >> MaxSize;
143}
144
146{
147 buffer >> updateEventInfo.ClubID;
148 buffer >> updateEventInfo.EventID;
149 buffer >> updateEventInfo.ModeratorID;
150 buffer >> updateEventInfo.EventType;
151 buffer >> updateEventInfo.TextureID;
152 buffer >> updateEventInfo.Time;
153 buffer >> updateEventInfo.Flags;
154
155 uint8 titleLen = buffer.ReadBits(8);
156 uint16 descLen = buffer.ReadBits(11);
157
158 updateEventInfo.Title = buffer.ReadString(titleLen);
159 updateEventInfo.Description = buffer.ReadString(descLen);
160
161 return buffer;
162}
163
165{
166 _worldPacket >> EventInfo;
167 _worldPacket >> MaxSize;
168}
169
171{
172 _worldPacket >> EventID;
173 _worldPacket >> ModeratorID;
174 _worldPacket >> ClubID;
175 _worldPacket >> Flags;
176}
177
179{
180 _worldPacket >> EventID;
181 _worldPacket >> ModeratorID;
182 _worldPacket >> EventClubID;
183 _worldPacket >> Date;
184}
185
187{
188 _worldPacket >> EventID;
189 _worldPacket >> InviteID;
190 _worldPacket >> Status;
191}
192
194{
195 _worldPacket >> EventID;
196 _worldPacket >> ModeratorID;
197 _worldPacket >> ClubID;
198
199 uint16 nameLen = _worldPacket.ReadBits(9);
200 Creating = _worldPacket.ReadBit();
201 IsSignUp = _worldPacket.ReadBit();
202
203 Name = _worldPacket.ReadString(nameLen);
204}
205
207{
208 _worldPacket >> EventID;
209 _worldPacket >> ClubID;
210 Tentative = _worldPacket.ReadBit();
211}
212
214{
215 _worldPacket >> Guid;
216 _worldPacket >> InviteID;
217 _worldPacket >> ModeratorID;
218 _worldPacket >> EventID;
219}
220
222{
223 _worldPacket >> Guid;
224 _worldPacket >> EventID;
225 _worldPacket >> InviteID;
226 _worldPacket >> ModeratorID;
227 _worldPacket >> Status;
228}
229
231{
232 _worldPacket >> MapID;
233 _worldPacket >> DifficultyID;
234 Extend = _worldPacket.ReadBit();
235}
236
238{
239 _worldPacket >> Guid;
240 _worldPacket >> EventID;
241 _worldPacket >> InviteID;
242 _worldPacket >> ModeratorID;
243 _worldPacket >> Status;
244}
245
247{
248 _worldPacket << InviteGuid;
249 _worldPacket << uint64(EventID);
250 _worldPacket << uint64(InviteID);
251 _worldPacket << uint8(Level);
252 _worldPacket << uint8(Status);
253 _worldPacket << uint8(Type);
254 _worldPacket << ResponseTime;
255
256 _worldPacket.WriteBit(ClearPending);
257 _worldPacket.FlushBits();
258
259 return &_worldPacket;
260}
261
263{
264 _worldPacket << ServerTime;
265 _worldPacket << uint32(Invites.size());
266 _worldPacket << uint32(Events.size());
267 _worldPacket << uint32(RaidLockouts.size());
268
269 for (CalendarSendCalendarRaidLockoutInfo const& lockout : RaidLockouts)
270 _worldPacket << lockout;
271
272 for (CalendarSendCalendarInviteInfo const& invite : Invites)
273 _worldPacket << invite;
274
275 for (CalendarSendCalendarEventInfo const& event : Events)
276 _worldPacket << event;
277
278 return &_worldPacket;
279}
280
282{
283 _worldPacket << uint8(EventType);
284 _worldPacket << OwnerGuid;
285 _worldPacket << uint64(EventID);
286 _worldPacket << uint8(GetEventType);
287 _worldPacket << int32(TextureID);
288 _worldPacket << uint32(Flags);
289 _worldPacket << Date;
290 _worldPacket << LockDate;
291 _worldPacket << uint64(EventClubID);
292 _worldPacket << uint32(Invites.size());
293 _worldPacket.WriteBits(EventName.size(), 8);
294 _worldPacket.WriteBits(Description.size(), 11);
295 _worldPacket.FlushBits();
296
297 for (auto const& invite : Invites)
298 _worldPacket << invite;
299
300 _worldPacket.WriteString(EventName);
301 _worldPacket.WriteString(Description);
302
303 return &_worldPacket;
304}
305
307{
308 _worldPacket << uint64(EventID);
309 _worldPacket << Date;
310 _worldPacket << uint32(Flags);
311 _worldPacket << uint8(EventType);
312 _worldPacket << int32(TextureID);
313 _worldPacket << uint64(EventClubID);
314 _worldPacket << uint64(InviteID);
315 _worldPacket << uint8(Status);
316 _worldPacket << uint8(ModeratorStatus);
317
318 // Todo: check order
319 _worldPacket << InvitedByGuid;
320 _worldPacket << OwnerGuid;
321
322 _worldPacket.WriteBits(EventName.size(), 8);
323 _worldPacket.FlushBits();
324 _worldPacket.WriteString(EventName);
325
326 return &_worldPacket;
327}
328
330{
331 _worldPacket << InviteGuid;
332 _worldPacket << uint64(EventID);
333 _worldPacket << Date;
334 _worldPacket << uint32(Flags);
335 _worldPacket << uint8(Status);
336 _worldPacket << ResponseTime;
337
338 _worldPacket.WriteBit(ClearPending);
339 _worldPacket.FlushBits();
340
341 return &_worldPacket;
342}
343
345{
346 _worldPacket << InviteGuid;
347 _worldPacket << uint64(EventID);
348 _worldPacket << uint32(Flags);
349
350 _worldPacket.WriteBit(ClearPending);
351 _worldPacket.FlushBits();
352
353 return &_worldPacket;
354}
355
357{
358 _worldPacket << InviteGuid;
359 _worldPacket << uint64(EventID);
360 _worldPacket << uint8(Status);
361
362 _worldPacket.WriteBit(ClearPending);
363 _worldPacket.FlushBits();
364
365 return &_worldPacket;
366}
367
369{
370 _worldPacket << uint64(EventID);
371 _worldPacket << Date;
372 _worldPacket << uint32(Flags);
373 _worldPacket << uint8(Status);
374
375 return &_worldPacket;
376}
377
379{
380 _worldPacket << uint64(EventClubID);
381 _worldPacket << uint64(EventID);
382
383 _worldPacket << OriginalDate;
384 _worldPacket << Date;
385 _worldPacket << LockDate;
386 _worldPacket << uint32(Flags);
387 _worldPacket << uint32(TextureID);
388 _worldPacket << uint8(EventType);
389
390 _worldPacket.WriteBits(EventName.size(), 8);
391 _worldPacket.WriteBits(Description.size(), 11);
392 _worldPacket.WriteBit(ClearPending);
393 _worldPacket.FlushBits();
394
395 _worldPacket.WriteString(EventName);
396 _worldPacket.WriteString(Description);
397
398 return &_worldPacket;
399}
400
402{
403 _worldPacket << uint64(EventID);
404 _worldPacket << Date;
405
406 _worldPacket.WriteBit(ClearPending);
407 _worldPacket.FlushBits();
408
409 return &_worldPacket;
410}
411
413{
414 _worldPacket << uint32(NumPending);
415 return &_worldPacket;
416}
417
419{
420 _worldPacket << uint8(Command);
421 _worldPacket << uint8(Result);
422
423 _worldPacket.WriteBits(Name.size(), 9);
424 _worldPacket.FlushBits();
425 _worldPacket.WriteString(Name);
426
427 return &_worldPacket;
428}
429
431{
432 _worldPacket << uint64(InstanceID);
433 _worldPacket << ServerTime;
434 _worldPacket << int32(MapID);
435 _worldPacket << uint32(DifficultyID);
436 _worldPacket << int32(TimeRemaining);
437
438 return &_worldPacket;
439}
440
442{
443 _worldPacket << uint64(InstanceID);
444 _worldPacket << int32(MapID);
445 _worldPacket << uint32(DifficultyID);
446
447 return &_worldPacket;
448}
449
451{
452 _worldPacket << ServerTime;
453 _worldPacket << int32(MapID);
454 _worldPacket << uint32(DifficultyID);
455 _worldPacket << int32(OldTimeRemaining);
456 _worldPacket << int32(NewTimeRemaining);
457
458 return &_worldPacket;
459}
460
462{
463 _worldPacket << uint32(Invites.size());
464 for (auto const& invite : Invites)
465 {
466 _worldPacket << invite.InviteGuid;
467 _worldPacket << uint8(invite.Level);
468 }
469
470 return &_worldPacket;
471}
472
474{
475 _worldPacket << uint64(EventID);
476 _worldPacket << Date;
477 _worldPacket << uint32(Flags);
478 _worldPacket << uint8(Status);
479
480 return &_worldPacket;
481}
482
484{
485 _worldPacket << uint64(EventID);
486
487 _worldPacket.WriteBits(Notes.size(), 8);
488 _worldPacket.FlushBits();
489 _worldPacket.WriteString(Notes);
490
491 return &_worldPacket;
492}
493
495{
496 _worldPacket << InviteGuid;
497 _worldPacket << uint64(EventID);
498
499 _worldPacket.WriteBit(ClearPending);
500 _worldPacket.WriteBits(Notes.size(), 8);
501 _worldPacket.FlushBits();
502 _worldPacket.WriteString(Notes);
503
504 return &_worldPacket;
505}
506
508{
509 _worldPacket >> InvitedByGUID;
510 _worldPacket >> EventID;
511 _worldPacket >> InviteID;
512}
ByteBuffer & operator<<(ByteBuffer &data, WorldPackets::Calendar::CalendarSendCalendarEventInfo const &eventInfo)
ByteBuffer & operator>>(ByteBuffer &buffer, WorldPackets::Calendar::CalendarAddEventInviteInfo &invite)
uint8_t uint8
Definition: Define.h:144
int32_t int32
Definition: Define.h:138
uint64_t uint64
Definition: Define.h:141
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
uint32 ReadBits(int32 bits)
Definition: ByteBuffer.h:209
void WriteString(std::string const &str)
Definition: ByteBuffer.h:500
bool WriteBit(bool bit)
Definition: ByteBuffer.h:175
void WriteBits(std::size_t value, int32 bits)
Definition: ByteBuffer.h:203
void FlushBits()
Definition: ByteBuffer.h:155
std::string ReadString(uint32 length, bool requireValidUtf8=true)
Definition: ByteBuffer.cpp:78
bool ReadBit()
Definition: ByteBuffer.h:191
WorldPacket const * Write() override
WorldPacket _worldPacket
Definition: Packet.h:43
Array< CalendarAddEventInviteInfo, CALENDAR_MAX_INVITES > Invites