public LaunchPanelV3() { InitializeComponent(); lbSelectedVersion.Visible = false; lc = new LauncherConfJson(MainForm.SelectedVersion); }
private void btnBatchfile_Click(object sender, EventArgs e) { Button currentButton = (Button)sender; var lcji = (LauncherConfJsonItem)currentButton.Tag; if (!String.IsNullOrEmpty(lcji.FolderName) && !Directory.Exists(Path.Combine(lc.VersionLocation, lcji.FolderName))) { LauncherConfJson lcCandidateForPull = getFolderFromPreviousVersion(lcji.DownloadVersion); if (lcCandidateForPull != null) { var resultAskPull = MessageBox.Show($"The component {lcji.FolderName} could be imported from {lcCandidateForPull.Version}\nDo you wish import it?", "Import candidate found", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (resultAskPull == DialogResult.Yes) { LauncherConfJsonItem candidate = lcCandidateForPull.Items.FirstOrDefault(it => it.DownloadVersion == lcji.DownloadVersion); //handle it here try { RTC_Extensions.RecursiveCopyNukeReadOnly(new DirectoryInfo(Path.Combine(lcCandidateForPull.VersionLocation, candidate.FolderName)), new DirectoryInfo(Path.Combine(lc.VersionLocation, lcji.FolderName))); RTC_Extensions.RecursiveDeleteNukeReadOnly(new DirectoryInfo(Path.Combine(lcCandidateForPull.VersionLocation, candidate.FolderName))); MainForm.mf.RefreshKeepSelectedVersion(); } catch (Exception ex) { MessageBox.Show($"Couldn't copy {Path.Combine(lcCandidateForPull.VersionLocation, candidate?.FolderName ?? "NULL") ?? "NULL"} to {lcji.FolderName}.\nIs the file in use?\nException:{ex.Message}"); try { RTC_Extensions.RecursiveDeleteNukeReadOnly(new DirectoryInfo(Path.Combine(lc.VersionLocation, lcji.FolderName))); } catch (Exception _ex) //f { Console.WriteLine(_ex); } } return; } } var result = MessageBox.Show($"The following component is missing: {lcji.FolderName}\nDo you wish to download it?", "Additional download required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { string downloadUrl = $"{MainForm.webRessourceDomain}/rtc/addons/" + lcji.DownloadVersion + ".zip"; string downloadedFile = Path.Combine(MainForm.launcherDir, "PACKAGES", lcji.DownloadVersion + ".zip"); string extractDirectory = Path.Combine(lc.VersionLocation, lcji.FolderName); MainForm.mf.DownloadFile(downloadUrl, downloadedFile, extractDirectory); } return; } lcji.Execute(); }
public LaunchPanelV3() { InitializeComponent(); lbSelectedVersion.Visible = false; lc = new LauncherConfJson(MainForm.SelectedVersion); sidebarCloseTimer = new Timer(); sidebarCloseTimer.Interval = 333; sidebarCloseTimer.Tick += SidebarCloseTimer_Tick; }
private LauncherConfJson getFolderFromPreviousVersion(string downloadVersion) { foreach (string ver in MainForm.mf.lbVersions.Items.Cast <string>()) { if (downloadVersion == ver) { continue; } var _lc = new LauncherConfJson(ver); LauncherConfJsonItem lcji = _lc.Items.FirstOrDefault(it => it.DownloadVersion == downloadVersion); if (lcji != null) { if (Directory.Exists(Path.Combine(_lc.VersionLocation, lcji.FolderName))) { return(_lc); } } } return(null); }