diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 3f165def6f..4cec44c07c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2594,11 +2594,11 @@ void Player::UninviteFromGroup() } } -void Player::RemoveFromGroup(Group* group, uint64 guid) +void Player::RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method /* = GROUP_REMOVEMETHOD_DEFAULT*/) { if (group) { - if (group->RemoveMember(guid) <= 1) + if (group->RemoveMember(guid, method) <= 1) { // group->Disband(); already disbanded in RemoveMember sObjectMgr.RemoveGroup(group); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 5cddadf635..ed6f87b5f3 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1708,7 +1708,7 @@ class Player : public Unit, public GridObject bool IsInSameGroupWith(Player const* p) const; bool IsInSameRaidWith(Player const* p) const { return p == this || (GetGroup() != NULL && GetGroup() == p->GetGroup()); } void UninviteFromGroup(); - static void RemoveFromGroup(Group* group, uint64 guid); + static void RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method = GROUP_REMOVEMETHOD_DEFAULT); void RemoveFromGroup() { RemoveFromGroup(GetGroup(),GetGUID()); } void SendUpdateToOutOfRangeGroupMembers(); diff --git a/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp b/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp index e1386bb50e..882441b2b8 100644 --- a/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp @@ -293,7 +293,7 @@ void WorldSession::HandleGroupUninviteGuidOpcode(WorldPacket & recv_data) if (grp->isLFGGroup()) sLFGMgr.InitBoot(grp, GUID_LOPART(GetPlayer()->GetGUID()), GUID_LOPART(guid), reason); else - Player::RemoveFromGroup(grp,guid); + Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK); return; } @@ -338,7 +338,7 @@ void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data) if (grp->isLFGGroup()) sLFGMgr.InitBoot(grp, GUID_LOPART(GetPlayer()->GetGUID()), GUID_LOPART(guid), ""); else - Player::RemoveFromGroup(grp,guid); + Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK); return; }