private void buttonNWDeleteCache_Click(object sender, EventArgs e) { if (MsgBox.Get("areYouSure").FormatText("Do you really want to delete all remote information?").Show(MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { // TODO: Call FormMods.UpdateModList after deleting remote info NexusMods.DeleteCache(); MsgBox.Get("done").FormatText("Removed remote information").Popup(MessageBoxIcon.Information); } }
public FormSettings() { InitializeComponent(); // Make this form translatable: LocalizedForm form = new LocalizedForm(this, this.toolTip); form.SpecialControls.Add(this.contextMenuStripGame); Localization.LocalizedForms.Add(form); // Handle translations: Translation.LanguageChanged += OnLanguageChanged; // Assign a dropdown menu to hold languages: Localization.AssignDropDown(this.comboBoxLanguage); Translation.BlackList.AddRange(new string[] { "buttonDownloadLanguages", "buttonRefreshLanguage", "labelNMUserID", "labelNMHourlyRateLimit", "labelNMAPIKeyStatus", "labelNMUserName", "labelNMDailyRateLimitReset", "labelNMMembership", "labelNMDailyRateLimit" }); // Link tweaks LinkInfo(); LinkControlsToTweaks(); // Load NexusMods NexusMods.Load(); // Init components / assign event handler: this.listViewGameInstances.HeaderStyle = ColumnHeaderStyle.None; this.listViewGameInstances.DoubleClick += listViewGameInstances_DoubleClick; this.backgroundWorkerDownloadLanguages.RunWorkerCompleted += backgroundWorkerDownloadLanguages_RunWorkerCompleted; this.backgroundWorkerRetrieveProfileInfo.RunWorkerCompleted += backgroundWorkerRetrieveProfileInfo_RunWorkerCompleted; this.FormClosing += FormSettings_FormClosing; SingleSignOn.SSOFinished += SingleSignOn_SSOFinished; }
/// <summary> /// Downloads and installs a mod from NexusMods. (by using NXM links) /// </summary> /// <param name="useSourceBA2Archive">When false, creates a new "frozen" mod.</param> public static bool InstallRemote(ManagedMods mods, string nxmLinkStr, bool useSourceBA2Archive = false, Action <Progress> ProgressChanged = null) { NXMLink nxmLink = NXMHandler.ParseLink(nxmLinkStr); // Get the download link from NexusMods: ProgressChanged(Progress.Indetermined("Requesting mod download link...")); string dlLinkStr = NMMod.RequestDownloadLink(nxmLink); if (dlLinkStr == null) { ProgressChanged?.Invoke(Progress.Aborted("Couldn't retrieve download link...")); return(false); } Uri dlLink = new Uri(dlLinkStr); string dlFileName = dlLink.Segments.Last(); string dlPath = Path.Combine(Shared.DownloadsFolder, dlFileName); // Download mod, unless we already have it: if (!File.Exists(dlPath)) { DownloadFile(dlLink.OriginalString, dlPath, ProgressChanged); } if (!File.Exists(dlPath)) { ProgressChanged?.Invoke(Progress.Aborted("Download failed.")); return(false); } // Get remote mod info: ProgressChanged(Progress.Indetermined("Requesting mod information and thumbnail...")); NMMod nmMod = NexusMods.RequestModInformation(nxmLink.modId); // Install mod: ProgressChanged(Progress.Indetermined($"Installing '{nmMod.Title}'...")); ManagedMod newMod = ModInstallations.FromArchive(mods.GamePath, dlPath, useSourceBA2Archive, ProgressChanged); newMod.Title = nmMod.Title; newMod.Version = nmMod.LatestVersion; newMod.URL = nmMod.URL; mods.Add(newMod); mods.Save(); ProgressChanged?.Invoke(Progress.Done($"'{nmMod.Title}' installed.")); return(true); }