From dabb8f722cbd2d48d679f85632ef973f509312ca Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Fri, 29 May 2026 00:08:15 -0300 Subject: [PATCH] fix(Core/Battlefield): block invites and kicks from BF raids (#26015) Co-authored-by: Claude Opus 4.7 (1M context) --- src/server/game/Entities/Player/Player.cpp | 5 +++++ src/server/game/Handlers/GroupHandler.cpp | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9becbc30ca..f04bc00edc 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13108,6 +13108,11 @@ PartyResult Player::CanUninviteFromGroup(ObjectGuid targetPlayerGUID) const if (InBattleground()) return ERR_INVITE_RESTRICTED; + + // BF raids are owned by the Battlefield system; leaders/assistants must not + // be able to kick members (would drop their team assignment mid-battle). + if (grp->isBFGroup()) + return ERR_NOT_LEADER; } return ERR_PARTY_RESULT_OK; diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index d3bf30d1fd..13eadd687a 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -126,6 +126,16 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recvData) return; } + // Battlefield raids (e.g. Wintergrasp) have their composition managed by the BF + // system based on queue and team balance. Letting raid members recruit outsiders + // bypasses Battlefield::AddOrSetPlayerToCorrectBfGroup, which on WG entry then + // refuses to add the invitee because they are already in a BF group. + if (Group* invitingGroup = invitingPlayer->GetGroup(); invitingGroup && invitingGroup->isBFGroup()) + { + SendPartyResult(PARTY_OP_INVITE, membername, ERR_NOT_LEADER); + return; + } + Group* group = invitingPlayer->GetGroup(); if (group && group->isBGGroup()) group = invitingPlayer->GetOriginalGroup();