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)
This commit is contained in:
hondacrx
2023-06-20 09:35:57 -04:00
parent 2f2aacaf84
commit 1fb0002097
+5 -3
View File
@@ -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);