aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/WorldSession.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index dafb08bd2ce..3c1de96e01b 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -548,16 +548,13 @@ void WorldSession::LogoutPlayer(bool save)
///- If the player is in a group (or invited), remove him. If the group if then only 1 person, disband the group.
_player->UninviteFromGroup();
- // remove player from the group if he is:
- // a) in group; b) not in raid group; c) logging out normally (not being kicked or disconnected)
- if (_player->GetGroup() && !_player->GetGroup()->isRaidGroup() && m_Socket)
- _player->RemoveFromGroup();
-
//! Send update to group and reset stored max enchanting level
- if (_player->GetGroup())
+ if (Group* group = _player->GetGroup())
{
- _player->GetGroup()->SendUpdate();
- _player->GetGroup()->ResetMaxEnchantingLevel();
+ group->SendUpdate();
+ group->ResetMaxEnchantingLevel();
+ if (group->GetLeaderGUID() == _player->GetGUID())
+ group->StartLeaderOfflineTimer();
}
//! Broadcast a logout message to the player's friends