From f8081d5b13aca16beeb58f6faa5d182c095d2095 Mon Sep 17 00:00:00 2001 From: Zkitefly <64117916+zkitefly@users.noreply.github.com> Date: Fri, 7 Feb 2025 10:29:55 +0000 Subject: [PATCH 1/4] =?UTF-8?q?Feat:=20Automatically=20create=20=E2=80=9Cm?= =?UTF-8?q?ods"=20and=20"shaderpacks"=20folders=20after=20installing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/ui/download/InstallersPage.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index 8a80a0ba1..cd5b5aafa 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -48,6 +48,7 @@ import static org.jackhuang.hmcl.util.i18n.I18n.i18n; public class InstallersPage extends Control implements WizardPage { protected final WizardController controller; + private final HMCLGameRepository repository; protected InstallerItem.InstallerItemGroup group; protected JFXTextField txtName = new JFXTextField(); @@ -57,6 +58,7 @@ public class InstallersPage extends Control implements WizardPage { public InstallersPage(WizardController controller, HMCLGameRepository repository, String gameVersion, DownloadProvider downloadProvider) { this.controller = controller; + this.repository = repository; this.group = new InstallerItem.InstallerItemGroup(gameVersion, getInstallerItemStyle()); txtName.getValidators().addAll( @@ -133,6 +135,7 @@ public class InstallersPage extends Control implements WizardPage { .yesOrNo(() -> { controller.getSettings().put("name", name); controller.onFinish(); + createRequiredFolders(name); }, () -> { // The user selects Cancel and does nothing. }) @@ -140,6 +143,32 @@ public class InstallersPage extends Control implements WizardPage { } else { controller.getSettings().put("name", name); controller.onFinish(); + createRequiredFolders(name); + } + } + + private void createRequiredFolders(String versionName) { + for (InstallerItem library : group.getLibraries()) { + String libraryId = library.getLibraryId(); + if (!controller.getSettings().containsKey(libraryId)) { + continue; + } + + LibraryAnalyzer.LibraryType libraryType = LibraryAnalyzer.LibraryType.fromPatchId(libraryId); + if (libraryType != null) { + java.io.File versionRoot = repository.getVersionRoot(versionName); + switch (libraryType) { + case FORGE: + case FABRIC: + case QUILT: + case LITELOADER: + new java.io.File(versionRoot, "mods").mkdirs(); + break; + case OPTIFINE: + new java.io.File(versionRoot, "shaderpacks").mkdirs(); + break; + } + } } } From 5e9b902b3f75eeeb53efcc9a59d259ea2c2a77d8 Mon Sep 17 00:00:00 2001 From: Zkitefly <64117916+zkitefly@users.noreply.github.com> Date: Fri, 7 Feb 2025 10:31:50 +0000 Subject: [PATCH 2/4] update --- .../java/org/jackhuang/hmcl/ui/download/InstallersPage.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index cd5b5aafa..7c03152cf 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -164,9 +164,6 @@ public class InstallersPage extends Control implements WizardPage { case LITELOADER: new java.io.File(versionRoot, "mods").mkdirs(); break; - case OPTIFINE: - new java.io.File(versionRoot, "shaderpacks").mkdirs(); - break; } } } From 4bcdc1c1ac223462edb59b5905f6acde031f3034 Mon Sep 17 00:00:00 2001 From: Zkitefly <64117916+zkitefly@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:00:39 +0000 Subject: [PATCH 3/4] Update HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java Co-authored-by: 3gf8jv4dv <3gf8jv4dv@gmail.com> --- .../main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index 7c03152cf..b4efed1fb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -159,6 +159,7 @@ public class InstallersPage extends Control implements WizardPage { java.io.File versionRoot = repository.getVersionRoot(versionName); switch (libraryType) { case FORGE: + case NEOFORGE: case FABRIC: case QUILT: case LITELOADER: From f426dc9ee982f30ff22aac096c9154a53ad7ac90 Mon Sep 17 00:00:00 2001 From: Zkitefly <64117916+zkitefly@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:57:21 +0000 Subject: [PATCH 4/4] Update HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java Co-authored-by: 3gf8jv4dv <3gf8jv4dv@gmail.com> --- .../java/org/jackhuang/hmcl/ui/download/InstallersPage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index b4efed1fb..c381aa0a7 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -159,7 +159,7 @@ public class InstallersPage extends Control implements WizardPage { java.io.File versionRoot = repository.getVersionRoot(versionName); switch (libraryType) { case FORGE: - case NEOFORGE: + case NEO_FORGE: case FABRIC: case QUILT: case LITELOADER: