TrinityCore
PartyPackets.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 "PartyPackets.h"
19#include "Pet.h"
20#include "PhasingHandler.h"
21#include "Player.h"
22#include "Realm.h"
23#include "SpellAuraEffects.h"
24#include "SpellAuras.h"
25#include "Vehicle.h"
26#include "World.h"
27#include "WorldSession.h"
28
30{
31 _worldPacket.WriteBits(Name.size(), 9);
32
35
39
41
42 return &_worldPacket;
43}
44
46{
47 bool hasPartyIndex = _worldPacket.ReadBit();
48
49 _worldPacket.ResetBitPos();
50 uint32 targetNameLen = _worldPacket.ReadBits(9);
51 uint32 targetRealmLen = _worldPacket.ReadBits(9);
52
53 _worldPacket >> ProposedRoles;
54 _worldPacket >> TargetGUID;
55
56 TargetName = _worldPacket.ReadString(targetNameLen);
57 TargetRealm = _worldPacket.ReadString(targetRealmLen);
58 if (hasPartyIndex)
59 _worldPacket >> PartyIndex.emplace();
60}
61
63{
64 _worldPacket.WriteBit(CanAccept);
65 _worldPacket.WriteBit(MightCRZYou);
66 _worldPacket.WriteBit(IsXRealm);
67 _worldPacket.WriteBit(MustBeBNetFriend);
68 _worldPacket.WriteBit(AllowMultipleRoles);
69 _worldPacket.WriteBit(QuestSessionActive);
70 _worldPacket.WriteBits(InviterName.length(), 6);
71
72 _worldPacket << InviterRealm;
73 _worldPacket << InviterGUID;
74 _worldPacket << InviterBNetAccountId;
75 _worldPacket << uint16(Unk1);
76 _worldPacket << uint8(ProposedRoles);
77 _worldPacket << uint32(LfgSlots.size());
78 _worldPacket << uint32(LfgCompletedMask);
79
80 _worldPacket.WriteString(InviterName);
81
82 for (uint32 LfgSlot : LfgSlots)
83 _worldPacket << LfgSlot;
84
85 return &_worldPacket;
86}
87
88void WorldPackets::Party::PartyInvite::Initialize(Player const* inviter, int32 proposedRoles, bool canAccept)
89{
90 CanAccept = canAccept;
91
92 InviterName = inviter->GetName();
93 InviterGUID = inviter->GetGUID();
94 InviterBNetAccountId = inviter->GetSession()->GetAccountGUID();
95
96 ProposedRoles = proposedRoles;
97
98 InviterRealm = Auth::VirtualRealmInfo(realm.Id.GetAddress(), true, false, realm.Name, realm.NormalizedName);
99}
100
102{
103 bool hasPartyIndex = _worldPacket.ReadBit();
104 Accept = _worldPacket.ReadBit();
105 bool hasRolesDesired = _worldPacket.ReadBit();
106
107 if (hasPartyIndex)
108 _worldPacket >> PartyIndex.emplace();
109
110 if (hasRolesDesired)
111 _worldPacket >> RolesDesired.emplace();
112}
113
115{
116 bool hasPartyIndex = _worldPacket.ReadBit();
117 uint32 reasonLen = _worldPacket.ReadBits(8);
118
119 _worldPacket >> TargetGUID;
120 if (hasPartyIndex)
121 _worldPacket >> PartyIndex.emplace();
122
123 Reason = _worldPacket.ReadString(reasonLen);
124}
125
127{
128 _worldPacket.WriteBits(Name.length(), 9);
129 _worldPacket.FlushBits();
130 _worldPacket.WriteString(Name);
131
132 return &_worldPacket;
133}
134
136{
137 bool hasPartyIndex = _worldPacket.ReadBit();
138 _worldPacket >> TargetGUID;
139 if (hasPartyIndex)
140 _worldPacket >> PartyIndex.emplace();
141}
142
144{
145 data << uint32(phase.Flags);
146 data << uint16(phase.Id);
147
148 return data;
149}
150
152{
153 data << uint32(phases.PhaseShiftFlags);
154 data << uint32(phases.List.size());
155 data << phases.PersonalGUID;
156
157 for (WorldPackets::Party::PartyMemberPhase const& phase : phases.List)
158 data << phase;
159
160 return data;
161}
162
164{
165 data << int32(aura.SpellID);
166 data << uint16(aura.Flags);
167 data << uint32(aura.ActiveFlags);
168 data << int32(aura.Points.size());
169 for (float points : aura.Points)
170 data << float(points);
171
172 return data;
173}
174
176{
177 data << uint32(ctrOptions.ContentTuningConditionMask);
178 data << int32(ctrOptions.Unused901);
179 data << uint32(ctrOptions.ExpansionLevelMask);
180
181 return data;
182}
183
185{
186 data << petStats.GUID;
187 data << int32(petStats.ModelId);
188 data << int32(petStats.CurrentHealth);
189 data << int32(petStats.MaxHealth);
190 data << uint32(petStats.Auras.size());
191 for (WorldPackets::Party::PartyMemberAuraStates const& aura : petStats.Auras)
192 data << aura;
193
194 data.WriteBits(petStats.Name.size(), 8);
195 data.FlushBits();
196 data.WriteString(petStats.Name);
197
198 return data;
199}
200
202{
203 for (uint32 i = 0; i < 2; i++)
204 data << uint8(memberStats.PartyType[i]);
205
206 data << uint16(memberStats.Status);
207 data << uint8(memberStats.PowerType);
208 data << uint16(memberStats.PowerDisplayID);
209 data << int32(memberStats.CurrentHealth);
210 data << int32(memberStats.MaxHealth);
211 data << uint16(memberStats.CurrentPower);
212 data << uint16(memberStats.MaxPower);
213 data << uint16(memberStats.Level);
214 data << uint16(memberStats.SpecID);
215 data << uint16(memberStats.ZoneID);
216 data << uint16(memberStats.WmoGroupID);
217 data << uint32(memberStats.WmoDoodadPlacementID);
218 data << int16(memberStats.PositionX);
219 data << int16(memberStats.PositionY);
220 data << int16(memberStats.PositionZ);
221 data << int32(memberStats.VehicleSeat);
222 data << uint32(memberStats.Auras.size());
223 data << memberStats.Phases;
224 data << memberStats.ChromieTime;
225
226 for (WorldPackets::Party::PartyMemberAuraStates const& aura : memberStats.Auras)
227 data << aura;
228
229 data.WriteBit(memberStats.PetStats.has_value());
230 data.FlushBits();
231
232 data << memberStats.DungeonScore;
233
234 if (memberStats.PetStats.has_value())
235 data << *memberStats.PetStats;
236
237 return data;
238}
239
241{
242 _worldPacket.WriteBit(ForEnemy);
243
244 _worldPacket << MemberStats;
245 _worldPacket << MemberGuid;
246
247 return &_worldPacket;
248}
249
251{
252 bool hasPartyIndex = _worldPacket.ReadBit();
253 _worldPacket >> TargetGUID;
254 if (hasPartyIndex)
255 _worldPacket >> PartyIndex.emplace();
256}
257
259{
260 bool hasPartyIndex = _worldPacket.ReadBit();
261 Set = _worldPacket.ReadBit();
262 _worldPacket >> Assignment;
263 _worldPacket >> Target;
264 if (hasPartyIndex)
265 _worldPacket >> PartyIndex.emplace();
266}
267
269{
270 bool hasPartyIndex = _worldPacket.ReadBit();
271 _worldPacket >> TargetGUID;
272 _worldPacket >> Role;
273 if (hasPartyIndex)
274 _worldPacket >> PartyIndex.emplace();
275}
276
278{
279 _worldPacket << uint8(PartyIndex);
280 _worldPacket << From;
281 _worldPacket << ChangedUnit;
282 _worldPacket << uint8(OldRole);
283 _worldPacket << uint8(NewRole);
284
285 return &_worldPacket;
286}
287
289{
290 if (_worldPacket.ReadBit())
291 _worldPacket >> PartyIndex.emplace();
292}
293
295{
296 bool hasPartyIndex = _worldPacket.ReadBit();
297 _worldPacket >> LootMethod;
298 _worldPacket >> LootMasterGUID;
299 _worldPacket >> LootThreshold;
300 if (hasPartyIndex)
301 _worldPacket >> PartyIndex.emplace();
302}
303
305{
306 bool hasPartyIndex = _worldPacket.ReadBit();
307 _worldPacket >> PositionX;
308 _worldPacket >> PositionY;
309 if (hasPartyIndex)
310 _worldPacket >> PartyIndex.emplace();
311}
312
314{
315 _worldPacket << Sender;
316 _worldPacket << PositionX;
317 _worldPacket << PositionY;
318
319 return &_worldPacket;
320}
321
323{
324 bool hasPartyIndex = _worldPacket.ReadBit();
325 _worldPacket >> Target;
326 _worldPacket >> Symbol;
327 if (hasPartyIndex)
328 _worldPacket >> PartyIndex.emplace();
329}
330
332{
333 _worldPacket << PartyIndex;
334 _worldPacket << Symbol;
335 _worldPacket << Target;
336 _worldPacket << ChangedBy;
337
338 return &_worldPacket;
339}
340
342{
343 _worldPacket << uint8(PartyIndex);
344 _worldPacket << uint32(TargetIcons.size());
345
346 for (auto itr = TargetIcons.begin(); itr != TargetIcons.end(); ++itr)
347 {
348 _worldPacket << itr->second;
349 _worldPacket << uint8(itr->first);
350 }
351
352 return &_worldPacket;
353}
354
356{
357 Raid = _worldPacket.ReadBit();
358}
359
361{
362 if (_worldPacket.ReadBit())
363 _worldPacket >> PartyIndex.emplace();
364}
365
367{
368 bool hasPartyIndex = _worldPacket.ReadBit();
369 Apply = _worldPacket.ReadBit();
370 _worldPacket >> Target;
371 if (hasPartyIndex)
372 _worldPacket >> PartyIndex.emplace();
373}
374
376{
377 if (_worldPacket.ReadBit())
378 _worldPacket >> PartyIndex.emplace();
379}
380
382{
383 _worldPacket << PartyIndex;
384 _worldPacket << PartyGUID;
385 _worldPacket << InitiatorGUID;
386 _worldPacket << Duration;
387
388 return &_worldPacket;
389}
390
392{
393 IsReady = _worldPacket.ReadBit();
394 if (_worldPacket.ReadBit())
395 _worldPacket >> PartyIndex.emplace();
396}
397
399{
400 _worldPacket << PartyGUID;
401 _worldPacket << Player;
402
403 _worldPacket.WriteBit(IsReady);
404
405 _worldPacket.FlushBits();
406
407 return &_worldPacket;
408}
409
411{
412 _worldPacket << PartyIndex;
413 _worldPacket << PartyGUID;
414
415 return &_worldPacket;
416}
417
419{
420 PassOnLoot = _worldPacket.ReadBit();
421}
422
424{
425 if (_worldPacket.ReadBit())
426 _worldPacket >> PartyIndex.emplace();
427}
428
430{
431 _worldPacket << PartyIndex;
432 _worldPacket << From;
433
434 return &_worldPacket;
435}
436
438{
439 _worldPacket << PartyIndex;
440 _worldPacket.WriteBits(Name.size(), 9);
441 _worldPacket.WriteString(Name);
442
443 return &_worldPacket;
444}
445
447{
448 data.WriteBits(playerInfo.Name.size(), 6);
449 data.WriteBits(playerInfo.VoiceStateID.size() + 1, 6);
450 data.WriteBit(playerInfo.Connected);
451 data.WriteBit(playerInfo.VoiceChatSilenced);
452 data.WriteBit(playerInfo.FromSocialQueue);
453 data << playerInfo.GUID;
454 data << uint8(playerInfo.Subgroup);
455 data << uint8(playerInfo.Flags);
456 data << uint8(playerInfo.RolesAssigned);
457 data << uint8(playerInfo.Class);
458 data << uint8(playerInfo.FactionGroup);
459 data.WriteString(playerInfo.Name);
460 if (!playerInfo.VoiceStateID.empty())
461 data << playerInfo.VoiceStateID;
462
463 return data;
464}
465
467{
468 data << uint8(lfgInfos.MyFlags);
469 data << uint32(lfgInfos.Slot);
470 data << uint32(lfgInfos.MyRandomSlot);
471 data << uint8(lfgInfos.MyPartialClear);
472 data << float(lfgInfos.MyGearDiff);
473 data << uint8(lfgInfos.MyStrangerCount);
474 data << uint8(lfgInfos.MyKickVoteCount);
475 data << uint8(lfgInfos.BootCount);
476 data.WriteBit(lfgInfos.Aborted);
477 data.WriteBit(lfgInfos.MyFirstReward);
478 data.FlushBits();
479
480 return data;
481}
482
484{
485 data << uint8(lootSettings.Method);
486 data << lootSettings.LootMaster;
487 data << uint8(lootSettings.Threshold);
488
489 return data;
490}
491
493{
494 data << uint32(difficultySettings.DungeonDifficultyID);
495 data << uint32(difficultySettings.RaidDifficultyID);
496 data << uint32(difficultySettings.LegacyRaidDifficultyID);
497
498 return data;
499}
500
502{
503 _worldPacket << uint16(PartyFlags);
504 _worldPacket << uint8(PartyIndex);
505 _worldPacket << uint8(PartyType);
506 _worldPacket << int32(MyIndex);
507 _worldPacket << PartyGUID;
508 _worldPacket << uint32(SequenceNum);
509 _worldPacket << LeaderGUID;
510 _worldPacket << uint8(LeaderFactionGroup);
511 _worldPacket << uint32(PlayerList.size());
512 _worldPacket.WriteBit(LfgInfos.has_value());
513 _worldPacket.WriteBit(LootSettings.has_value());
514 _worldPacket.WriteBit(DifficultySettings.has_value());
515 _worldPacket.FlushBits();
516
517 for (WorldPackets::Party::PartyPlayerInfo const& playerInfos : PlayerList)
518 _worldPacket << playerInfos;
519
520 if (LootSettings.has_value())
521 _worldPacket << *LootSettings;
522
523 if (DifficultySettings.has_value())
524 _worldPacket << *DifficultySettings;
525
526 if (LfgInfos.has_value())
527 _worldPacket << *LfgInfos;
528
529 return &_worldPacket;
530}
531
533{
534 bool hasPartyIndex = _worldPacket.ReadBit();
535 EveryoneIsAssistant = _worldPacket.ReadBit();
536 if (hasPartyIndex)
537 _worldPacket >> PartyIndex.emplace();
538}
539
541{
542 _worldPacket >> TargetGUID;
543 _worldPacket >> NewSubGroup;
544 if (_worldPacket.ReadBit())
545 _worldPacket >> PartyIndex.emplace();
546}
547
549{
550 bool hasPartyIndex = _worldPacket.ReadBit();
551 _worldPacket >> FirstTarget;
552 _worldPacket >> SecondTarget;
553 if (hasPartyIndex)
554 _worldPacket >> PartyIndex.emplace();
555}
556
558{
559 _worldPacket >> MarkerId;
560}
561
563{
564 _worldPacket << uint8(PartyIndex);
565 _worldPacket << uint32(ActiveMarkers);
566
567 _worldPacket.WriteBits(RaidMarkers.size(), 4);
568 _worldPacket.FlushBits();
569
570 for (RaidMarker const* raidMarker : RaidMarkers)
571 {
572 _worldPacket << raidMarker->TransportGUID;
573 _worldPacket << raidMarker->Location.GetMapId();
574 _worldPacket << raidMarker->Location.PositionXYZStream();
575 }
576
577 return &_worldPacket;
578}
579
581{
582 ForEnemy = false;
583
584 MemberGuid = player->GetGUID();
585
586 // Status
587 MemberStats.Status = MEMBER_STATUS_ONLINE;
588
589 if (player->IsPvP())
590 MemberStats.Status |= MEMBER_STATUS_PVP;
591
592 if (!player->IsAlive())
593 {
595 MemberStats.Status |= MEMBER_STATUS_GHOST;
596 else
597 MemberStats.Status |= MEMBER_STATUS_DEAD;
598 }
599
600 if (player->IsFFAPvP())
601 MemberStats.Status |= MEMBER_STATUS_PVP_FFA;
602
603 if (player->isAFK())
604 MemberStats.Status |= MEMBER_STATUS_AFK;
605
606 if (player->isDND())
607 MemberStats.Status |= MEMBER_STATUS_DND;
608
609 if (player->GetVehicle())
610 MemberStats.Status |= MEMBER_STATUS_VEHICLE;
611
612 // Level
613 MemberStats.Level = player->GetLevel();
614
615 // Health
616 MemberStats.CurrentHealth = player->GetHealth();
617 MemberStats.MaxHealth = player->GetMaxHealth();
618
619 // Power
620 MemberStats.PowerType = player->GetPowerType();
621 MemberStats.PowerDisplayID = 0;
622 MemberStats.CurrentPower = player->GetPower(player->GetPowerType());
623 MemberStats.MaxPower = player->GetMaxPower(player->GetPowerType());
624
625 // Position
626 MemberStats.ZoneID = player->GetZoneId();
627 MemberStats.PositionX = int16(player->GetPositionX());
628 MemberStats.PositionY = int16(player->GetPositionY());
629 MemberStats.PositionZ = int16(player->GetPositionZ());
630
631 MemberStats.SpecID = AsUnderlyingType(player->GetPrimarySpecialization());
632 MemberStats.PartyType[0] = player->m_playerData->PartyType[0];
633 MemberStats.PartyType[1] = player->m_playerData->PartyType[1];
634
635 if (WmoLocation const* wmoLocation = player->GetCurrentWmo())
636 {
637 MemberStats.WmoGroupID = wmoLocation->GroupId;
638 MemberStats.WmoDoodadPlacementID = wmoLocation->UniqueId;
639 }
640
641 // Vehicle
642 if (::Vehicle const* vehicle = player->GetVehicle())
643 if (VehicleSeatEntry const* vehicleSeat = vehicle->GetSeatForPassenger(player))
644 MemberStats.VehicleSeat = vehicleSeat->ID;
645
646 // Auras
647 for (AuraApplication const* aurApp : player->GetVisibleAuras())
648 {
650
651 aura.SpellID = aurApp->GetBase()->GetId();
652 aura.ActiveFlags = aurApp->GetEffectMask();
653 aura.Flags = aurApp->GetFlags();
654
655 if (aurApp->GetFlags() & AFLAG_SCALABLE)
656 {
657 for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects())
658 {
659 if (!aurEff)
660 continue;
661
662 if (aurApp->HasEffect(aurEff->GetEffIndex()))
663 aura.Points.push_back(float(aurEff->GetAmount()));
664 }
665 }
666
667 MemberStats.Auras.push_back(aura);
668 }
669
670 // Phases
671 PhasingHandler::FillPartyMemberPhase(&MemberStats.Phases, player->GetPhaseShift());
672
673 // Pet
674 if (player->GetPet())
675 {
676 ::Pet* pet = player->GetPet();
677
678 MemberStats.PetStats.emplace();
679
680 MemberStats.PetStats->GUID = pet->GetGUID();
681 MemberStats.PetStats->Name = pet->GetName();
682 MemberStats.PetStats->ModelId = pet->GetDisplayId();
683
684 MemberStats.PetStats->CurrentHealth = pet->GetHealth();
685 MemberStats.PetStats->MaxHealth = pet->GetMaxHealth();
686
687 for (AuraApplication const* aurApp : pet->GetVisibleAuras())
688 {
690
691 aura.SpellID = aurApp->GetBase()->GetId();
692 aura.ActiveFlags = aurApp->GetEffectMask();
693 aura.Flags = aurApp->GetFlags();
694
695 if (aurApp->GetFlags() & AFLAG_SCALABLE)
696 {
697 for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects())
698 {
699 if (!aurEff)
700 continue;
701
702 if (aurApp->HasEffect(aurEff->GetEffIndex()))
703 aura.Points.push_back(float(aurEff->GetAmount()));
704 }
705 }
706
707 MemberStats.PetStats->Auras.push_back(aura);
708 }
709 }
710}
711
713{
714 _worldPacket << Player;
715 _worldPacket << Victim;
716
717 return &_worldPacket;
718}
719
721{
722 _worldPacket << Target;
723
724 return &_worldPacket;
725}
726
728{
729 _worldPacket << Target;
730 _worldPacket.WriteBit(Accepted);
731 _worldPacket.FlushBits();
732
733 return &_worldPacket;
734}
735
737{
738 bool hasPartyIndex = _worldPacket.ReadBit();
739 RestrictPingsToAssistants = _worldPacket.ReadBit();
740 if (hasPartyIndex)
741 _worldPacket >> PartyIndex.emplace();
742}
743
745{
746 _worldPacket >> SenderGUID;
747 _worldPacket >> TargetGUID;
748 Type = _worldPacket.read<PingSubjectType, uint8>();
749 _worldPacket >> PinFrameID;
750}
751
753{
754 _worldPacket << SenderGUID;
755 _worldPacket << TargetGUID;
756 _worldPacket << uint8(Type);
757 _worldPacket << uint32(PinFrameID);
758
759 return &_worldPacket;
760}
761
763{
764 _worldPacket >> SenderGUID;
765 _worldPacket >> MapID;
766 _worldPacket >> Point;
767 Type = _worldPacket.read<PingSubjectType, uint8>();
768 _worldPacket >> PinFrameID;
769}
770
772{
773 _worldPacket << SenderGUID;
774 _worldPacket << MapID;
775 _worldPacket << Point;
776 _worldPacket << uint8(Type);
777 _worldPacket << PinFrameID;
778
779 return &_worldPacket;
780}
781
783{
784 _worldPacket << SenderGUID;
785 _worldPacket << PinFrameID;
786
787 return &_worldPacket;
788}
uint8_t uint8
Definition: Define.h:144
int16_t int16
Definition: Define.h:139
int32_t int32
Definition: Define.h:138
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
@ MEMBER_STATUS_AFK
Definition: Group.h:68
@ MEMBER_STATUS_VEHICLE
Definition: Group.h:71
@ MEMBER_STATUS_PVP
Definition: Group.h:63
@ MEMBER_STATUS_ONLINE
Definition: Group.h:62
@ MEMBER_STATUS_DEAD
Definition: Group.h:64
@ MEMBER_STATUS_GHOST
Definition: Group.h:65
@ MEMBER_STATUS_DND
Definition: Group.h:69
@ MEMBER_STATUS_PVP_FFA
Definition: Group.h:66
PingSubjectType
Definition: Group.h:183
LootMethod
Definition: Loot.h:88
@ PLAYER_FLAGS_GHOST
Definition: Player.h:432
@ AFLAG_SCALABLE
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
Definition: Util.h:491
Aura * GetBase() const
AuraEffectVector const & GetAuraEffects() const
Definition: SpellAuras.h:308
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
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:159
Definition: Pet.h:40
static void FillPartyMemberPhase(WorldPackets::Party::PartyMemberPhaseStates *partyMemberPhases, PhaseShift const &phaseShift)
ChrSpecialization GetPrimarySpecialization() const
Definition: Player.h:1841
UF::UpdateField< UF::PlayerData, 0, TYPEID_PLAYER > m_playerData
Definition: Player.h:2863
Pet * GetPet() const
Definition: Player.cpp:21513
WorldSession * GetSession() const
Definition: Player.h:2101
bool isDND() const
Definition: Player.h:1157
bool HasPlayerFlag(PlayerFlags flags) const
Definition: Player.h:2737
bool isAFK() const
Definition: Player.h:1156
Vehicle * GetVehicle() const
Definition: Unit.h:1713
bool IsPvP() const
Definition: Unit.h:873
Powers GetPowerType() const
Definition: Unit.h:799
bool IsAlive() const
Definition: Unit.h:1164
int32 GetMaxPower(Powers power) const
Definition: Unit.cpp:9410
uint32 GetDisplayId() const
Definition: Unit.h:1567
uint64 GetMaxHealth() const
Definition: Unit.h:777
uint64 GetHealth() const
Definition: Unit.h:776
bool IsFFAPvP() const
Definition: Unit.h:874
int32 GetPower(Powers power) const
Definition: Unit.cpp:9401
VisibleAuraContainer const & GetVisibleAuras() const
Definition: Unit.h:1549
uint8 GetLevel() const
Definition: Unit.h:746
PhaseShift & GetPhaseShift()
Definition: Object.h:523
WmoLocation const * GetCurrentWmo() const
Definition: Object.h:551
std::string const & GetName() const
Definition: Object.h:555
uint32 GetZoneId() const
Definition: Object.h:545
WorldPacket _worldPacket
Definition: Packet.h:43
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
void Initialize(Player const *inviter, int32 proposedRoles, bool canAccept)
WorldPacket const * Write() override
WorldPacket const * Write() override
void Initialize(Player const *player)
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
ObjectGuid GetAccountGUID() const
Realm realm
Definition: World.cpp:3966
ByteBuffer & operator<<(ByteBuffer &data, Movement::MonsterSplineFilterKey const &monsterSplineFilterKey)
uint32 GetAddress() const
Definition: Realm.h:56
constexpr float GetPositionX() const
Definition: Position.h:76
constexpr float GetPositionY() const
Definition: Position.h:77
constexpr float GetPositionZ() const
Definition: Position.h:78
std::string NormalizedName
Definition: Realm.h:87
std::string Name
Definition: Realm.h:86
Battlenet::RealmHandle Id
Definition: Realm.h:82
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