public void Init(object gameInstance)
        {
            Utilities.UpdateChecker Checker = new Utilities.UpdateChecker(false);
            Task UpdateChecker = new Task(() => Checker.PingUpdateServer());

            UpdateChecker.Start();



            Patches.GetPatches();
            TryShow("Running Seamless Client Plugin v[" + Version + "]");
            PingTimer.Elapsed += PingTimer_Elapsed;
            PingTimer.Start();
        }
        /// <summary>
        /// Create a new instance of this class
        /// </summary>
        public PatchVersionSelectionViewModel(Window parentWindow, UserControl control) : base(parentWindow)
        {
            Patches patches = new Patches();

            AllPatches = patches.GetPatches();

            IProgressCommand  downloadPatchesCommand = new DownloadAllPatchesCommand(settingManager);
            ProgressBarDialog dialog = new ProgressBarDialog();

            if (dialog.DataContext is ProgressBarDialogViewModel progressViewModel)
            {
                downloadPatchesCommand.ProgressChanged += (sender, data) =>
                {
                    progressViewModel.UpdateProgress(data.CurrentWorkload, data.TotalWorkload);
                };
                downloadPatchesCommand.Executed += (sender, data) =>
                {
                    progressViewModel.UpdateProgress(100, 100);
                };
            }
            DownloadAllPatches = new MultiCommand(new List <ICommand>()
            {
                downloadPatchesCommand,
                new OpenCustomPopupWindowCommand(currentWindow, FontAwesomeIcon.Hourglass, "Downloading all patches", dialog, false, null)
            });

            object dockArea = control.FindName("DP_InnerDock");

            object controllerDock = control.FindName("IC_PatchSelectionControl");

            if (dockArea is DockPanel panel && controllerDock is ItemsControl controller)
            {
                panelToUse            = panel;
                OpenLaunchGameCommand = new OpenLaunchUserControlToPanel(
                    panelToUse,
                    new LaunchGameUserControl(parentWindow),
                    controller
                    );
            }
        }