From 253eb1997a4c2652cbe8d825bca6c378ed4a1ea7 Mon Sep 17 00:00:00 2001 From: sogladev Date: Tue, 20 Jan 2026 23:49:09 +0100 Subject: [PATCH] feat(Scripts/Commands): `deserter add` now also kicks from bg or group (#24451) --- src/server/game/Entities/Player/Player.cpp | 7 ++----- src/server/scripts/Commands/cs_deserter.cpp | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 2bbaf1986..a57c06478 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1642,12 +1642,9 @@ void Player::ProcessDelayedOperations() if (m_DelayedOperations & DELAYED_SAVE_PLAYER) SaveToDB(false, false); - if (m_DelayedOperations & DELAYED_SPELL_CAST_DESERTER) - { - Aura* aura = GetAura(26013); - if (!aura || aura->GetDuration() <= 900000) + if ((m_DelayedOperations & DELAYED_SPELL_CAST_DESERTER) + && !GetAura(26013)) CastSpell(this, 26013, true); - } if (m_DelayedOperations & DELAYED_BG_MOUNT_RESTORE) { diff --git a/src/server/scripts/Commands/cs_deserter.cpp b/src/server/scripts/Commands/cs_deserter.cpp index f6e359403..860046d10 100644 --- a/src/server/scripts/Commands/cs_deserter.cpp +++ b/src/server/scripts/Commands/cs_deserter.cpp @@ -24,6 +24,7 @@ #include "Chat.h" #include "CommandScript.h" +#include "GroupMgr.h" #include "Language.h" #include "Player.h" #include "SpellAuras.h" @@ -211,6 +212,16 @@ public: CharacterDatabase.Execute(stmt); } + if (isInstance) + { + if (ObjectGuid groupId = sCharacterCache->GetCharacterGroupGuidByGuid(guid)) + if (Group* group = sGroupMgr->GetGroupByGUID(groupId.GetCounter())) + if (group->isLFGGroup()) + Player::RemoveFromGroup(group, guid); + } + else if (target && target->GetMap()->IsBattleground()) + target->LeaveBattleground(); + handler->PSendSysMessage("{} of {} Deserter has been added to player {}.", secsToTimeString(duration), isInstance ? "Instance" : "Battleground", handler->playerLink(*playerName)); return true; }