public void ReloadSkinPacks() { LoadedSkinPacks.Items.Clear(); SkinPacks.Clear(); var installation = ConfigManager.CurrentInstallation; if (installation == null) { return; } string InstallationPath = Filepaths.GetInstallationsFolderPath(ConfigManager.CurrentProfile, installation.DirectoryName); string normal_folder = Filepaths.GetSkinPacksFolderPath(InstallationPath, false); string dev_folder = Filepaths.GetSkinPacksFolderPath(InstallationPath, true); if (Directory.Exists(normal_folder)) { AddPacks(normal_folder); } if (Directory.Exists(dev_folder)) { AddPacks(dev_folder); } UpdateAddSkinButton(); void AddPacks(string _SourceFolder) { var SourceFolder = new DirectoryInfo(_SourceFolder); var FoundFolders = SourceFolder.GetDirectories(); foreach (var PossiblePack in FoundFolders) { if (PossiblePack.GetFiles().ToList().Exists(x => x.Name == "manifest.json")) { var result = MCSkinPack.ValidatePack(PossiblePack.FullName); if (result != null) { SkinPacks.Add(result); LoadedSkinPacks.Items.Add(result); } } } } }
public async void ReloadSkinPacks() { await this.Dispatcher.InvokeAsync(() => { SkinPacks.Clear(); var installation = LauncherModel.Default.Config.CurrentInstallation; if (installation == null) { return; } string InstallationPath = LauncherModel.Default.FilepathManager.GetInstallationsFolderPath(LauncherModel.Default.Config.CurrentProfileUUID, installation.DirectoryName); string normal_folder = LauncherModel.Default.FilepathManager.GetSkinPacksFolderPath(InstallationPath, false); string dev_folder = LauncherModel.Default.FilepathManager.GetSkinPacksFolderPath(InstallationPath, true); if (Directory.Exists(normal_folder)) { AddPacks(normal_folder); } if (Directory.Exists(dev_folder)) { AddPacks(dev_folder); } UpdateAddSkinButton(); void AddPacks(string _SourceFolder) { var SourceFolder = new DirectoryInfo(_SourceFolder); var FoundFolders = SourceFolder.GetDirectories(); foreach (var PossiblePack in FoundFolders) { if (PossiblePack.GetFiles().ToList().Exists(x => x.Name == "manifest.json")) { var result = MCSkinPack.ValidatePack(PossiblePack.FullName); if (result != null) { SkinPacks.Add(result); } } } } }); }