diff options
| author | w1sht0l1v3 <w1sht0l1v3@gmail.com> | 2015-04-23 22:10:15 +0300 |
|---|---|---|
| committer | w1sht0l1v3 <w1sht0l1v3@gmail.com> | 2015-04-23 22:10:15 +0300 |
| commit | 837a0a75246b177858825caf1861dd61a6b87868 (patch) | |
| tree | ddc30b9a02cd24bc18edd68b207c3c1feffe8406 /src/server/game/DungeonFinding/LFGScripts.cpp | |
| parent | 4e0dec7fd26452e60055eb2fa9461d39ec49d45b (diff) | |
Core/LFG: Move code to a better place.
(the case where the last player left inside a dungeon would not be removed from lfg&group when he ports outside)
Diffstat (limited to 'src/server/game/DungeonFinding/LFGScripts.cpp')
| -rw-r--r-- | src/server/game/DungeonFinding/LFGScripts.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp index ae64e59936f..852eb7d8c5f 100644 --- a/src/server/game/DungeonFinding/LFGScripts.cpp +++ b/src/server/game/DungeonFinding/LFGScripts.cpp @@ -99,7 +99,17 @@ void LFGPlayerScript::OnMapChanged(Player* player) player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true); } else + { + Group* group = player->GetGroup(); + if (group && group->GetMembersCount() == 1) + { + sLFGMgr->LeaveLfg(group->GetGUID()); + group->Disband(); + TC_LOG_DEBUG("lfg", "LFGPlayerScript::OnMapChanged, Player %s(%s) is last in the lfggroup so we disband the group.", + player->GetName().c_str(), player->GetGUID().ToString().c_str()); + } player->RemoveAurasDueToSpell(LFG_SPELL_LUCK_OF_THE_DRAW); + } } LFGGroupScript::LFGGroupScript() : GroupScript("LFGGroupScript") { } |
