diff --git a/Projects/Server/Events/EventSink.cs b/Projects/Server/Events/EventSink.cs index 9e168c742..29f8fda70 100644 --- a/Projects/Server/Events/EventSink.cs +++ b/Projects/Server/Events/EventSink.cs @@ -64,6 +64,9 @@ namespace Server public static event Action Connected; public static void InvokeConnected(Mobile m) => Connected?.Invoke(m); + public static event Action BeforeDisconnected; + public static void InvokeBeforeDisconnected(Mobile m) => BeforeDisconnected?.Invoke(m); + public static event Action Disconnected; public static void InvokeDisconnected(Mobile m) => Disconnected?.Invoke(m); diff --git a/Projects/Server/Mobiles/Mobile.cs b/Projects/Server/Mobiles/Mobile.cs index 91737ff4f..1c69579c7 100644 --- a/Projects/Server/Mobiles/Mobile.cs +++ b/Projects/Server/Mobiles/Mobile.cs @@ -1464,6 +1464,9 @@ namespace Server box.Close(); } + OnBeforeDisconnected(); + EventSink.InvokeBeforeDisconnected(this); + m_NetState = value; _logoutTimerToken.Cancel(); @@ -7195,6 +7198,10 @@ namespace Server { } + public virtual void OnBeforeDisconnected() + { + } + public virtual void OnDisconnected() { }