Exemple #1
0
        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);
                            }
                        }
                    }
                }
            });
        }