private void ApplicationProcess_Exited(object sender, EventArgs e) { var unexpectedStop = (this.State != ApplicationState.Stopping && this.State != ApplicationState.Restarting); var needsRestart = (this.State == ApplicationState.Restarting); this.State = ApplicationState.Stopped; if (unexpectedStop) { this.module.log.Warning("The application stopped unexpectedly."); UnexpectedStop.InvokeSafe(this, new ServerStoppedEventArgs(DateTime.Now)); } else { NormalStop.InvokeSafe(this, new ServerStoppedEventArgs(DateTime.Now)); } this.Users.Clear(); if (needsRestart) { Start(); } }
internal void OnUnexpectedStop() { Log.Success($"Server {this.ID:00} Unexpectedly Stopped."); UnexpectedStop.Invoke(this, null); }