diff options
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 7e870b0a291..b64187a5741 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -237,13 +237,15 @@ void WorldSession::HandleWhoOpcode(WorldPackets::Who::WhoRequestPkt& whoRequest) SendPacket(response.Write()); } -void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequest& /*logoutRequest*/) +void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequest& logoutRequest) { if (!GetPlayer()->GetLootGUID().IsEmpty()) GetPlayer()->SendLootReleaseAll(); - bool instantLogout = (GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_RESTING) && !GetPlayer()->IsInCombat()) || - GetPlayer()->IsInFlight() || HasPermission(rbac::RBAC_PERM_INSTANT_LOGOUT); + bool instantLogout = GetPlayer()->IsInFlight(); + if (!logoutRequest.IdleLogout) + instantLogout |= (GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_RESTING) && !GetPlayer()->IsInCombat()) + || HasPermission(rbac::RBAC_PERM_INSTANT_LOGOUT); /// TODO: Possibly add RBAC permission to log out in combat bool canLogoutInCombat = GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_RESTING); |