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:
@@ -11,14 +11,16 @@ namespace Game
|
|||||||
public partial class WorldSession
|
public partial class WorldSession
|
||||||
{
|
{
|
||||||
[WorldPacketHandler(ClientOpcodes.LogoutRequest)]
|
[WorldPacketHandler(ClientOpcodes.LogoutRequest)]
|
||||||
void HandleLogoutRequest(LogoutRequest packet)
|
void HandleLogoutRequest(LogoutRequest logoutRequest)
|
||||||
{
|
{
|
||||||
Player pl = GetPlayer();
|
Player pl = GetPlayer();
|
||||||
if (!GetPlayer().GetLootGUID().IsEmpty())
|
if (!GetPlayer().GetLootGUID().IsEmpty())
|
||||||
GetPlayer().SendLootReleaseAll();
|
GetPlayer().SendLootReleaseAll();
|
||||||
|
|
||||||
bool instantLogout = (pl.HasPlayerFlag(PlayerFlags.Resting) && !pl.IsInCombat() ||
|
bool instantLogout = GetPlayer().IsInFlight();
|
||||||
pl.IsInFlight() || HasPermission(RBACPermissions.InstantLogout));
|
if (!logoutRequest.IdleLogout)
|
||||||
|
instantLogout |= (GetPlayer().HasPlayerFlag(PlayerFlags.Resting) && !GetPlayer().IsInCombat())
|
||||||
|
|| HasPermission(RBACPermissions.InstantLogout);
|
||||||
|
|
||||||
bool canLogoutInCombat = pl.HasPlayerFlag(PlayerFlags.Resting);
|
bool canLogoutInCombat = pl.HasPlayerFlag(PlayerFlags.Resting);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user