From 1fb000209719c2a651f976d21b6d28a74fb31517 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 20 Jun 2023 09:35:57 -0400 Subject: [PATCH] Core/Misc: Don't logout players instantly when client automatically requests a logout by idling too long Port From (https://github.com/TrinityCore/TrinityCore/commit/d4fc589f4c4efac69723211b37239a2afa161cc6) --- Source/Game/Handlers/LogoutHandler.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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);