TrinityCore
PartyPackets.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 PartyPackets_h__
19#define PartyPackets_h__
20
21#include "Packet.h"
23#include "ObjectGuid.h"
24#include "Group.h"
26#include "Optional.h"
27
28namespace WorldPackets
29{
30 namespace Party
31 {
32 class PartyCommandResult final : public ServerPacket
33 {
34 public:
36
37 WorldPacket const* Write() override;
38
39 std::string Name;
44 };
45
46 class PartyInviteClient final : public ClientPacket
47 {
48 public:
50
51 void Read() override;
52
55 std::string TargetName;
56 std::string TargetRealm;
58 };
59
60 class PartyInvite final : public ServerPacket
61 {
62 public:
64
65 WorldPacket const* Write() override;
66
67 void Initialize(Player const* inviter, int32 proposedRoles, bool canAccept);
68
69 bool MightCRZYou = false;
70 bool MustBeBNetFriend = false;
71 bool AllowMultipleRoles = false;
72 bool QuestSessionActive = false;
74
75 bool CanAccept = false;
76
77 // Inviter
81 std::string InviterName;
82
83 // Realm
84 bool IsXRealm = false;
85
86 // Lfg
89 std::vector<uint32> LfgSlots;
90 };
91
92 class PartyInviteResponse final : public ClientPacket
93 {
94 public:
96
97 void Read() override;
98
100 bool Accept = false;
102 };
103
104 class PartyUninvite final : public ClientPacket
105 {
106 public:
108
109 void Read() override;
110
113 std::string Reason;
114 };
115
116 class GroupDecline final : public ServerPacket
117 {
118 public:
119 GroupDecline(std::string const& name) : ServerPacket(SMSG_GROUP_DECLINE, 2 + name.size()), Name(name) { }
120
121 WorldPacket const* Write() override;
122
123 std::string Name;
124 };
125
126 class GroupUninvite final : public ServerPacket
127 {
128 public:
130
131 WorldPacket const* Write() override { return &_worldPacket; }
132 };
133
135 {
136 public:
138
139 void Read() override;
140
143 };
144
146 {
148 uint16 Id = 0u;
149 };
150
152 {
155 std::vector<PartyMemberPhase> List;
156 };
157
159 {
163 std::vector<float> Points;
164 };
165
167 {
169 std::string Name;
171
174
175 std::vector<PartyMemberAuraStates> Auras;
176 };
177
179 {
183 };
184
186 {
189
192
196
201
203
205 std::vector<PartyMemberAuraStates> Auras;
207
212 int8 PartyType[2] = { };
213
215
217 };
218
220 {
221 public:
223
224 WorldPacket const* Write() override;
225 void Initialize(Player const* player);
226
227 bool ForEnemy = false;
230 };
231
232 class SetPartyLeader final : public ClientPacket
233 {
234 public:
236
237 void Read() override;
238
241 };
242
243 class SetRole final : public ClientPacket
244 {
245 public:
246 SetRole(WorldPacket&& packet) : ClientPacket(CMSG_SET_ROLE, std::move(packet)) { }
247
248 void Read() override;
249
253 };
254
255 class RoleChangedInform final : public ServerPacket
256 {
257 public:
259
260 WorldPacket const* Write() override;
261
267 };
268
269 class LeaveGroup final : public ClientPacket
270 {
271 public:
273
274 void Read() override;
275
277 };
278
279 class SetLootMethod final : public ClientPacket
280 {
281 public:
283
284 void Read() override;
285
290 };
291
292 class MinimapPingClient final : public ClientPacket
293 {
294 public:
296
297 void Read() override;
298
300 float PositionX = 0.f;
301 float PositionY = 0.f;
302 };
303
304 class MinimapPing final : public ServerPacket
305 {
306 public:
308
309 WorldPacket const* Write() override;
310
312 float PositionX = 0.f;
313 float PositionY = 0.f;
314 };
315
316 class UpdateRaidTarget final : public ClientPacket
317 {
318 public:
320
321 void Read() override;
322
326 };
327
329 {
330 public:
332
333 WorldPacket const* Write() override;
334
339 };
340
342 {
343 public:
345
346 WorldPacket const* Write() override;
347
349 std::map<uint8, ObjectGuid> TargetIcons;
350 };
351
352 class ConvertRaid final : public ClientPacket
353 {
354 public:
356
357 void Read() override;
358
359 bool Raid = false;
360 };
361
363 {
364 public:
366
367 void Read() override;
368
370 };
371
372 class SetAssistantLeader final : public ClientPacket
373 {
374 public:
376
377 void Read() override;
378
381 bool Apply = false;
382 };
383
384 class SetPartyAssignment final : public ClientPacket
385 {
386 public:
388
389 void Read() override;
393 bool Set = false;
394 };
395
396 class DoReadyCheck final : public ClientPacket
397 {
398 public:
400
401 void Read() override;
402
404 };
405
406 class ReadyCheckStarted final : public ServerPacket
407 {
408 public:
410
411 WorldPacket const* Write() override;
412
417 };
418
420 {
421 public:
423
424 void Read() override;
425
427 bool IsReady = false;
428 };
429
430 class ReadyCheckResponse final : public ServerPacket
431 {
432 public:
434
435 WorldPacket const* Write() override;
436
439 bool IsReady = false;
440 };
441
443 {
444 public:
446
447 WorldPacket const* Write() override;
448
451 };
452
453 class RequestRaidInfo final : public ClientPacket
454 {
455 public:
457
458 void Read() override { }
459 };
460
461 class OptOutOfLoot final : public ClientPacket
462 {
463 public:
465
466 void Read() override;
467
468 bool PassOnLoot = false;
469 };
470
471 class InitiateRolePoll final : public ClientPacket
472 {
473 public:
475
476 void Read() override;
477
479 };
480
481 class RolePollInform final : public ServerPacket
482 {
483 public:
485
486 WorldPacket const* Write() override;
487
490 };
491
492 class GroupNewLeader final : public ServerPacket
493 {
494 public:
496
497 WorldPacket const* Write() override;
498
500 std::string Name;
501 };
502
504 {
506 std::string Name;
507 std::string VoiceStateID; // same as bgs.protocol.club.v1.MemberVoiceState.id
513 bool FromSocialQueue = false;
514 bool VoiceChatSilenced = false;
515 bool Connected = false;
516 };
517
519 {
524 bool Aborted = false;
526 float MyGearDiff = 0.0f;
529 bool MyFirstReward = false;
530 };
531
533 {
537 };
538
540 {
544 };
545
546 class PartyUpdate final : public ServerPacket
547 {
548 public:
550
551 WorldPacket const* Write() override;
552
556
560
563
564 std::vector<PartyPlayerInfo> PlayerList;
565
569 };
570
572 {
573 public:
575
576 void Read() override;
577
580 };
581
582 class ChangeSubGroup final : public ClientPacket
583 {
584 public:
586
587 void Read() override;
588
592 };
593
594 class SwapSubGroups final : public ClientPacket
595 {
596 public:
598
599 void Read() override;
600
604 };
605
606 class ClearRaidMarker final : public ClientPacket
607 {
608 public:
610
611 void Read() override;
612
614 };
615
616 class RaidMarkersChanged final : public ServerPacket
617 {
618 public:
620
621 WorldPacket const* Write() override;
622
625
626 std::vector<RaidMarker const*> RaidMarkers;
627 };
628
629 class PartyKillLog final : public ServerPacket
630 {
631 public:
633
634 WorldPacket const* Write() override;
635
638 };
639
640 class GroupDestroyed final : public ServerPacket
641 {
642 public:
644
645 WorldPacket const* Write() override { return &_worldPacket; }
646 };
647
649 {
650 public:
652
653 WorldPacket const* Write() override;
654
656 };
657
659 {
660 public:
662
663 WorldPacket const* Write() override;
664
666 bool Accepted = false;
667 };
668
670 {
671 public:
673
674 void Read() override;
675
678 };
679
680 class SendPingUnit final : public ClientPacket
681 {
682 public:
683 explicit SendPingUnit(WorldPacket&& packet) : ClientPacket(CMSG_SEND_PING_UNIT, std::move(packet)) { }
684
685 void Read() override;
686
691 };
692
693 class ReceivePingUnit final : public ServerPacket
694 {
695 public:
697
698 WorldPacket const* Write() override;
699
704 };
705
706 class SendPingWorldPoint final : public ClientPacket
707 {
708 public:
710
711 void Read() override;
712
718 };
719
721 {
722 public:
724
725 WorldPacket const* Write() override;
726
732 };
733
734 class CancelPingPin final : public ServerPacket
735 {
736 public:
738
739 WorldPacket const* Write() override;
740
743 };
744 }
745}
746
747#endif // PartyPackets_h__
uint8_t uint8
Definition: Define.h:144
int16_t int16
Definition: Define.h:139
int8_t int8
Definition: Define.h:140
int32_t int32
Definition: Define.h:138
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
PingSubjectType
Definition: Group.h:183
#define TARGET_ICONS_COUNT
Definition: Group.h:54
LootMethod
Definition: Loot.h:88
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
PhaseShiftFlags
Definition: PhaseShift.h:34
PowerType
WorldPacket _worldPacket
Definition: Packet.h:43
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
ChangeSubGroup(WorldPacket &&packet)
Definition: PartyPackets.h:585
ClearRaidMarker(WorldPacket &&packet)
Definition: PartyPackets.h:609
ConvertRaid(WorldPacket &&packet)
Definition: PartyPackets.h:355
DoReadyCheck(WorldPacket &&packet)
Definition: PartyPackets.h:399
GroupDecline(std::string const &name)
Definition: PartyPackets.h:119
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: PartyPackets.h:645
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: PartyPackets.h:131
InitiateRolePoll(WorldPacket &&packet)
Definition: PartyPackets.h:474
LeaveGroup(WorldPacket &&packet)
Definition: PartyPackets.h:272
MinimapPingClient(WorldPacket &&packet)
Definition: PartyPackets.h:295
WorldPacket const * Write() override
OptOutOfLoot(WorldPacket &&packet)
Definition: PartyPackets.h:464
WorldPacket const * Write() override
PartyInviteClient(WorldPacket &&packet)
Definition: PartyPackets.h:49
PartyInviteResponse(WorldPacket &&packet)
Definition: PartyPackets.h:95
std::vector< uint32 > LfgSlots
Definition: PartyPackets.h:89
void Initialize(Player const *inviter, int32 proposedRoles, bool canAccept)
Auth::VirtualRealmInfo InviterRealm
Definition: PartyPackets.h:78
WorldPacket const * Write() override
WorldPacket const * Write() override
void Initialize(Player const *player)
WorldPacket const * Write() override
PartyUninvite(WorldPacket &&packet)
Definition: PartyPackets.h:107
Optional< PartyLootSettings > LootSettings
Definition: PartyPackets.h:567
Optional< PartyDifficultySettings > DifficultySettings
Definition: PartyPackets.h:568
std::vector< PartyPlayerInfo > PlayerList
Definition: PartyPackets.h:564
WorldPacket const * Write() override
Optional< PartyLFGInfo > LfgInfos
Definition: PartyPackets.h:566
WorldPacket const * Write() override
std::vector< RaidMarker const * > RaidMarkers
Definition: PartyPackets.h:626
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPackets::Duration< Milliseconds > Duration
Definition: PartyPackets.h:416
WorldPacket const * Write() override
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > Point
Definition: PartyPackets.h:729
RequestRaidInfo(WorldPacket &&packet)
Definition: PartyPackets.h:456
WorldPacket const * Write() override
WorldPacket const * Write() override
SendPingUnit(WorldPacket &&packet)
Definition: PartyPackets.h:683
TaggedPosition< Position::XYZ > Point
Definition: PartyPackets.h:715
SendPingWorldPoint(WorldPacket &&packet)
Definition: PartyPackets.h:709
std::map< uint8, ObjectGuid > TargetIcons
Definition: PartyPackets.h:349
WorldPacket const * Write() override
SetAssistantLeader(WorldPacket &&packet)
Definition: PartyPackets.h:375
SetLootMethod(WorldPacket &&packet)
Definition: PartyPackets.h:282
SetPartyAssignment(WorldPacket &&packet)
Definition: PartyPackets.h:387
SetPartyLeader(WorldPacket &&packet)
Definition: PartyPackets.h:235
Optional< uint8 > PartyIndex
Definition: PartyPackets.h:250
SetRole(WorldPacket &&packet)
Definition: PartyPackets.h:246
SwapSubGroups(WorldPacket &&packet)
Definition: PartyPackets.h:597
UpdateRaidTarget(WorldPacket &&packet)
Definition: PartyPackets.h:319
@ CMSG_REQUEST_PARTY_JOIN_UPDATES
Definition: Opcodes.h:722
@ CMSG_CHANGE_SUB_GROUP
Definition: Opcodes.h:189
@ CMSG_CONVERT_RAID
Definition: Opcodes.h:294
@ CMSG_READY_CHECK_RESPONSE
Definition: Opcodes.h:690
@ CMSG_SWAP_SUB_GROUPS
Definition: Opcodes.h:840
@ CMSG_SET_ASSISTANT_LEADER
Definition: Opcodes.h:768
@ CMSG_OPT_OUT_OF_LOOT
Definition: Opcodes.h:600
@ CMSG_DO_READY_CHECK
Definition: Opcodes.h:330
@ CMSG_SEND_PING_UNIT
Definition: Opcodes.h:759
@ CMSG_MINIMAP_PING
Definition: Opcodes.h:495
@ CMSG_SET_PARTY_LEADER
Definition: Opcodes.h:787
@ CMSG_LEAVE_GROUP
Definition: Opcodes.h:452
@ CMSG_SET_EVERYONE_IS_ASSISTANT
Definition: Opcodes.h:777
@ CMSG_SET_PARTY_ASSIGNMENT
Definition: Opcodes.h:786
@ CMSG_CLEAR_RAID_MARKER
Definition: Opcodes.h:247
@ CMSG_PARTY_INVITE_RESPONSE
Definition: Opcodes.h:603
@ CMSG_INITIATE_ROLE_POLL
Definition: Opcodes.h:438
@ CMSG_SET_ROLE
Definition: Opcodes.h:794
@ CMSG_REQUEST_RAID_INFO
Definition: Opcodes.h:727
@ CMSG_SET_RESTRICT_PINGS_TO_ASSISTANTS
Definition: Opcodes.h:793
@ CMSG_PARTY_INVITE
Definition: Opcodes.h:602
@ CMSG_PARTY_UNINVITE
Definition: Opcodes.h:604
@ CMSG_SET_LOOT_METHOD
Definition: Opcodes.h:784
@ CMSG_UPDATE_RAID_TARGET
Definition: Opcodes.h:875
@ CMSG_SEND_PING_WORLD_POINT
Definition: Opcodes.h:760
@ CMSG_REQUEST_PARTY_MEMBER_STATS
Definition: Opcodes.h:723
@ SMSG_RECEIVE_PING_UNIT
Definition: Opcodes.h:1835
@ SMSG_READY_CHECK_COMPLETED
Definition: Opcodes.h:1828
@ SMSG_PARTY_COMMAND_RESULT
Definition: Opcodes.h:1674
@ SMSG_BROADCAST_SUMMON_CAST
Definition: Opcodes.h:1044
@ SMSG_SEND_RAID_TARGET_UPDATE_ALL
Definition: Opcodes.h:1893
@ SMSG_BROADCAST_SUMMON_RESPONSE
Definition: Opcodes.h:1045
@ SMSG_RECEIVE_PING_WORLD_POINT
Definition: Opcodes.h:1836
@ SMSG_GROUP_UNINVITE
Definition: Opcodes.h:1368
@ SMSG_ROLE_POLL_INFORM
Definition: Opcodes.h:1871
@ SMSG_PARTY_MEMBER_FULL_STATE
Definition: Opcodes.h:1677
@ SMSG_PARTY_INVITE
Definition: Opcodes.h:1675
@ SMSG_GROUP_DESTROYED
Definition: Opcodes.h:1365
@ SMSG_SEND_RAID_TARGET_UPDATE_SINGLE
Definition: Opcodes.h:1894
@ SMSG_GROUP_NEW_LEADER
Definition: Opcodes.h:1366
@ SMSG_PARTY_KILL_LOG
Definition: Opcodes.h:1676
@ SMSG_ROLE_CHANGED_INFORM
Definition: Opcodes.h:1869
@ SMSG_RAID_MARKERS_CHANGED
Definition: Opcodes.h:1825
@ SMSG_PARTY_UPDATE
Definition: Opcodes.h:1680
@ SMSG_READY_CHECK_STARTED
Definition: Opcodes.h:1830
@ SMSG_GROUP_DECLINE
Definition: Opcodes.h:1364
@ SMSG_MINIMAP_PING
Definition: Opcodes.h:1536
@ SMSG_CANCEL_PING_PIN
Definition: Opcodes.h:1074
@ SMSG_READY_CHECK_RESPONSE
Definition: Opcodes.h:1829
constexpr std::size_t size()
Definition: UpdateField.h:796
STL namespace.
std::vector< PartyMemberAuraStates > Auras
Definition: PartyPackets.h:175
std::vector< PartyMemberPhase > List
Definition: PartyPackets.h:155
Optional< PartyMemberPetStats > PetStats
Definition: PartyPackets.h:206
std::vector< PartyMemberAuraStates > Auras
Definition: PartyPackets.h:205
MythicPlus::DungeonScoreSummary DungeonScore
Definition: PartyPackets.h:216