gitextract_vk4v6nm4/ ├── .editorconfig ├── .gitattributes ├── .github/ │ └── workflows/ │ └── publish.yml ├── .gitignore ├── .vscode/ │ └── settings.json ├── Assets/ │ ├── Default.isl │ ├── Icon.Border.icns │ ├── Icon.Shadow.Margin.psd │ ├── Icon.Shadow.icns │ ├── Icon.ai │ ├── Icon.psd │ ├── MiSans-Regular.otf │ └── bak/ │ ├── YMCL-App-Icon.psd │ └── YMCL-Icon.icns ├── Directory.Packages.props ├── LICENSE ├── README.en.md ├── README.md ├── YMCL.Main/ │ ├── YMCL/ │ │ ├── App.axaml │ │ ├── App.axaml.cs │ │ ├── FodyWeavers.xml │ │ ├── FodyWeavers.xsd │ │ ├── GlobalUsings.cs │ │ ├── Public/ │ │ │ ├── Assets/ │ │ │ │ └── MiSans-Regular.otf │ │ │ ├── Classes/ │ │ │ │ ├── Data/ │ │ │ │ │ ├── AggregateSearchEntry.cs │ │ │ │ │ ├── FavouriteResourceEntry.cs │ │ │ │ │ ├── JavaEntry.cs │ │ │ │ │ ├── Language.cs │ │ │ │ │ ├── LocalModEntry.cs │ │ │ │ │ ├── LocalResourcePackEntry.cs │ │ │ │ │ ├── LocalSaveEntry.cs │ │ │ │ │ ├── LogItemEntry.cs │ │ │ │ │ ├── MinecraftFolder.cs │ │ │ │ │ ├── ModrinthFile.cs │ │ │ │ │ ├── NewsDataListEntry.cs │ │ │ │ │ ├── NotificationEntry.cs │ │ │ │ │ ├── ResourceFetcher/ │ │ │ │ │ │ ├── CurseForgeResourceEntry.cs │ │ │ │ │ │ ├── CurseForgeResourceFileEntry.cs │ │ │ │ │ │ ├── IResourceEntry.cs │ │ │ │ │ │ ├── IResourceFileEntry.cs │ │ │ │ │ │ ├── ModFileUiEntry.cs │ │ │ │ │ │ └── ModrinthResourceEntry.cs │ │ │ │ │ ├── SearchTabViewItemEntry.cs │ │ │ │ │ └── Update.cs │ │ │ │ ├── Json/ │ │ │ │ │ ├── AfdianSponsor.cs │ │ │ │ │ ├── ModrinchVersionEntry.cs │ │ │ │ │ └── MojangJavaNews.cs │ │ │ │ ├── Netease/ │ │ │ │ │ ├── Availability.cs │ │ │ │ │ ├── DefaultKeyword.cs │ │ │ │ │ ├── Lyric.cs │ │ │ │ │ ├── PlayList.cs │ │ │ │ │ ├── RecordSongEntry.cs │ │ │ │ │ ├── SingleSong.cs │ │ │ │ │ └── SongUrl.cs │ │ │ │ ├── Operate/ │ │ │ │ │ ├── FavouriteMinecraftEntry.cs │ │ │ │ │ ├── MinecraftDataEntry.cs │ │ │ │ │ ├── PluginInfoEntry.cs │ │ │ │ │ ├── RegisteredPage.cs │ │ │ │ │ ├── SubTask.cs │ │ │ │ │ └── TaskEntryOperateButtonEntry.cs │ │ │ │ └── Setting/ │ │ │ │ ├── Account.cs │ │ │ │ ├── ExchangeSettingEntry.cs │ │ │ │ ├── GameSettingEntry.cs │ │ │ │ ├── SettingEntry.cs │ │ │ │ └── UiProperty.cs │ │ │ ├── Const/ │ │ │ │ ├── Data.cs │ │ │ │ ├── Path.cs │ │ │ │ └── String.cs │ │ │ ├── Controls/ │ │ │ │ ├── CourseForgeFileExpander.axaml │ │ │ │ ├── CourseForgeFileExpander.axaml.cs │ │ │ │ ├── Drawers/ │ │ │ │ │ ├── MsgHistory.axaml │ │ │ │ │ └── MsgHistory.axaml.cs │ │ │ │ ├── LogViewer.axaml │ │ │ │ ├── LogViewer.axaml.cs │ │ │ │ ├── ModrinthFileExpander.axaml │ │ │ │ ├── ModrinthFileExpander.axaml.cs │ │ │ │ ├── ScreenshotEntry.axaml │ │ │ │ ├── ScreenshotEntry.axaml.cs │ │ │ │ ├── TaskEntry.axaml │ │ │ │ ├── TaskEntry.axaml.cs │ │ │ │ ├── TextWithIcon.axaml │ │ │ │ ├── TextWithIcon.axaml.cs │ │ │ │ ├── TitleBar.axaml │ │ │ │ └── TitleBar.axaml.cs │ │ │ ├── Enum/ │ │ │ │ ├── GameSpecialFolder.cs │ │ │ │ ├── LogType.cs │ │ │ │ ├── ModLoaderType.cs │ │ │ │ ├── ResourceSource.cs │ │ │ │ ├── ResourceType.cs │ │ │ │ ├── RuntimeInfo.cs │ │ │ │ ├── Setting.cs │ │ │ │ ├── SongType.cs │ │ │ │ └── TaskState.cs │ │ │ ├── Langs/ │ │ │ │ ├── LangHelper.cs │ │ │ │ ├── MainLang.Designer.cs │ │ │ │ ├── MainLang.en-US.resx │ │ │ │ ├── MainLang.ja-JP.resx │ │ │ │ ├── MainLang.resx │ │ │ │ ├── MainLang.ru-RU.resx │ │ │ │ └── MainLang.zh-Hant.resx │ │ │ ├── Module/ │ │ │ │ ├── App/ │ │ │ │ │ ├── AppMethod.cs │ │ │ │ │ ├── Init/ │ │ │ │ │ │ ├── Dispatcher.cs │ │ │ │ │ │ ├── Op/ │ │ │ │ │ │ │ ├── Parser.cs │ │ │ │ │ │ │ └── SubModule/ │ │ │ │ │ │ │ ├── ImportSetting.cs │ │ │ │ │ │ │ └── InstallModPack.cs │ │ │ │ │ │ └── SubModule/ │ │ │ │ │ │ ├── Decision.cs │ │ │ │ │ │ ├── DetectPlatform.cs │ │ │ │ │ │ ├── GetDataFromNetwork/ │ │ │ │ │ │ │ ├── Dispatcher.cs │ │ │ │ │ │ │ ├── InstallPreviewModLoaders.cs │ │ │ │ │ │ │ └── InstallableGames.cs │ │ │ │ │ │ ├── InitConfig.cs │ │ │ │ │ │ ├── InitData.cs │ │ │ │ │ │ ├── InitLang.cs │ │ │ │ │ │ ├── InitPlugin.cs │ │ │ │ │ │ ├── InitUi.cs │ │ │ │ │ │ ├── SettingChanged.cs │ │ │ │ │ │ └── TranslateToken.cs │ │ │ │ │ └── Setting.cs │ │ │ │ ├── Debouncer.cs │ │ │ │ ├── IO/ │ │ │ │ │ ├── Disk/ │ │ │ │ │ │ ├── Getter.cs │ │ │ │ │ │ ├── Opener.cs │ │ │ │ │ │ └── Setter.cs │ │ │ │ │ └── Network/ │ │ │ │ │ ├── CurseForge.cs │ │ │ │ │ ├── DownloadFileWithProgress.cs │ │ │ │ │ ├── Http/ │ │ │ │ │ │ └── Get.cs │ │ │ │ │ ├── Modrinch.cs │ │ │ │ │ ├── NeteaseMusic.cs │ │ │ │ │ └── Update.cs │ │ │ │ ├── Mc/ │ │ │ │ │ ├── Icon.cs │ │ │ │ │ ├── Importer/ │ │ │ │ │ │ ├── jar/ │ │ │ │ │ │ │ └── Main.cs │ │ │ │ │ │ ├── mrpack/ │ │ │ │ │ │ │ ├── Main.cs │ │ │ │ │ │ │ └── ModPack.cs │ │ │ │ │ │ └── zip/ │ │ │ │ │ │ ├── Main.cs │ │ │ │ │ │ ├── ModPack.cs │ │ │ │ │ │ └── Resource.cs │ │ │ │ │ ├── Installer/ │ │ │ │ │ │ ├── Minecraft/ │ │ │ │ │ │ │ ├── CompositeForgeAndOptiFine.cs │ │ │ │ │ │ │ ├── Dispatcher.cs │ │ │ │ │ │ │ ├── Fabric.cs │ │ │ │ │ │ │ ├── Forge.cs │ │ │ │ │ │ │ ├── OptiFine.cs │ │ │ │ │ │ │ ├── Quilt.cs │ │ │ │ │ │ │ └── Vanilla.cs │ │ │ │ │ │ └── ModPack/ │ │ │ │ │ │ ├── CurseForge.cs │ │ │ │ │ │ └── Modrinth.cs │ │ │ │ │ ├── Launcher/ │ │ │ │ │ │ ├── BedRock.cs │ │ │ │ │ │ └── JavaClient.cs │ │ │ │ │ ├── MinecraftSetting.cs │ │ │ │ │ └── Utils.cs │ │ │ │ ├── Op/ │ │ │ │ │ ├── Account.cs │ │ │ │ │ ├── DownloadResource.cs │ │ │ │ │ ├── JavaRuntime.cs │ │ │ │ │ └── MinecraftFolder.cs │ │ │ │ ├── Player.cs │ │ │ │ ├── Ui/ │ │ │ │ │ ├── Animator.cs │ │ │ │ │ ├── Converter/ │ │ │ │ │ │ ├── AccountTypeIsMicrosoftConverter.cs │ │ │ │ │ │ ├── BoolReversalConverter.cs │ │ │ │ │ │ ├── BoolToDoubleConverter.cs │ │ │ │ │ │ ├── BoolToIntConverter.cs │ │ │ │ │ │ ├── BoolToStringConverter.cs │ │ │ │ │ │ ├── CountToUnitConverter.cs │ │ │ │ │ │ ├── DateTimeToStringConverter.cs │ │ │ │ │ │ ├── DoubleToIntByRoundConverter.cs │ │ │ │ │ │ ├── DoubleToPercentageConverter.cs │ │ │ │ │ │ ├── EnumIndexToBoolConverter.cs │ │ │ │ │ │ ├── GameSettingMaxMemConverter.cs │ │ │ │ │ │ ├── ListCountToBoolConverter.cs │ │ │ │ │ │ ├── ListDistinctConverter.cs │ │ │ │ │ │ ├── LogTypeToColorConverter.cs │ │ │ │ │ │ ├── MaxThreadOverSafeConverter.cs │ │ │ │ │ │ ├── MsToTimeConverter.cs │ │ │ │ │ │ ├── NoTaskIsVisibleConverter.cs │ │ │ │ │ │ ├── ReversalBoolConverter.cs │ │ │ │ │ │ ├── SelectedGameIsNotBedrock.cs │ │ │ │ │ │ ├── SpecialControlEnableListConverter.cs │ │ │ │ │ │ ├── TaskStateToColorConverter.cs │ │ │ │ │ │ └── TaskStateToTipConverter.cs │ │ │ │ │ ├── Getter.cs │ │ │ │ │ ├── Setter.cs │ │ │ │ │ ├── Shower.cs │ │ │ │ │ └── Special/ │ │ │ │ │ ├── AggregateSearchUi.cs │ │ │ │ │ ├── AutoInstallUi.cs │ │ │ │ │ ├── DropHandler.cs │ │ │ │ │ └── LaunchUi.cs │ │ │ │ ├── Util/ │ │ │ │ │ ├── Extension/ │ │ │ │ │ │ ├── Extensions.cs │ │ │ │ │ │ └── Number.cs │ │ │ │ │ ├── Permission.cs │ │ │ │ │ ├── Platform/ │ │ │ │ │ │ └── MacOs/ │ │ │ │ │ │ └── WindowHandler.cs │ │ │ │ │ └── VersionComparer.cs │ │ │ │ └── Value/ │ │ │ │ ├── Calculator.cs │ │ │ │ └── Converter.cs │ │ │ ├── Plugin/ │ │ │ │ ├── Helper/ │ │ │ │ │ ├── BuildNavItemContent.cs │ │ │ │ │ └── RegisterPage.cs │ │ │ │ ├── Loader.cs │ │ │ │ └── PluginLoadContext.cs │ │ │ ├── Styles/ │ │ │ │ ├── Dynamic/ │ │ │ │ │ ├── ContentDialog.axaml │ │ │ │ │ ├── NotificationBubble.axaml │ │ │ │ │ ├── NotificationCard.axaml │ │ │ │ │ └── Popup.axaml │ │ │ │ ├── IconPath.axaml │ │ │ │ ├── Style.axaml │ │ │ │ └── Theme.axaml │ │ │ └── Texts/ │ │ │ ├── CustomHomePageDefault.axaml │ │ │ ├── DateTime.txt │ │ │ └── IsAloneProgram.txt │ │ ├── ViewModels/ │ │ │ ├── GameSettingModel.cs │ │ │ ├── InstallPreviewModel.cs │ │ │ ├── LogViewerModel.cs │ │ │ ├── MainViewModel.cs │ │ │ ├── NotifyPropertyModelBase.cs │ │ │ ├── TaskEntryModel.cs │ │ │ └── ViewModelBase.cs │ │ ├── Views/ │ │ │ ├── CrashWindow.axaml │ │ │ ├── CrashWindow.axaml.cs │ │ │ ├── Initialize/ │ │ │ │ ├── InitializeView.axaml │ │ │ │ ├── InitializeView.axaml.cs │ │ │ │ ├── InitializeWindow.axaml │ │ │ │ ├── InitializeWindow.axaml.cs │ │ │ │ └── Pages/ │ │ │ │ ├── Account.axaml │ │ │ │ ├── Account.axaml.cs │ │ │ │ ├── JavaRuntime.axaml │ │ │ │ ├── JavaRuntime.axaml.cs │ │ │ │ ├── Language.axaml │ │ │ │ ├── Language.axaml.cs │ │ │ │ ├── MinecraftFolder.axaml │ │ │ │ └── MinecraftFolder.axaml.cs │ │ │ ├── LogWindow.axaml │ │ │ ├── LogWindow.axaml.cs │ │ │ ├── Main/ │ │ │ │ ├── MainView.axaml │ │ │ │ ├── MainView.axaml.cs │ │ │ │ ├── MainWindow.axaml │ │ │ │ ├── MainWindow.axaml.cs │ │ │ │ └── Pages/ │ │ │ │ ├── About.axaml │ │ │ │ ├── About.axaml.cs │ │ │ │ ├── Download.axaml │ │ │ │ ├── Download.axaml.cs │ │ │ │ ├── DownloadPages/ │ │ │ │ │ ├── AutoInstall.axaml │ │ │ │ │ ├── AutoInstall.axaml.cs │ │ │ │ │ ├── AutoInstallPages/ │ │ │ │ │ │ ├── InstallPreview.axaml │ │ │ │ │ │ ├── InstallPreview.axaml.cs │ │ │ │ │ │ ├── InstallableGames.axaml │ │ │ │ │ │ └── InstallableGames.axaml.cs │ │ │ │ │ ├── CurseForge.axaml │ │ │ │ │ ├── CurseForge.axaml.cs │ │ │ │ │ ├── CurseForgePages/ │ │ │ │ │ │ ├── Fetcher.axaml │ │ │ │ │ │ ├── Fetcher.axaml.cs │ │ │ │ │ │ ├── ModFileResult.axaml │ │ │ │ │ │ ├── ModFileResult.axaml.cs │ │ │ │ │ │ ├── SearchResult.axaml │ │ │ │ │ │ └── SearchResult.axaml.cs │ │ │ │ │ ├── Favourites.axaml │ │ │ │ │ ├── Favourites.axaml.cs │ │ │ │ │ ├── Modrinth.axaml │ │ │ │ │ ├── Modrinth.axaml.cs │ │ │ │ │ └── ModrinthPages/ │ │ │ │ │ ├── Fetcher.axaml │ │ │ │ │ ├── Fetcher.axaml.cs │ │ │ │ │ ├── ModFileResult.axaml │ │ │ │ │ ├── ModFileResult.axaml.cs │ │ │ │ │ ├── SearchResult.axaml │ │ │ │ │ └── SearchResult.axaml.cs │ │ │ │ ├── Launch.axaml │ │ │ │ ├── Launch.axaml.cs │ │ │ │ ├── LaunchPages/ │ │ │ │ │ ├── GameList.axaml │ │ │ │ │ ├── GameList.axaml.cs │ │ │ │ │ ├── GameSetting.axaml │ │ │ │ │ ├── GameSetting.axaml.cs │ │ │ │ │ └── SubPages/ │ │ │ │ │ ├── Mod.axaml │ │ │ │ │ ├── Mod.axaml.cs │ │ │ │ │ ├── OverView.axaml │ │ │ │ │ ├── OverView.axaml.cs │ │ │ │ │ ├── ResourcePack.axaml │ │ │ │ │ ├── ResourcePack.axaml.cs │ │ │ │ │ ├── Save.axaml │ │ │ │ │ ├── Save.axaml.cs │ │ │ │ │ ├── Screenshot.axaml │ │ │ │ │ ├── Screenshot.axaml.cs │ │ │ │ │ ├── Setting.axaml │ │ │ │ │ ├── Setting.axaml.cs │ │ │ │ │ ├── ShaderPack.axaml │ │ │ │ │ └── ShaderPack.axaml.cs │ │ │ │ ├── More.axaml │ │ │ │ ├── More.axaml.cs │ │ │ │ ├── MorePages/ │ │ │ │ │ ├── GameUpdateLog.axaml │ │ │ │ │ ├── GameUpdateLog.axaml.cs │ │ │ │ │ ├── TreasureBox.axaml │ │ │ │ │ └── TreasureBox.axaml.cs │ │ │ │ ├── Music.axaml │ │ │ │ ├── Music.axaml.cs │ │ │ │ ├── MusicPages/ │ │ │ │ │ ├── Lyric.axaml │ │ │ │ │ ├── Lyric.axaml.cs │ │ │ │ │ ├── PlayList.axaml │ │ │ │ │ ├── PlayList.axaml.cs │ │ │ │ │ ├── Search.axaml │ │ │ │ │ └── Search.axaml.cs │ │ │ │ ├── Search.axaml │ │ │ │ ├── Search.axaml.cs │ │ │ │ ├── Setting.axaml │ │ │ │ ├── Setting.axaml.cs │ │ │ │ ├── SettingPages/ │ │ │ │ │ ├── Account.axaml │ │ │ │ │ ├── Account.axaml.cs │ │ │ │ │ ├── Download.axaml │ │ │ │ │ ├── Download.axaml.cs │ │ │ │ │ ├── Launch.axaml │ │ │ │ │ ├── Launch.axaml.cs │ │ │ │ │ ├── Launcher.axaml │ │ │ │ │ ├── Launcher.axaml.cs │ │ │ │ │ ├── Personalize.axaml │ │ │ │ │ ├── Personalize.axaml.cs │ │ │ │ │ ├── Plugin.axaml │ │ │ │ │ └── Plugin.axaml.cs │ │ │ │ ├── Task.axaml │ │ │ │ └── Task.axaml.cs │ │ │ ├── NotificationWindow.axaml │ │ │ └── NotificationWindow.axaml.cs │ │ └── YMCL.csproj │ └── YMCL.Desktop/ │ ├── Icon-Border.icns │ ├── Program.cs │ ├── Properties/ │ │ └── PublishProfiles/ │ │ └── FolderProfile.pubxml │ ├── YMCL.Desktop.csproj │ ├── YMCL.Desktop.desktop │ ├── YMCL.Desktop.metainfo.xml │ ├── YMCL.Desktop.pupnet.conf │ └── app.manifest ├── YMCL.Plugin/ │ ├── YMCL.Plugin.Base/ │ │ ├── IPlugin.cs │ │ └── YMCL.Plugin.Base.csproj │ ├── YMCL.Plugin.Page/ │ │ ├── ExamplePage.axaml │ │ ├── ExamplePage.axaml.cs │ │ ├── Main.cs │ │ └── YMCL.Plugin.Page.csproj │ └── YMCL.Plugin.Simple/ │ ├── Main.cs │ └── YMCL.Plugin.Simple.csproj ├── YMCL.Web/ │ ├── css/ │ │ ├── components.css │ │ ├── google.css │ │ ├── main.css │ │ └── responsive.css │ ├── index.html │ └── js/ │ ├── downloads.js │ └── main.js ├── YMCL.sln ├── YMCL.sln.DotSettings └── crowdin.yml