FFXIVQuickLauncher icon indicating copy to clipboard operation
FFXIVQuickLauncher copied to clipboard

XL_NOAUTOUPDATE doesn't work properly

Open Vvorcun opened this issue 1 year ago • 3 comments

Update disclaimer

  • [X] Yes, I have checked and my issue is not related to the game updating and plugins not working correctly.

What did you do?

Setting XL_NOAUTOUPDATE to true leads to a System.Exception: Frontier URL template is null, this is now required error.

An error in XIVLauncher occurred. Please consult the FAQ. If this issue persists, please report
it on GitHub by clicking the button below, describing the issue and copying the text in the box.

Error during early initialization. Please report this error.

System.Exception: Frontier URL template is null, this is now required
   at XIVLauncher.Common.Game.Launcher..ctor(ISteam steam, IUniqueIdCache uniqueIdCache, ISettings settings, String frontierUrl) in C:\goatsoft\xl\XIVLauncher.Common\Game\Launcher.cs:line 45
   at XIVLauncher.Windows.ViewModel.MainWindowViewModel..ctor(Window window) in D:\a\FFXIVQuickLauncher\FFXIVQuickLauncher\src\XIVLauncher\Windows\ViewModel\MainWindowViewModel.cs:line 84
   at XIVLauncher.Windows.MainWindow..ctor() in D:\a\FFXIVQuickLauncher\FFXIVQuickLauncher\src\XIVLauncher\Windows\MainWindow.xaml.cs:line 61
   at XIVLauncher.App.<>c__DisplayClass28_0.<OnUpdateCheckFinished>b__0() in D:\a\FFXIVQuickLauncher\FFXIVQuickLauncher\src\XIVLauncher\App.xaml.cs:line 182
   at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback)
   at XIVLauncher.App.App_OnStartup(Object sender, StartupEventArgs e) in D:\a\FFXIVQuickLauncher\FFXIVQuickLauncher\src\XIVLauncher\App.xaml.cs:line 485
   at System.Windows.Application.OnStartup(StartupEventArgs e)
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at XIVLauncher.App.Main()

Platform

Windows

Wine/Proton runner version

No response

Relevant log output

No response

Vvorcun avatar May 23 '24 08:05 Vvorcun

Yeah, that's annoying... We moved a few static values necessary for the launcher to function into a config payload that is downloaded together with the update check, so that we can change it without having to make a release.

We could hardcode them when disabling updates, but that would mean that you'd likely be stuck with old values forever.

goaaats avatar May 23 '24 08:05 goaaats

Is it possible to make launcher completely silent though? So it'll get all necessary data, token for login and stuff without any popups. That would be really awesome!

Vvorcun avatar May 23 '24 08:05 Vvorcun

Adding onto this slightly, bool.Parse doesn't work with 0/1 values, only "true" and "false". Ran into this trying to set XL_NOAUTOUPDATE=1. https://github.com/goatcorp/FFXIVQuickLauncher/blob/625d624ba48e499cc640c477ae7ec7b28981450d/src/XIVLauncher.Common/EnvironmentSettings.cs#L13

LupinThidr avatar Jun 15 '24 16:06 LupinThidr