public static void DisconnectConnection(NetConnection sender, Scene scene) { NetServer server = ServerNetworkSceneComponent.GetNetServer(); LoginManagerServer login = MapContainer.GetLoginByID(sender.RemoteUniqueIdentifier); if (login != null) { CharacterPlayer characterPlayer = login.GetCharacter(); //Saves data to SQL database string characterString = Newtonsoft.Json.JsonConvert.SerializeObject(characterPlayer, new StringEnumConverter()); SQLManager.UpdateToSQL(login.username, characterString); //removes login manager MapContainer.RemoveLoginByID(login.GetUniqueID()); if (characterPlayer != null) { //removes entity CharacterManager.RemoveCharacterFromScene(scene, characterPlayer._name); } } //removes the connection sender.Disconnect("Closed"); Console.WriteLine("Disconnected! Connected: " + ServerNetworkSceneComponent.GetNetServer().ConnectionsCount); MainScene.ConnectedCount.SetText("Current connections: " + server.ConnectionsCount); }