From 1a3c31a1413813cefcbfff1e53c644100c013cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E5=AE=AB=E4=B8=B4=E9=A3=8E?= Date: Tue, 12 Jul 2016 14:17:17 +0800 Subject: [PATCH] Fix Library resolve bug --- .../download/DynamicDownloadProvider.java | 2 +- .../core/version/MinecraftLibrary.java | 222 +++++++++--------- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java index 0c6535e78..11154f835 100644 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java @@ -118,7 +118,7 @@ public class DynamicDownloadProvider extends MojangDownloadProvider { if (StrUtils.isNotBlank(launcherMetaAddr)) { str = str.replace("https://launchermeta.mojang.com", launcherMetaAddr); } - if (StrUtils.isNotBlank(launcherMetaAddr)) { + if (StrUtils.isNotBlank(launcherAddr)) { str = str.replace("https://launcher.mojang.com", launcherAddr); } return super.getParsedDownloadURL(str); diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java index b4266a53c..ebe2ef844 100755 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java @@ -31,122 +31,122 @@ import org.jackhuang.hellominecraft.util.StrUtils; */ public class MinecraftLibrary extends IMinecraftLibrary { - @SerializedName("rules") - public ArrayList rules; - @SerializedName("url") - public String url; - @SerializedName("natives") - public Natives natives; - @SerializedName("extract") - public Extract extract; - @SerializedName("downloads") - public LibrariesDownloadInfo downloads; + @SerializedName("rules") + public ArrayList rules; + @SerializedName("url") + public String url; + @SerializedName("natives") + public Natives natives; + @SerializedName("extract") + public Extract extract; + @SerializedName("downloads") + public LibrariesDownloadInfo downloads; - public MinecraftLibrary(String name) { - super(name); - } + public MinecraftLibrary(String name) { + super(name); + } - public MinecraftLibrary(ArrayList rules, String url, Natives natives, String name, Extract extract, LibraryDownloadInfo downloads) { - super(name); - this.rules = (rules == null) ? null : (ArrayList) rules.clone(); - this.url = url; - this.natives = (natives == null) ? null : (Natives) natives.clone(); - this.extract = (extract == null) ? null : (Extract) extract.clone(); - } + public MinecraftLibrary(ArrayList rules, String url, Natives natives, String name, Extract extract, LibraryDownloadInfo downloads) { + super(name); + this.rules = (rules == null) ? null : (ArrayList) rules.clone(); + this.url = url; + this.natives = (natives == null) ? null : (Natives) natives.clone(); + this.extract = (extract == null) ? null : (Extract) extract.clone(); + } - @Override - public boolean allow() { - if (rules != null) { - boolean flag = false; - for (Rules r : rules) { - if ("disallow".equals(r.action())) - return false; - else if ("allow".equals(r.action())) - flag = true; - } - return flag; - } - return true; - } - - private String formatArch(String nati) { - return nati == null ? "" : nati.replace("${arch}", Platform.getPlatform().getBit()); - } - - private String getNative() { - switch (OS.os()) { - case WINDOWS: - return formatArch(natives.windows); - case OSX: - return formatArch(natives.osx); - default: - return formatArch(natives.linux); - } - } - - @Override - public boolean isRequiredToUnzip() { - return natives != null && allow(); - } - - public String formatName() { - String[] s = name.split(":"); - if (s.length < 3) { - return null; - } - - StringBuilder sb = new StringBuilder(s[0].replace('.', '/')).append('/').append(s[1]).append('/').append(s[2]).append('/').append(s[1]).append('-').append(s[2]); - if (natives != null) { - sb.append('-').append(getNative()); - } - - return sb.append(".jar").toString(); - } - - @Override - public File getFilePath(File gameDir) { - LibraryDownloadInfo info = getDownloadInfo(); - if (info == null) { - return null; - } - return new File(gameDir, "libraries/" + info.path); - } - - @Override - public Extract getDecompressExtractRules() { - return extract == null ? new Extract() : extract; - } - - public LibraryDownloadInfo getDownloadInfo() { - if (downloads == null) { - downloads = new LibrariesDownloadInfo(); - } - - LibraryDownloadInfo info = null; - if (natives != null) { - if (downloads.classifiers == null) { - downloads.classifiers = new HashMap<>(); - } else { - if (!downloads.classifiers.containsKey(getNative())) { - downloads.classifiers.put(getNative(), info = new LibraryDownloadInfo()); - } else { - info = downloads.classifiers.get(getNative()); + @Override + public boolean allow() { + if (rules != null) { + boolean flag = false; + for (Rules r : rules) { + if ("disallow".equals(r.action())) { + return false; + } else if ("allow".equals(r.action())) { + flag = true; } } - } else if (downloads.artifact == null) { - downloads.artifact = info = new LibraryDownloadInfo(); - } else { - info = downloads.artifact; + return flag; } - - if (StrUtils.isBlank(info.path)) { - info.path = formatName(); - if (info.path == null) { - return null; + return true; + } + + private String formatArch(String nati) { + return nati == null ? "" : nati.replace("${arch}", Platform.getPlatform().getBit()); + } + + private String getNative() { + switch (OS.os()) { + case WINDOWS: + return formatArch(natives.windows); + case OSX: + return formatArch(natives.osx); + default: + return formatArch(natives.linux); + } + } + + @Override + public boolean isRequiredToUnzip() { + return natives != null && allow(); + } + + public String formatName() { + String[] s = name.split(":"); + if (s.length < 3) { + return null; + } + + StringBuilder sb = new StringBuilder(s[0].replace('.', '/')).append('/').append(s[1]).append('/').append(s[2]).append('/').append(s[1]).append('-').append(s[2]); + if (natives != null) { + sb.append('-').append(getNative()); + } + + return sb.append(".jar").toString(); + } + + @Override + public File getFilePath(File gameDir) { + LibraryDownloadInfo info = getDownloadInfo(); + if (info == null) { + return null; + } + return new File(gameDir, "libraries/" + info.path); + } + + @Override + public Extract getDecompressExtractRules() { + return extract == null ? new Extract() : extract; + } + + public LibraryDownloadInfo getDownloadInfo() { + if (downloads == null) { + downloads = new LibrariesDownloadInfo(); + } + + LibraryDownloadInfo info = null; + if (natives != null) { + if (downloads.classifiers == null) { + downloads.classifiers = new HashMap<>(); } - } - - info.forgeURL = this.url; - return info; - } + if (!downloads.classifiers.containsKey(getNative())) { + downloads.classifiers.put(getNative(), info = new LibraryDownloadInfo()); + } else { + info = downloads.classifiers.get(getNative()); + } + } else if (downloads.artifact == null) { + downloads.artifact = info = new LibraryDownloadInfo(); + } else { + info = downloads.artifact; + } + + if (StrUtils.isBlank(info.path)) { + info.path = formatName(); + if (info.path == null) { + return null; + } + } + + info.forgeURL = this.url; + return info; + } }