diff --git a/Source/Game/Handlers/LogoutHandler.cs b/Source/Game/Handlers/LogoutHandler.cs index c87b56720..bc8cfd950 100644 --- a/Source/Game/Handlers/LogoutHandler.cs +++ b/Source/Game/Handlers/LogoutHandler.cs @@ -11,14 +11,16 @@ namespace Game public partial class WorldSession { [WorldPacketHandler(ClientOpcodes.LogoutRequest)] - void HandleLogoutRequest(LogoutRequest packet) + void HandleLogoutRequest(LogoutRequest logoutRequest) { Player pl = GetPlayer(); if (!GetPlayer().GetLootGUID().IsEmpty()) GetPlayer().SendLootReleaseAll(); - bool instantLogout = (pl.HasPlayerFlag(PlayerFlags.Resting) && !pl.IsInCombat() || - pl.IsInFlight() || HasPermission(RBACPermissions.InstantLogout)); + bool instantLogout = GetPlayer().IsInFlight(); + if (!logoutRequest.IdleLogout) + instantLogout |= (GetPlayer().HasPlayerFlag(PlayerFlags.Resting) && !GetPlayer().IsInCombat()) + || HasPermission(RBACPermissions.InstantLogout); bool canLogoutInCombat = pl.HasPlayerFlag(PlayerFlags.Resting);