// -------------------------------------------------------------------------------
        // OnUserChangePasswordRequestMessage
        // @Client -> @Server
        // -------------------------------------------------------------------------------
        void OnUserChangePasswordRequestMessage(NetworkConnection conn, UserChangePasswordRequestMessage msg)
        {
            ServerResponseMessage message = new ServerResponseMessage
            {
                code             = successCode,
                text             = "",
                causesDisconnect = true
            };

            if (DatabaseManager.singleton.TryUserChangePassword(msg.username, msg.oldPassword, msg.newPassword))
            {
                message.text = systemText.userChangePasswordSuccess;
            }
            else
            {
                message.text = systemText.userChangePasswordFailure;
                message.code = errorCode;
            }

            conn.Send(message);
        }
        // -------------------------------------------------------------------------------
        // RequestChangePasswordUser
        // -------------------------------------------------------------------------------
        public override bool RequestChangePasswordUser(NetworkConnection conn, string name, string oldpassword, string newpassword)
        {
            if (!base.RequestChangePasswordUser(conn, name, oldpassword, newpassword))
            {
                return(false);
            }

            UserChangePasswordRequestMessage message = new UserChangePasswordRequestMessage
            {
                username    = name,
                oldPassword = GenerateHash(name, oldpassword),
                newPassword = GenerateHash(name, newpassword)
            };

            // reset player prefs on password change
            PlayerPrefs.SetString(Constants.PlayerPrefsPassword, "");

            conn.Send(message);

            return(true);
        }