public static void SaveCharacter(Session session) { if (session.ActiveCharacterInfo != null) { if (session.ActiveCharacterReplica != null) { ControllablePhysicsComponent controllablePhysicsComponent = (ControllablePhysicsComponent)session.ActiveCharacterReplica.GetComponent(ReplicaComponentId.ControllablePhysics); session.ActiveCharacterInfo.Position = controllablePhysicsComponent.Position; session.ActiveCharacterInfo.Rotation = controllablePhysicsComponent.Rotation; Server.Instance.GetReplicaManager(session.ActiveCharacterInfo.ZoneId).RemovePlayer(session); } CharacterInfo characterInfo = session.ActiveCharacterInfo; Server.Instance.Scheduler.RunTaskAsync( () => { MySqlHandle mySqlHandle = Server.Instance.DatabaseManager.GetMySqlHandle(); try { mySqlHandle.Open(); mySqlHandle.CharactersSetCharacterInfo(characterInfo); mySqlHandle.Close(); } catch (Exception exc) { Server.Instance.LogDatabaseError(exc); } mySqlHandle.Free(); } ); } }