From 7e781dd24c201c2c82f0698fd10c4b74bc913f23 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Wed, 29 Jul 2015 23:18:05 +0800 Subject: [PATCH] fix wrong recognized java platform. --- HMCL/obfuscate_2.3.3.map | 60 +++++++++---------- .../launch/AbstractMinecraftLoader.java | 9 ++- .../launcher/launch/LibraryDownloadTask.java | 25 ++++++-- .../installers/forge/ForgeInstaller.java | 4 +- .../liteloader/LiteLoaderInstaller.java | 2 +- 5 files changed, 59 insertions(+), 41 deletions(-) diff --git a/HMCL/obfuscate_2.3.3.map b/HMCL/obfuscate_2.3.3.map index de6d7b244..cc4b5a6e6 100644 --- a/HMCL/obfuscate_2.3.3.map +++ b/HMCL/obfuscate_2.3.3.map @@ -1235,11 +1235,11 @@ org.jackhuang.hellominecraft.launcher.launch.AbstractMinecraftLoader -> org.jack org.jackhuang.hellominecraft.launcher.utils.auth.UserProfileProvider lr -> a java.io.File gameDir -> b org.jackhuang.hellominecraft.launcher.launch.IMinecraftProvider provider -> a - 60:128:void makeHeadCommand(java.util.List) -> a - 132:163:java.util.List makeLaunchingCommand() -> a + 60:133:void makeHeadCommand(java.util.List) -> a + 137:168:java.util.List makeLaunchingCommand() -> a void makeSelf(java.util.List) -> b - 179:179:void appendJVMArgs(java.util.List) -> c - 182:182:org.jackhuang.hellominecraft.launcher.settings.Profile getUserVersion() -> a + 184:184:void appendJVMArgs(java.util.List) -> c + 187:187:org.jackhuang.hellominecraft.launcher.settings.Profile getUserVersion() -> a org.jackhuang.hellominecraft.launcher.launch.DefaultGameLauncher -> org.jackhuang.hellominecraft.launcher.h: 46:69:void register() -> a 61:67:boolean lambda$register$3(java.lang.Object,org.jackhuang.hellominecraft.launcher.launch.GameLauncher$DecompressLibraryJob) -> b @@ -1333,12 +1333,12 @@ org.jackhuang.hellominecraft.launcher.launch.LibraryDownloadTask -> org.jackhuan boolean shouldContinue -> a boolean aborted -> b int size -> a - 56:66:boolean executeTask() -> a - 76:154:boolean download(java.net.URL,java.io.File) -> a - 159:199:void unpackLibrary(java.io.File,java.io.File) -> a - 203:219:void closeFiles() -> a - 223:225:boolean abort() -> b - 230:230:java.lang.String getInfo() -> a + 56:76:boolean executeTask() -> a + 86:167:boolean download(java.net.URL,java.io.File) -> a + 172:212:void unpackLibrary(java.io.File,java.io.File) -> a + 216:232:void closeFiles() -> a + 236:238:boolean abort() -> b + 243:243:java.lang.String getInfo() -> a org.jackhuang.hellominecraft.launcher.launch.MinecraftCrashAdvicer -> org.jackhuang.hellominecraft.launcher.u: 29:29:java.lang.String getAdvice(java.lang.String) -> a 33:52:java.lang.String getAdvice(java.lang.String,boolean) -> a @@ -3261,22 +3261,22 @@ org.jackhuang.hellominecraft.tasks.TaskList -> org.jackhuang.hellominecraft.laun boolean shouldContinue -> a java.util.Set threadPool -> a java.util.Set taskPool -> b - 45:48:void clean() -> a - 51:52:void addAllDoneListener(org.jackhuang.hellominecraft.utils.functions.NonConsumer) -> a - 55:56:void addTaskListener(org.jackhuang.hellominecraft.tasks.DoingDoneListener) -> a - 59:61:void addTask(org.jackhuang.hellominecraft.tasks.Task) -> a - 64:64:int taskCount() -> a - 90:109:void processTasks(java.util.Collection) -> a - 112:136:void executeTask(org.jackhuang.hellominecraft.tasks.Task) -> b - 140:148:void run() -> run - 151:151:boolean isEmpty() -> a - 155:163:void abort() -> b + 45:47:void clean() -> a + 50:51:void addAllDoneListener(org.jackhuang.hellominecraft.utils.functions.NonConsumer) -> a + 54:55:void addTaskListener(org.jackhuang.hellominecraft.tasks.DoingDoneListener) -> a + 58:59:void addTask(org.jackhuang.hellominecraft.tasks.Task) -> a + 62:62:int taskCount() -> a + 88:107:void processTasks(java.util.Collection) -> a + 110:134:void executeTask(org.jackhuang.hellominecraft.tasks.Task) -> b + 138:147:void run() -> run + 150:150:boolean isEmpty() -> a + 154:162:void abort() -> b 32:32:void access$000(org.jackhuang.hellominecraft.tasks.TaskList,org.jackhuang.hellominecraft.tasks.Task) -> a org.jackhuang.hellominecraft.tasks.TaskList$InvokeThread -> org.jackhuang.hellominecraft.launcher.dm: org.jackhuang.hellominecraft.tasks.Task task -> a java.util.Set s -> a org.jackhuang.hellominecraft.tasks.TaskList this$0 -> a - 79:82:void run() -> run + 77:80:void run() -> run org.jackhuang.hellominecraft.tasks.TaskRunnable -> org.jackhuang.hellominecraft.launcher.dn: java.lang.Runnable r -> a 35:39:boolean executeTask() -> a @@ -3403,12 +3403,12 @@ org.jackhuang.hellominecraft.tasks.download.FileDownloadTask -> org.jackhuang.he java.util.ArrayList al -> a 103:103:java.lang.String getUrl() -> b 112:128:void closeFiles() -> a - 133:212:boolean executeTask() -> a - 216:217:void download(java.lang.String,java.lang.String,org.jackhuang.hellominecraft.tasks.download.DownloadListener) -> a - 221:223:boolean abort() -> b - 228:228:java.lang.String getInfo() -> a - 233:233:java.io.File getResult() -> a - 240:241:org.jackhuang.hellominecraft.tasks.Task registerPreviousResult(org.jackhuang.hellominecraft.tasks.communication.PreviousResult) -> a + 133:215:boolean executeTask() -> a + 219:220:void download(java.lang.String,java.lang.String,org.jackhuang.hellominecraft.tasks.download.DownloadListener) -> a + 224:226:boolean abort() -> b + 231:231:java.lang.String getInfo() -> a + 236:236:java.io.File getResult() -> a + 243:244:org.jackhuang.hellominecraft.tasks.Task registerPreviousResult(org.jackhuang.hellominecraft.tasks.communication.PreviousResult) -> a 44:44:java.lang.Object getResult() -> a 60:60:boolean lambda$static$5(java.lang.String,javax.net.ssl.SSLSession) -> b boolean access$lambda$0(java.lang.String,javax.net.ssl.SSLSession) -> a @@ -3832,9 +3832,9 @@ org.jackhuang.hellominecraft.utils.system.JdkVersion -> org.jackhuang.hellominec 131:131:java.lang.String getJavaVersion() -> c 149:149:int getMajorJavaVersion() -> b 153:154:boolean isJava64Bit() -> a - 160:196:org.jackhuang.hellominecraft.utils.system.JdkVersion getJavaVersionFromExecutable(java.lang.String) -> a - 200:202:void write(java.io.File) -> a - 205:205:boolean isEarlyAccess() -> b + 160:186:org.jackhuang.hellominecraft.utils.system.JdkVersion getJavaVersionFromExecutable(java.lang.String) -> a + 190:192:void write(java.io.File) -> a + 195:195:boolean isEarlyAccess() -> b org.jackhuang.hellominecraft.utils.system.MessageBox -> org.jackhuang.hellominecraft.launcher.ex: java.lang.String Title -> a int DEFAULT_OPTION -> a diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/AbstractMinecraftLoader.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/AbstractMinecraftLoader.java index c7b813a87..981a51b97 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/AbstractMinecraftLoader.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/AbstractMinecraftLoader.java @@ -87,6 +87,12 @@ public abstract class AbstractMinecraftLoader implements IMinecraftLoader { res.add("-Xmn128m"); } + if (jv != null) { + HMCLog.log("Java Version: " + jv.getVersion()); + HMCLog.log("Java Platform: " + jv.getPlatform().getBit()); + } + HMCLog.log("System Platform: " + Platform.getPlatform().getBit()); + if (jv != null && jv.getPlatform() == Platform.BIT_32 && Platform.getPlatform() == Platform.BIT_64) MessageBox.Show(C.i18n("advice.os64butjdk32")); @@ -106,8 +112,7 @@ public abstract class AbstractMinecraftLoader implements IMinecraftLoader { } if (!StrUtils.isBlank(v.getPermSize()) && !v.isNoJVMArgs()) - if (jv != null && jv.getParsedVersion() >= JdkVersion.JAVA_18); - else res.add("-XX:MaxPermSize=" + v.getPermSize() + "m"); + if (jv != null && jv.getParsedVersion() >= JdkVersion.JAVA_18); else res.add("-XX:MaxPermSize=" + v.getPermSize() + "m"); if (!v.isNoJVMArgs()) appendJVMArgs(res); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/LibraryDownloadTask.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/LibraryDownloadTask.java index cc30982ec..80726b927 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/LibraryDownloadTask.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/launch/LibraryDownloadTask.java @@ -49,16 +49,26 @@ public class LibraryDownloadTask extends Task { public LibraryDownloadTask(GameLauncher.DownloadLibraryJob job) { this.job = job; } - + @Override public boolean executeTask() { try { File packFile = new File(job.path.getParentFile(), job.path.getName() + ".pack.xz"); - if (job.url.contains("typesafe") && download(new URL(job.url + ".pack.xz"), packFile)) { + if (job.name.contains("typesafe") && download(new URL(job.url + ".pack.xz"), packFile)) { unpackLibrary(job.path, packFile); packFile.delete(); return true; } else { + if (job.name.startsWith("net.minecraftforge:forge:")) { + String[] s = job.name.split(":"); + if (s.length == 3) + job.url = "http://files.minecraftforge.net/maven/net/minecraftforge/forge/" + s[2] + "/forge-" + s[2] + "-universal.jar"; + } + if (job.name.startsWith("com.mumfrey:liteloader:")) { + String[] s = job.name.split(":"); + if (s.length == 3 && s[2].length() > 3) + job.url = "http://dl.liteloader.com/versions/com/mumfrey/liteloader/" + s[2].substring(0, s[2].length() - 3) + "/liteloader-" + s[2] + ".jar"; + } return download(new URL(job.url), job.path); } } catch (Exception ex) { @@ -141,7 +151,10 @@ public class LibraryDownloadTask extends Task { ppl.setProgress(this, downloaded, size); } closeFiles(); - tempFile.renameTo(filePath); + if (aborted) + tempFile.delete(); + else + tempFile.renameTo(filePath); if (ppl != null) ppl.onProgressProviderDone(this); return true; @@ -156,7 +169,7 @@ public class LibraryDownloadTask extends Task { public static void unpackLibrary(File output, File input) throws IOException { - HMCLog.log("Unpacking " + output); + HMCLog.log("Unpacking " + input); if (output.exists()) output.delete(); @@ -186,9 +199,9 @@ public class LibraryDownloadTask extends Task { System.gc(); try (FileOutputStream jarBytes = new FileOutputStream(output); JarOutputStream jos = new JarOutputStream(jarBytes)) { - + Pack200.newUnpacker().unpack(temp, jos); - + JarEntry checksumsFile = new JarEntry("checksums.sha1"); checksumsFile.setTime(0L); jos.putNextEntry(checksumsFile); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/forge/ForgeInstaller.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/forge/ForgeInstaller.java index 71b94f49c..27f6cf2e1 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/forge/ForgeInstaller.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/forge/ForgeInstaller.java @@ -81,9 +81,9 @@ public class ForgeInstaller extends Task { FileUtils.copyFile(new File(from, profile.install.minecraft + ".jar"), new File(to, profile.install.target + ".jar")); HMCLog.log("Creating new version profile..." + profile.install.target + ".json"); - for (MinecraftLibrary library : profile.versionInfo.libraries) + /*for (MinecraftLibrary library : profile.versionInfo.libraries) if (library.name.startsWith("net.minecraftforge:forge:")) - library.url = installerVersion.universal; + library.url = installerVersion.universal;*/ FileUtils.write(new File(to, profile.install.target + ".json"), C.gsonPrettyPrinting.toJson(profile.versionInfo)); HMCLog.log("Extracting universal forge pack..." + profile.install.filePath); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/liteloader/LiteLoaderInstaller.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/liteloader/LiteLoaderInstaller.java index 11ece6754..7f92fa7a1 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/liteloader/LiteLoaderInstaller.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/installers/liteloader/LiteLoaderInstaller.java @@ -65,7 +65,7 @@ public class LiteLoaderInstaller extends Task implements PreviousResultRegistrat mv.libraries = new ArrayList(Arrays.asList(version.libraries)); MinecraftLibrary ml = new MinecraftLibrary("com.mumfrey:liteloader:" + version.selfVersion); - ml.url = "http://dl.liteloader.com/versions/com/mumfrey/liteloader/" + version.mcVersion + "/liteloader-" + version.selfVersion + ".jar"; + //ml.url = "http://dl.liteloader.com/versions/com/mumfrey/liteloader/" + version.mcVersion + "/liteloader-" + version.selfVersion + ".jar"; mv.libraries.add(0, ml); FileUtils.copyFile(installer, new File(profile.getCanonicalGameDir(), "libraries/com/mumfrey/liteloader/" + version.selfVersion + "/liteloader-" + version.selfVersion + ".jar"));