47 bool hasPartyIndex = _worldPacket.ReadBit();
49 _worldPacket.ResetBitPos();
50 uint32 targetNameLen = _worldPacket.ReadBits(9);
51 uint32 targetRealmLen = _worldPacket.ReadBits(9);
53 _worldPacket >> ProposedRoles;
54 _worldPacket >> TargetGUID;
56 TargetName = _worldPacket.ReadString(targetNameLen);
57 TargetRealm = _worldPacket.ReadString(targetRealmLen);
59 _worldPacket >> PartyIndex.emplace();
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);
72 _worldPacket << InviterRealm;
73 _worldPacket << InviterGUID;
74 _worldPacket << InviterBNetAccountId;
76 _worldPacket <<
uint8(ProposedRoles);
77 _worldPacket <<
uint32(LfgSlots.size());
78 _worldPacket <<
uint32(LfgCompletedMask);
80 _worldPacket.WriteString(InviterName);
82 for (
uint32 LfgSlot : LfgSlots)
83 _worldPacket << LfgSlot;
90 CanAccept = canAccept;
92 InviterName = inviter->
GetName();
93 InviterGUID = inviter->
GetGUID();
96 ProposedRoles = proposedRoles;
103 bool hasPartyIndex = _worldPacket.ReadBit();
104 Accept = _worldPacket.ReadBit();
105 bool hasRolesDesired = _worldPacket.ReadBit();
108 _worldPacket >> PartyIndex.emplace();
111 _worldPacket >> RolesDesired.emplace();
116 bool hasPartyIndex = _worldPacket.ReadBit();
117 uint32 reasonLen = _worldPacket.ReadBits(8);
119 _worldPacket >> TargetGUID;
121 _worldPacket >> PartyIndex.emplace();
123 Reason = _worldPacket.ReadString(reasonLen);
129 _worldPacket.FlushBits();
130 _worldPacket.WriteString(
Name);
132 return &_worldPacket;
137 bool hasPartyIndex = _worldPacket.ReadBit();
138 _worldPacket >> TargetGUID;
140 _worldPacket >> PartyIndex.emplace();
169 for (
float points : aura.
Points)
170 data << float(points);
186 data << petStats.
GUID;
203 for (
uint32 i = 0; i < 2; i++)
223 data << memberStats.
Phases;
234 if (memberStats.
PetStats.has_value())
244 _worldPacket << MemberStats;
245 _worldPacket << MemberGuid;
247 return &_worldPacket;
252 bool hasPartyIndex = _worldPacket.ReadBit();
253 _worldPacket >> TargetGUID;
255 _worldPacket >> PartyIndex.emplace();
260 bool hasPartyIndex = _worldPacket.ReadBit();
261 Set = _worldPacket.ReadBit();
262 _worldPacket >> Assignment;
263 _worldPacket >> Target;
265 _worldPacket >> PartyIndex.emplace();
270 bool hasPartyIndex = _worldPacket.ReadBit();
271 _worldPacket >> TargetGUID;
272 _worldPacket >> Role;
274 _worldPacket >> PartyIndex.emplace();
279 _worldPacket <<
uint8(PartyIndex);
280 _worldPacket << From;
281 _worldPacket << ChangedUnit;
282 _worldPacket <<
uint8(OldRole);
283 _worldPacket <<
uint8(NewRole);
285 return &_worldPacket;
290 if (_worldPacket.ReadBit())
291 _worldPacket >> PartyIndex.emplace();
296 bool hasPartyIndex = _worldPacket.ReadBit();
298 _worldPacket >> LootMasterGUID;
299 _worldPacket >> LootThreshold;
301 _worldPacket >> PartyIndex.emplace();
306 bool hasPartyIndex = _worldPacket.ReadBit();
307 _worldPacket >> PositionX;
308 _worldPacket >> PositionY;
310 _worldPacket >> PartyIndex.emplace();
315 _worldPacket << Sender;
316 _worldPacket << PositionX;
317 _worldPacket << PositionY;
319 return &_worldPacket;
324 bool hasPartyIndex = _worldPacket.ReadBit();
325 _worldPacket >> Target;
326 _worldPacket >> Symbol;
328 _worldPacket >> PartyIndex.emplace();
333 _worldPacket << PartyIndex;
334 _worldPacket << Symbol;
335 _worldPacket << Target;
336 _worldPacket << ChangedBy;
338 return &_worldPacket;
343 _worldPacket <<
uint8(PartyIndex);
344 _worldPacket <<
uint32(TargetIcons.size());
346 for (
auto itr = TargetIcons.begin(); itr != TargetIcons.end(); ++itr)
348 _worldPacket << itr->second;
349 _worldPacket <<
uint8(itr->first);
352 return &_worldPacket;
357 Raid = _worldPacket.ReadBit();
362 if (_worldPacket.ReadBit())
363 _worldPacket >> PartyIndex.emplace();
368 bool hasPartyIndex = _worldPacket.ReadBit();
369 Apply = _worldPacket.ReadBit();
370 _worldPacket >> Target;
372 _worldPacket >> PartyIndex.emplace();
377 if (_worldPacket.ReadBit())
378 _worldPacket >> PartyIndex.emplace();
383 _worldPacket << PartyIndex;
384 _worldPacket << PartyGUID;
385 _worldPacket << InitiatorGUID;
388 return &_worldPacket;
393 IsReady = _worldPacket.ReadBit();
394 if (_worldPacket.ReadBit())
395 _worldPacket >> PartyIndex.emplace();
400 _worldPacket << PartyGUID;
403 _worldPacket.WriteBit(IsReady);
405 _worldPacket.FlushBits();
407 return &_worldPacket;
412 _worldPacket << PartyIndex;
413 _worldPacket << PartyGUID;
415 return &_worldPacket;
420 PassOnLoot = _worldPacket.ReadBit();
425 if (_worldPacket.ReadBit())
426 _worldPacket >> PartyIndex.emplace();
431 _worldPacket << PartyIndex;
432 _worldPacket << From;
434 return &_worldPacket;
439 _worldPacket << PartyIndex;
441 _worldPacket.WriteString(
Name);
443 return &_worldPacket;
453 data << playerInfo.
GUID;
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();
518 _worldPacket << playerInfos;
520 if (LootSettings.has_value())
521 _worldPacket << *LootSettings;
523 if (DifficultySettings.has_value())
524 _worldPacket << *DifficultySettings;
526 if (LfgInfos.has_value())
527 _worldPacket << *LfgInfos;
529 return &_worldPacket;
534 bool hasPartyIndex = _worldPacket.ReadBit();
535 EveryoneIsAssistant = _worldPacket.ReadBit();
537 _worldPacket >> PartyIndex.emplace();
542 _worldPacket >> TargetGUID;
543 _worldPacket >> NewSubGroup;
544 if (_worldPacket.ReadBit())
545 _worldPacket >> PartyIndex.emplace();
550 bool hasPartyIndex = _worldPacket.ReadBit();
551 _worldPacket >> FirstTarget;
552 _worldPacket >> SecondTarget;
554 _worldPacket >> PartyIndex.emplace();
559 _worldPacket >> MarkerId;
564 _worldPacket <<
uint8(PartyIndex);
565 _worldPacket <<
uint32(ActiveMarkers);
567 _worldPacket.WriteBits(RaidMarkers.size(), 4);
568 _worldPacket.FlushBits();
570 for (
RaidMarker const* raidMarker : RaidMarkers)
572 _worldPacket << raidMarker->TransportGUID;
573 _worldPacket << raidMarker->Location.GetMapId();
574 _worldPacket << raidMarker->Location.PositionXYZStream();
577 return &_worldPacket;
584 MemberGuid = player->
GetGUID();
613 MemberStats.Level = player->
GetLevel();
616 MemberStats.CurrentHealth = player->
GetHealth();
621 MemberStats.PowerDisplayID = 0;
626 MemberStats.ZoneID = player->
GetZoneId();
632 MemberStats.PartyType[0] = player->
m_playerData->PartyType[0];
633 MemberStats.PartyType[1] = player->
m_playerData->PartyType[1];
637 MemberStats.WmoGroupID = wmoLocation->GroupId;
638 MemberStats.WmoDoodadPlacementID = wmoLocation->UniqueId;
643 if (
VehicleSeatEntry const* vehicleSeat = vehicle->GetSeatForPassenger(player))
644 MemberStats.VehicleSeat = vehicleSeat->ID;
651 aura.
SpellID = aurApp->GetBase()->GetId();
653 aura.
Flags = aurApp->GetFlags();
662 if (aurApp->HasEffect(aurEff->GetEffIndex()))
663 aura.
Points.push_back(
float(aurEff->GetAmount()));
667 MemberStats.Auras.push_back(aura);
678 MemberStats.PetStats.emplace();
680 MemberStats.PetStats->GUID = pet->
GetGUID();
681 MemberStats.PetStats->Name = pet->
GetName();
684 MemberStats.PetStats->CurrentHealth = pet->
GetHealth();
691 aura.
SpellID = aurApp->GetBase()->GetId();
693 aura.
Flags = aurApp->GetFlags();
702 if (aurApp->HasEffect(aurEff->GetEffIndex()))
703 aura.
Points.push_back(
float(aurEff->GetAmount()));
707 MemberStats.PetStats->Auras.push_back(aura);
715 _worldPacket << Victim;
717 return &_worldPacket;
722 _worldPacket << Target;
724 return &_worldPacket;
729 _worldPacket << Target;
731 _worldPacket.FlushBits();
733 return &_worldPacket;
738 bool hasPartyIndex = _worldPacket.ReadBit();
739 RestrictPingsToAssistants = _worldPacket.ReadBit();
741 _worldPacket >> PartyIndex.emplace();
746 _worldPacket >> SenderGUID;
747 _worldPacket >> TargetGUID;
749 _worldPacket >> PinFrameID;
754 _worldPacket << SenderGUID;
755 _worldPacket << TargetGUID;
757 _worldPacket <<
uint32(PinFrameID);
759 return &_worldPacket;
764 _worldPacket >> SenderGUID;
765 _worldPacket >> MapID;
766 _worldPacket >> Point;
768 _worldPacket >> PinFrameID;
773 _worldPacket << SenderGUID;
774 _worldPacket << MapID;
775 _worldPacket << Point;
777 _worldPacket << PinFrameID;
779 return &_worldPacket;
784 _worldPacket << SenderGUID;
785 _worldPacket << PinFrameID;
787 return &_worldPacket;
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
AuraEffectVector const & GetAuraEffects() const
void WriteString(std::string const &str)
void WriteBits(std::size_t value, int32 bits)
static ObjectGuid GetGUID(Object const *o)
static void FillPartyMemberPhase(WorldPackets::Party::PartyMemberPhaseStates *partyMemberPhases, PhaseShift const &phaseShift)
ChrSpecialization GetPrimarySpecialization() const
UF::UpdateField< UF::PlayerData, 0, TYPEID_PLAYER > m_playerData
WorldSession * GetSession() const
bool HasPlayerFlag(PlayerFlags flags) const
Vehicle * GetVehicle() const
Powers GetPowerType() const
int32 GetMaxPower(Powers power) const
uint32 GetDisplayId() const
uint64 GetMaxHealth() const
int32 GetPower(Powers power) const
VisibleAuraContainer const & GetVisibleAuras() const
PhaseShift & GetPhaseShift()
WmoLocation const * GetCurrentWmo() const
std::string const & GetName() const
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
ObjectGuid GetAccountGUID() const
ByteBuffer & operator<<(ByteBuffer &data, Movement::MonsterSplineFilterKey const &monsterSplineFilterKey)
uint32 GetAddress() const
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetPositionZ() const
std::string NormalizedName
Battlenet::RealmHandle Id
uint32 ExpansionLevelMask
uint32 ContentTuningConditionMask
uint32 LegacyRaidDifficultyID
uint32 DungeonDifficultyID
std::vector< float > Points
std::vector< PartyMemberAuraStates > Auras
std::vector< PartyMemberPhase > List
Optional< PartyMemberPetStats > PetStats
uint32 WmoDoodadPlacementID
std::vector< PartyMemberAuraStates > Auras
PartyMemberPhaseStates Phases
MythicPlus::DungeonScoreSummary DungeonScore