diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Groups/Group.h | 1 | 
2 files changed, 7 insertions, 6 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9a4cf075a98..e2038e91e89 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2592,7 +2592,6 @@ bool Player::IsInSameRaidWith(Player const* p) const  }  ///- If the player is invited, remove him. If the group if then only 1 person, disband the group. -/// @todo Shouldn't we also check if there is no other invitees before disbanding the group?  void Player::UninviteFromGroup()  {      Group* group = GetGroupInvite(); @@ -2601,13 +2600,14 @@ void Player::UninviteFromGroup()      group->RemoveInvite(this); -    if (group->GetMembersCount() <= 1)                       // group has just 1 member => disband +    if (group->IsCreated())      { -        if (group->IsCreated()) -        { +        if (group->GetMembersCount() <= 1) // group has just 1 member => disband              group->Disband(true); -        } -        else +    } +    else +    { +        if (group->GetInviteeCount() <= 1)          {              group->RemoveAllInvites();              delete group; diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h index 53ef13e501a..bee3f95350a 100644 --- a/src/server/game/Groups/Group.h +++ b/src/server/game/Groups/Group.h @@ -243,6 +243,7 @@ class TC_GAME_API Group          GroupReference* GetFirstMember() { return m_memberMgr.getFirst(); }          GroupReference const* GetFirstMember() const { return m_memberMgr.getFirst(); }          uint32 GetMembersCount() const { return m_memberSlots.size(); } +        uint32 GetInviteeCount() const { return m_invitees.size(); }          uint8 GetMemberGroup(ObjectGuid guid) const;  | 
