72 if (invitedPlayer == invitingPlayer)
205 TC_LOG_ERROR(
"network",
"HandleGroupAcceptOpcode: player {} {} tried to accept an invite to his own group",
GetPlayer()->GetName(),
GetPlayer()->GetGUID().ToString());
263 TC_LOG_ERROR(
"network",
"WorldSession::HandleGroupUninviteGuidOpcode: leader {} {} tried to uninvite himself from the group.",
287 player->UninviteFromGroup();
299 if (!group || !player)
316 if (oldRole == packet.
Role)
321 roleChangedInform.
OldRole = oldRole;
338 if (!grp && !grpInvite)
418 if (packet.
Min > packet.
Max || packet.
Max > 1000000)
609 TC_LOG_ERROR(
"network",
"CMSG_OPT_OUT_OF_LOOT value<>0 for not-loaded character!");
707 Group const* group =
nullptr;
718 broadcastPingUnit.
Type = pingUnit.
Type;
723 broadcastPingUnit.
Write();
727 Player const* member = itr.GetSource();
737 Group const* group =
nullptr;
738 if (!CanSendPing(*
_player, pingWorldPoint.
Type, group))
746 broadcastPingWorldPoint.
MapID = pingWorldPoint.
MapID;
747 broadcastPingWorldPoint.
Point = pingWorldPoint.
Point;
748 broadcastPingWorldPoint.
Type = pingWorldPoint.
Type;
752 broadcastPingWorldPoint.
Write();
756 Player const* member = itr.GetSource();
@ GROUP_ASSIGN_MAINASSIST
#define MAX_RAID_SUBGROUPS
#define TC_LOG_ERROR(filterType__, message__,...)
@ GROUP_REMOVEMETHOD_KICK
@ GROUP_REMOVEMETHOD_LEAVE
@ ERR_TARGET_NOT_IN_INSTANCE_S
@ ERR_TARGET_NOT_IN_GROUP_S
@ ERR_PLAYER_WRONG_FACTION
ObjectGuid const & GetGUID() const
void BroadcastGroupUpdate(void)
void SwapMembersGroups(ObjectGuid firstGuid, ObjectGuid secondGuid)
bool AddLeaderInvite(Player *player)
void DeleteRaidMarker(uint8 markerId)
GroupCategory GetGroupCategory() const
void ChangeMembersGroup(ObjectGuid guid, uint8 group)
void SendTargetIconList(WorldSession *session) const
void SetEveryoneIsAssistant(bool apply)
bool IsAssistant(ObjectGuid guid) const
void Disband(bool hideDestroy=false)
bool AddMember(Player *player)
bool IsLeader(ObjectGuid guid) const
void SetMemberReadyCheck(ObjectGuid guid, bool ready)
void SetRestrictPingsTo(RestrictPingsTo restrictTo)
void RemoveInvite(Player *player)
void StartReadyCheck(ObjectGuid starterGuid, Milliseconds duration=Milliseconds(READYCHECK_DURATION))
void SendRaidMarkersChanged(WorldSession *session=nullptr) const
uint32 GetMembersCount() const
void SetLfgRoles(ObjectGuid guid, uint8 roles)
void SetGroupMemberFlag(ObjectGuid guid, bool apply, GroupMemberFlags flag)
void ChangeLeader(ObjectGuid guid)
uint8 GetLfgRoles(ObjectGuid guid) const
Player * GetInvited(ObjectGuid guid) const
bool HasFreeSlotSubGroup(uint8 subgroup) const
bool IsMember(ObjectGuid guid) const
void BroadcastPacket(WorldPacket const *packet, bool ignorePlayersInBGRaid, int group=-1, ObjectGuid ignoredPlayer=ObjectGuid::Empty) const
GroupRefManager & GetMembers()
bool AddInvite(Player *player)
void SetTargetIcon(uint8 symbol, ObjectGuid target, ObjectGuid changedBy)
bool Create(Player *leader)
RestrictPingsTo GetRestrictPings() const
ObjectGuid GetLeaderGUID() const
void RemoveUniqueGroupMemberFlag(GroupMemberFlags flag)
static ObjectGuid const Empty
bool HasIgnore(ObjectGuid const &ignoreGuid, ObjectGuid const &ignoreAccountGuid)
bool HasFriend(ObjectGuid const &friendGuid)
PlayerSocial * GetSocial() const
void SendDirectMessage(WorldPacket const *data) const
uint32 DoRandomRoll(uint32 minimum, uint32 maximum)
PartyResult CanUninviteFromGroup(ObjectGuid guidMember, Optional< uint8 > partyIndex) const
bool InBattleground() const
bool HaveAtClient(BaseEntity const *u) const
WorldSession * GetSession() const
void SetPassOnGroupLoot(bool bPassOnGroupLoot)
Difficulty GetDungeonDifficultyID() const
bool IsGameMaster() const
static void RemoveFromGroup(Group *group, ObjectGuid guid, RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT, ObjectGuid kicker=ObjectGuid::Empty, char const *reason=nullptr)
Group * GetGroup(Optional< uint8 > partyIndex)
Group * GetGroupInvite() const
constexpr uint32 GetMapId() const
bool IsHostileTo(WorldObject const *target) const
uint32 GetInstanceId() const
std::string const & GetName() const
bool IsInMap(WorldObject const *obj) const
WorldPacket const * GetRawPacket() const
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
WorldPacket const * Write() override
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
WorldPacket const * Write() override
WorldPacket const * Write() override
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
void Initialize(Player const *inviter, int32 proposedRoles, bool canAccept)
WorldPacket const * Write() override
void Initialize(Player const *player)
PartyMemberStats MemberStats
WorldPacket const * Write() override
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint32 > SpellOverrideNameID
Duration< Milliseconds, int32 > PingDuration
WorldPacket const * Write() override
Optional< uint32 > CreatureID
Duration< Milliseconds, int32 > PingDuration
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > Point
Optional< uint8 > PartyIndex
Array< ObjectGuid, 40 > Targets
Optional< uint32 > SpellOverrideNameID
Optional< uint32 > CreatureID
Duration< Milliseconds, int32 > PingDuration
TaggedPosition< Position::XYZ > Point
Duration< Milliseconds, int32 > PingDuration
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
RestrictPingsTo RestrictTo
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
void HandleSetPartyAssignment(WorldPackets::Party::SetPartyAssignment &packet)
void HandlePartyInviteOpcode(WorldPackets::Party::PartyInviteClient &packet)
void HandleChangeSubGroupOpcode(WorldPackets::Party::ChangeSubGroup &packet)
void HandleDoReadyCheckOpcode(WorldPackets::Party::DoReadyCheck &packet)
void HandleUpdateRaidTargetOpcode(WorldPackets::Party::UpdateRaidTarget &packet)
void HandleSetPartyLeaderOpcode(WorldPackets::Party::SetPartyLeader &packet)
void HandleConvertRaidOpcode(WorldPackets::Party::ConvertRaid &packet)
void HandleRequestRaidInfoOpcode(WorldPackets::Party::RequestRaidInfo &packet)
ObjectGuid GetAccountGUID() const
void HandleSetAssistantLeaderOpcode(WorldPackets::Party::SetAssistantLeader &packet)
Player * GetPlayer() const
void HandleOptOutOfLootOpcode(WorldPackets::Party::OptOutOfLoot &packet)
void HandleSetEveryoneIsAssistant(WorldPackets::Party::SetEveryoneIsAssistant &packet)
void HandleLeaveGroupOpcode(WorldPackets::Party::LeaveGroup &packet)
void HandleSendPingWorldPoint(WorldPackets::Party::SendPingWorldPoint const &pingWorldPoint)
void HandleRandomRollOpcode(WorldPackets::Misc::RandomRollClient &packet)
void HandleRequestPartyJoinUpdates(WorldPackets::Party::RequestPartyJoinUpdates &packet)
void HandleSetLootMethodOpcode(WorldPackets::Party::SetLootMethod &packet)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void HandleSwapSubGroupsOpcode(WorldPackets::Party::SwapSubGroups &packet)
void HandlePartyInviteResponseOpcode(WorldPackets::Party::PartyInviteResponse &packet)
void HandleSetRoleOpcode(WorldPackets::Party::SetRole &packet)
void HandleRequestPartyMemberStatsOpcode(WorldPackets::Party::RequestPartyMemberStats &packet)
void SendPartyResult(PartyOperation operation, std::string const &member, PartyResult res, uint32 val=0)
void HandlePartyUninviteOpcode(WorldPackets::Party::PartyUninvite &packet)
void HandleSendPingUnit(WorldPackets::Party::SendPingUnit const &pingUnit)
void HandleSetRestrictPingsToAssistants(WorldPackets::Party::SetRestrictPingsToAssistants const &setRestrictPingsToAssistants)
void HandleClearRaidMarker(WorldPackets::Party::ClearRaidMarker &packet)
void HandleMinimapPingOpcode(WorldPackets::Party::MinimapPingClient &packet)
void HandleReadyCheckResponseOpcode(WorldPackets::Party::ReadyCheckResponseClient &packet)
void HandleInitiateRolePoll(WorldPackets::Party::InitiateRolePoll &packet)
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
TC_GAME_API Player * FindPlayerByName(std::string_view name)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Player * FindPlayer(ObjectGuid const &)
TC_GAME_API Player * FindConnectedPlayer(ObjectGuid const &)