public void Destroy() { if (IsDestroyed) { return; } IsDestroyed = true; // Remove players foreach (var member in membersByUsernameList.Values.ToList()) { RemovePlayer(member.Extension); } if (gameSpawnTask != null) { gameSpawnTask.OnStatusChangedEvent -= OnSpawnServerStatusChanged; gameSpawnTask.KillSpawnedProcess(); } OnDestroyedEvent?.Invoke(this); }