private void CheckForOldModList() { var oldModListFileDirectory = new DirectoryInfo($"{Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)}/TexTools/TexTools.modlist"); if (File.Exists(oldModListFileDirectory.FullName)) { var modListContent = File.ReadAllLines(oldModListFileDirectory.FullName); if (modListContent.Length > 0) { var warningMessage = "Older TexTools ModList Found.\n\nThe Older ModList is incompatible with this version.\n\nIn order to use this version, all previous mods will be disabled, and the previous ModList erased.\n\n" + "If you would like to retain your mods, it is recommended that you create a backup ModPack in the older TexTools Version, then import it into this one.\n\nWould you like to continue?"; if (FlexibleMessageBox.Show( $"{warningMessage}", "Older ModList Found", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var modding = new Modding(_gameDirectory); var index = new Index(_gameDirectory); var dat = new Dat(_gameDirectory); var error = false; if (index.IsIndexLocked(XivDataFile._0A_Exd)) { FlexibleMessageBox.Show("Unable to continue while game is running.\n\nPlease exit the game and try again.", $"ModList Disable Failed", MessageBoxButtons.OK, MessageBoxIcon.Warning); error = true; } else { try { modding.DisableOldModList(oldModListFileDirectory); } catch (Exception ex) { error = true; var message = $"There was an error attempting to disable a mod from previous version.\n\nError Message:\n{ex.Message}\n\nIt is recommended to do a Start Over from the previous version first."; FlexibleMessageBox.Show(message, $"Previous Version Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (!error) { File.Delete(oldModListFileDirectory.FullName); // Delete modded dat files foreach (var xivDataFile in (XivDataFile[])Enum.GetValues(typeof(XivDataFile))) { var datFiles = dat.GetModdedDatList(xivDataFile); foreach (var datFile in datFiles) { File.Delete(datFile); } } } else { System.Windows.Application.Current.Shutdown(); } } else { System.Windows.Application.Current.Shutdown(); } } } }
/// <summary> /// Checks for older modlist /// </summary> private async void CheckForOldModList() { var oldModListFileDirectory = new DirectoryInfo( $"{Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)}/TexTools/TexTools.modlist"); if (File.Exists(oldModListFileDirectory.FullName)) { var modListContent = File.ReadAllLines(oldModListFileDirectory.FullName); if (modListContent.Length > 0) { if (FlexibleMessageBox.Show(_win32Window, UIMessages.OldTexToolsFoundMessage, UIMessages.OldModListFoundTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var modding = new Modding(_gameDirectory); var dat = new Dat(_gameDirectory); var error = false; if (_index.IsIndexLocked(XivDataFile._0A_Exd)) { FlexibleMessageBox.Show(_win32Window, UIMessages.ModListIndexLockedErrorMessage, UIMessages.ModListDisableFailedTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); error = true; } else { try { await modding.DisableOldModList(oldModListFileDirectory); } catch (Exception ex) { error = true; FlexibleMessageBox.Show(_win32Window, string.Format(UIMessages.OldModListDisableFailedMessage, ex.Message), UIMessages.PreviousVersionErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (!error) { File.Delete(oldModListFileDirectory.FullName); // Delete modded dat files foreach (var xivDataFile in (XivDataFile[])Enum.GetValues(typeof(XivDataFile))) { var datFiles = await dat.GetModdedDatList(xivDataFile); foreach (var datFile in datFiles) { File.Delete(datFile); } } } else { System.Windows.Application.Current.Shutdown(); } } else { System.Windows.Application.Current.Shutdown(); } } } }
/// <summary> /// Checks for older modlist /// </summary> private async Task <bool> CheckForOldModList() { // This code probably needs to go soon. // Textools sub 2.0 hasn't worked since before Shadowbringers, and this code was always super buggy // to start with. var oldModListFileDirectory = new DirectoryInfo( $"{Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)}/TexTools/TexTools.modlist"); if (File.Exists(oldModListFileDirectory.FullName)) { var modListContent = File.ReadAllLines(oldModListFileDirectory.FullName); if (modListContent.Length > 0) { if (FlexibleMessageBox.Show(_win32Window, UIMessages.OldTexToolsFoundMessage, UIMessages.OldModListFoundTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var modding = new Modding(_gameDirectory); var dat = new Dat(_gameDirectory); var error = false; if (_index.IsIndexLocked(XivDataFile._0A_Exd)) { FlexibleMessageBox.Show(_win32Window, UIMessages.ModListIndexLockedErrorMessage, UIMessages.ModListDisableFailedTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); error = true; } else { try { await modding.DisableOldModList(oldModListFileDirectory); } catch (Exception ex) { error = true; FlexibleMessageBox.Show(_win32Window, string.Format(UIMessages.OldModListDisableFailedMessage, ex.Message), UIMessages.PreviousVersionErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (!error) { File.Delete(oldModListFileDirectory.FullName); // Delete modded dat files foreach (var xivDataFile in (XivDataFile[])Enum.GetValues(typeof(XivDataFile))) { var datFiles = await dat.GetModdedDatList(xivDataFile); foreach (var datFile in datFiles) { File.Delete(datFile); } } } else { return(false); } } else { return(false); } } } return(true); }