Ejemplo n.º 1
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                if (disposing)
                {
                    for (var i = PlayersJoining.Count - 1; i >= 0; i--)
                    {
                        PlayersJoining[i].Dispose();
                    }
                    PlayersJoining.Clear();

                    for (var i = Clients.Count - 1; i >= 0; i--)
                    {
                        Clients[i].SendKick("Closing server!");
                        Clients[i].Dispose();
                    }
                    Clients.Clear();

                    for (var i = PlayersToAdd.Count - 1; i >= 0; i--)
                    {
                        PlayersToAdd[i].SendKick("Closing server!");
                        PlayersToAdd[i].Dispose();
                    }
                    PlayersToAdd.Clear();

                    // Do not dispose PlayersToRemove!
                    PlayersToRemove.Clear();
                }


                IsDisposed = true;
            }
            base.Dispose(disposing);
        }