71 if (invitedPlayer == invitingPlayer)
262 TC_LOG_ERROR(
"network",
"WorldSession::HandleGroupUninviteGuidOpcode: leader {} {} tried to uninvite himself from the group.",
286 player->UninviteFromGroup();
298 if (!group || !player)
315 if (oldRole == packet.
Role)
320 roleChangedInform.
OldRole = oldRole;
337 if (!grp && !grpInvite)
417 if (packet.
Min > packet.
Max || packet.
Max > 1000000)
606 TC_LOG_ERROR(
"network",
"CMSG_OPT_OUT_OF_LOOT value<>0 for not-loaded character!");
688 Group const* group =
nullptr;
699 broadcastPingUnit.
Type = pingUnit.
Type;
701 broadcastPingUnit.
Write();
705 Player const* member = itr->GetSource();
715 Group const* group =
nullptr;
716 if (!CanSendPing(*
_player, pingWorldPoint.
Type, group))
724 broadcastPingWorldPoint.
MapID = pingWorldPoint.
MapID;
725 broadcastPingWorldPoint.
Point = pingWorldPoint.
Point;
726 broadcastPingWorldPoint.
Type = pingWorldPoint.
Type;
728 broadcastPingWorldPoint.
Write();
732 Player const* member = itr->GetSource();
@ GROUP_ASSIGN_MAINASSIST
#define MAX_RAID_SUBGROUPS
#define TC_LOG_ERROR(filterType__,...)
@ ERR_TARGET_NOT_IN_GROUP_S
@ ERR_TARGET_NOT_IN_INSTANCE_S
@ ERR_PLAYER_WRONG_FACTION
@ GROUP_REMOVEMETHOD_KICK
@ GROUP_REMOVEMETHOD_LEAVE
void BroadcastGroupUpdate(void)
void SwapMembersGroups(ObjectGuid firstGuid, ObjectGuid secondGuid)
bool AddLeaderInvite(Player *player)
void DeleteRaidMarker(uint8 markerId)
void SendTargetIconList(WorldSession *session)
GroupCategory GetGroupCategory() const
uint8 GetLfgRoles(ObjectGuid guid)
void ChangeMembersGroup(ObjectGuid guid, uint8 group)
void SetEveryoneIsAssistant(bool apply)
bool IsAssistant(ObjectGuid guid) const
void Disband(bool hideDestroy=false)
bool AddMember(Player *player)
bool IsLeader(ObjectGuid guid) const
bool IsRestrictPingsToAssistants() const
void SetMemberReadyCheck(ObjectGuid guid, bool ready)
void RemoveInvite(Player *player)
void StartReadyCheck(ObjectGuid starterGuid, Milliseconds duration=Milliseconds(READYCHECK_DURATION))
uint32 GetMembersCount() const
void SendRaidMarkersChanged(WorldSession *session=nullptr)
void SetLfgRoles(ObjectGuid guid, uint8 roles)
void SetGroupMemberFlag(ObjectGuid guid, bool apply, GroupMemberFlags flag)
void ChangeLeader(ObjectGuid guid)
Player * GetInvited(ObjectGuid guid) const
bool HasFreeSlotSubGroup(uint8 subgroup) const
bool IsMember(ObjectGuid guid) const
GroupReference * GetFirstMember()
void BroadcastPacket(WorldPacket const *packet, bool ignorePlayersInBGRaid, int group=-1, ObjectGuid ignoredPlayer=ObjectGuid::Empty) const
bool AddInvite(Player *player)
void SetRestrictPingsToAssistants(bool restrictPingsToAssistants)
void SetTargetIcon(uint8 symbol, ObjectGuid target, ObjectGuid changedBy)
bool Create(Player *leader)
ObjectGuid GetLeaderGUID() const
void RemoveUniqueGroupMemberFlag(GroupMemberFlags flag)
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
bool HasIgnore(ObjectGuid const &ignoreGuid, ObjectGuid const &ignoreAccountGuid)
bool HasFriend(ObjectGuid const &friendGuid)
bool HaveAtClient(Object const *u) const
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
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
WorldPacket const * Write() override
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > Point
Optional< uint8 > PartyIndex
TaggedPosition< Position::XYZ > Point
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
Optional< uint8 > PartyIndex
bool RestrictPingsToAssistants
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 bool GetName(uint32 accountId, std::string &name)
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 &)
std::string ToString(Type &&val, Params &&... params)