diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java index d7a728e9a..306eb7cc0 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -384,6 +384,15 @@ public final class Tools { return strList.toArray(new String[0]); } + public static String artifactToPath(DependentLibrary library) { + if (library.downloads != null && + library.downloads.artifact != null && + library.downloads.artifact.path != null) + return library.downloads.artifact.path; + String[] libInfos = library.name.split(":"); + return libInfos[0].replaceAll("\\.", "/") + "/" + libInfos[1] + "/" + libInfos[2] + "/" + libInfos[1] + "-" + libInfos[2] + ".jar"; + } + public static String getPatchedFile(String version) { return DIR_HOME_VERSION + "/" + version + "/" + version + ".jar"; } @@ -606,7 +615,7 @@ public final class Tools { List libDir = new ArrayList<>(); for (DependentLibrary libItem: info.libraries) { if(!checkRules(libItem.rules)) continue; - libDir.add(Tools.DIR_HOME_LIBRARY + "/" + libItem.downloads.artifact.path); + libDir.add(Tools.DIR_HOME_LIBRARY + "/" + artifactToPath(libItem)); } return libDir.toArray(new String[0]); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java index 42c01aa43..1f43db675 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java @@ -141,7 +141,7 @@ public class AsyncMinecraftDownloader { continue; } - String libArtifact = libItem.downloads.artifact.path; + String libArtifact = Tools.artifactToPath(libItem); outLib = new File(Tools.DIR_HOME_LIBRARY + "/" + libArtifact); outLib.getParentFile().mkdirs();