diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MojangDownloadProvider.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MojangDownloadProvider.java index 6640d9dd0..45d897ebf 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MojangDownloadProvider.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MojangDownloadProvider.java @@ -79,14 +79,14 @@ public class MojangDownloadProvider implements DownloadProvider { public String injectURL(String baseURL) { if (baseURL == null) return null; - else if (baseURL.contains("scala-swing") || baseURL.contains("scala-xml") || baseURL.contains("scala-parser-combinators")) - return baseURL.replace("http://files.minecraftforge.net/maven", "http://ftb.cursecdn.com/FTB2/maven/"); - else if (baseURL.contains("typesafe") || baseURL.contains("scala")) + //else if (baseURL.contains("scala-swing") || baseURL.contains("scala-xml") || baseURL.contains("scala-parser-combinators")) + // return baseURL.replace("http://files.minecraftforge.net/maven", "http://ftb.cursecdn.com/FTB2/maven"); + /*else if (baseURL.contains("typesafe") || baseURL.contains("scala")) if (isChina) return baseURL.replace("http://files.minecraftforge.net/maven", "http://maven.aliyun.com/nexus/content/groups/public"); else return baseURL.replace("http://files.minecraftforge.net/maven", "http://repo1.maven.org/maven2"); - else + */else return baseURL; } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java index d14e3ed26..4fb444f43 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java @@ -56,6 +56,7 @@ final class Log4jHandler extends Thread { private final PipedInputStream inputStream = Lang.invoke(() -> new PipedInputStream(outputStream)); private final AtomicBoolean interrupted = new AtomicBoolean(false); private final List logs = new LinkedList<>(); + private boolean broken = false; public Log4jHandler(BiConsumer callback) { this.callback = callback; @@ -95,20 +96,28 @@ final class Log4jHandler extends Thread { public Future newLine(String log) { return Schedulers.computation().schedule(() -> { try { - String line = (log + OperatingSystem.LINE_SEPARATOR) + String line = log .replace("", "") - .replace("log4j:Event", "log4j_Event") - .replace("", "", "]]>") - .replace("log4j:Throwable", "log4j_Throwable"); + .replace("log4j:", "log4j_") + .replace("", "", "]]>") + .replace("", "", "]]>"); logs.add(line); - byte[] bytes = line.getBytes(Charsets.UTF_8); + if (broken) + System.out.println(line); + + byte[] bytes = (line + OperatingSystem.LINE_SEPARATOR).getBytes(Charsets.UTF_8); outputStream.write(bytes); outputStream.flush(); } catch (IOException e) { // Ignoring IOException, including read end dead. - Logging.LOG.log(Level.WARNING, "An error occurred when writing console lines", e); + if (!broken) { + Logging.LOG.log(Level.WARNING, "An error occurred when writing console lines", e); + logs.forEach(System.out::println); + broken = true; + } } }); }