From edb3730f7a6c61a9b413d1fd7697a1e1faeba3cf Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Wed, 8 Jul 2026 20:34:14 -0300 Subject: [PATCH] fix(Core/Battlegrounds): don't block BG entry on a stale charm reference (#26487) Co-authored-by: Claude Opus 4.8 --- src/server/game/DungeonFinding/LFGMgr.cpp | 4 +++- src/server/game/Handlers/BattleGroundHandler.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index d3505b773..6651c7a01 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -2257,7 +2257,9 @@ namespace lfg { error = LFG_TELEPORTERROR_IN_VEHICLE; } - else if (player->GetCharmGUID() || player->IsInCombat()) + // GetCharm() validates the charmed unit still exists and clears a stale reference, + // unlike GetCharmGUID(); a despawned vehicle must not permanently block the teleport. + else if (player->GetCharm() || player->IsInCombat()) { error = LFG_TELEPORTERROR_COMBAT; } diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp index 414be5d64..ff5a57c47 100644 --- a/src/server/game/Handlers/BattleGroundHandler.cpp +++ b/src/server/game/Handlers/BattleGroundHandler.cpp @@ -412,7 +412,9 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket& recvData) return; } - if (_player->GetCharmGUID() || _player->IsInCombat()) + // GetCharm() validates the charmed unit still exists and clears a stale reference, + // unlike GetCharmGUID(); a despawned vehicle must not permanently block BG entry. + if (_player->GetCharm() || _player->IsInCombat()) { ChatHandler(_player->GetSession()).SendNotification(LANG_YOU_IN_COMBAT); return;