internal static void Prefix(QuickPlaySongPacksDropdown __instance, ref MasterServerQuickPlaySetupData.QuickPlaySongPacksOverride ____quickPlaySongPacksOverride, ref bool ____initialized)
 {
     if (ModStatusProvider.ShouldBlockSongPackOverrides || QuickPlaySongPacksDropdownPatch.TaskState != QuickPlaySongPacksDropdownPatch.TaskStateEnum.Finished)
     {
         ____quickPlaySongPacksOverride = null;
         ____initialized = false;
     }
 }
        public static void UpdateSongPacks()
        {
            if (cancellationTokenSource.Token.CanBeCanceled)
            {
                cancellationTokenSource.Cancel();
            }
            cancellationTokenSource = new CancellationTokenSource();
            QuickPlaySongPacksDropdown instance = GameClassInstanceProvider.Instance.QuickPlaySongPacksDropdown;

            if (instance != null)
            {
                instance.SetField <QuickPlaySongPacksDropdown, MasterServerQuickPlaySetupData.QuickPlaySongPacksOverride>("_quickPlaySongPacksOverride", null);
            }
            if (ModStatusProvider.ShouldBlockSongPackOverrides)
            {
                Plugin.Logger.Info("MultiplayerExtensions not installed, not overriding packs");
                return;
            }
            TaskState = TaskStateEnum.Running;
            System.Threading.Tasks.Task.Run(async() =>
            {
                try
                {
                    Plugin.Logger.Info("Get QuickPlaySongPacksOverride");
                    var quickPlaySetupData = await GameClassInstanceProvider.Instance.MasterServerQuickPlaySetupModel.GetQuickPlaySetupAsync(cancellationTokenSource.Token);
                    return(quickPlaySetupData.quickPlayAvailablePacksOverride);
                }
                catch (Exception)
                {
                    Plugin.Logger.Warn("Could not get QuickPlaySongPacksOverride");
                    TaskState = TaskStateEnum.Failed;
                    return(null);
                }
            }).ContinueWith(r =>
            {
                Plugin.Logger.Debug("ContinueWith running for quickplaySongPackOverrides");
                if (instance != null)
                {
                    instance.SetField("_quickPlaySongPacksOverride", r.Result);
                    instance.SetField("_initialized", false);
                }
                if (TaskState == TaskStateEnum.Running)
                {
                    TaskState = TaskStateEnum.Finished;
                }
                //MultiplayerModeSelectionFlowCoordinatorPatch.ShowQuickPlayLobbyScreenIfWaiting();
                //GameClassInstanceProvider.Instance.QuickPlaySongPacksDropdown.LazyInit();
            }
                            );
        }
 internal static void Prefix(QuickPlaySongPacksDropdown __instance)
 {
     GameClassInstanceProvider.Instance.QuickPlaySongPacksDropdown = __instance;
 }