/// <returns>Is logged out correctly</returns> public bool Logout(bool force = false, TimeSpan?timeout = null) { if (force && timeout == null) { timeout = TimeSpan.FromSeconds(5); } else { timeout = Timeout.InfiniteTimeSpan; } if (GameServer.State > Game.State.Still) { lock (Sync) { GameServer.Logout(); var result = Wait(r => r is Result.LoggedOut || r is Result.ActionFailed, timeout.Value); if (force && result is Result.ActionFailed) { GameServer.Abort(); } return(result is Result.LoggedOut); } } else { return(true); } }
protected static void DisposeGame() { Game?.Abort(); Lobby?.Abort(); Game = null; Lobby = null; Running = false; }
public virtual void Shutdown() { Running = false; { EmptyCacheCollectors(); Game?.Abort(); Game = null; } }