public void opponentQuitAfterEndGame() { if (CurrentRoom.FirstUser != null && CurrentRoom.FirstUser.Username == Message) { Console.WriteLine("Client " + Message + " Disconnected!"); CurrentRoom.FirstUser.Socket.Shutdown(SocketShutdown.Both); CurrentRoom.FirstUser.Socket.Close(); Singleton.Singleton.Instance.ListOfUsersLogged.Remove(CurrentRoom.FirstUser); if (CurrentRoom.FirstUser == null && CurrentRoom.SecondUser == null) { Singleton.Singleton.Instance.ListOfRooms.Remove(CurrentRoom); } else { MessagePacket mp = new MessagePacket(GameProtocol.OpponentQuitAfterEndGame(), Message); Othello.Server.SendPacket(CurrentRoom.SecondUser.Socket, mp.getData()); foreach (User user in Singleton.Singleton.Instance.ListOfUsersLogged) { if (user.Username == CurrentRoom.SecondUser.Username) { continue; } MessagePacket p = new MessagePacket(GameProtocol.UserDisconnected(), CurrentRoom.FirstUser.Username); Othello.Server.SendPacket(user.Socket, p.getData()); } CurrentRoom.FirstUser = null; } } else if (CurrentRoom.SecondUser != null && CurrentRoom.SecondUser.Username == Message) { Console.WriteLine("Client " + Message + " Disconnected!"); CurrentRoom.SecondUser.Socket.Shutdown(SocketShutdown.Both); CurrentRoom.SecondUser.Socket.Close(); Singleton.Singleton.Instance.ListOfUsersLogged.Remove(CurrentRoom.SecondUser); if (CurrentRoom.FirstUser == null && CurrentRoom.SecondUser == null) { Singleton.Singleton.Instance.ListOfRooms.Remove(CurrentRoom); } else { MessagePacket mp = new MessagePacket(GameProtocol.OpponentQuitAfterEndGame(), Message); Othello.Server.SendPacket(CurrentRoom.FirstUser.Socket, mp.getData()); foreach (User user in Singleton.Singleton.Instance.ListOfUsersLogged) { if (user.Username == CurrentRoom.FirstUser.Username) { continue; } MessagePacket p = new MessagePacket(GameProtocol.UserDisconnected(), CurrentRoom.SecondUser.Username); Othello.Server.SendPacket(user.Socket, p.getData()); } CurrentRoom.SecondUser = null; } } if (CurrentRoom.FirstUser == null && CurrentRoom.SecondUser == null) { Singleton.Singleton.Instance.ListOfRooms.Remove(CurrentRoom); } }