diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java index 4c0146bcf..9177da0d3 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java @@ -80,13 +80,6 @@ public class HMCLGameRepository extends DefaultGameRepository { } } - @Override - public void refreshVersions() { - EventBus.EVENT_BUS.fireEvent(new RefreshingVersionsEvent(this)); - refreshVersionsImpl(); - EventBus.EVENT_BUS.fireEvent(new RefreshedVersionsEvent(this)); - } - public void changeDirectory(File newDirectory) { setBaseDirectory(newDirectory); refreshVersionsAsync().start(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java index c42edb4b9..f20eda3cf 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java @@ -117,7 +117,7 @@ public class DefaultGameRepository implements GameRepository { } public Version readVersionJson(File file) throws IOException, JsonParseException { - return JsonUtils.GSON.fromJson(FileUtils.readText(file), Version.class); + return JsonUtils.fromNonNullJson(FileUtils.readText(file), Version.class); } @Override @@ -221,7 +221,7 @@ public class DefaultGameRepository implements GameRepository { Version version; try { - version = Objects.requireNonNull(readVersionJson(json)); + version = readVersionJson(json); } catch (Exception e) { LOG.log(Level.WARNING, "Malformed version json " + id, e); // JsonSyntaxException or IOException or NullPointerException(!!) @@ -229,7 +229,7 @@ public class DefaultGameRepository implements GameRepository { return Stream.empty(); try { - version = Objects.requireNonNull(readVersionJson(json)); + version = readVersionJson(json); } catch (Exception e2) { LOG.log(Level.SEVERE, "User corrected version json is still malformed", e2); return Stream.empty(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java index 49360eca6..73e8a9de3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java @@ -45,13 +45,13 @@ public class Library implements Comparable { private final String classifier; private final String url; private final LibrariesDownloadInfo downloads; - private final LibraryDownloadInfo download; + private transient final LibraryDownloadInfo download; private final ExtractRules extract; private final Map natives; private final List rules; private final List checksums; - private final String path; + private transient final String path; public Library(String groupId, String artifactId, String version) { this(groupId, artifactId, version, null, null, null); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java index 4dd991b8b..b9c6b06ea 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java @@ -40,7 +40,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.LinkedList; import java.util.List; -import java.util.Objects; import java.util.Optional; /** @@ -133,7 +132,7 @@ public final class MultiMCModpackInstallTask extends Task { @Override public void execute() throws Exception { - Version version = Objects.requireNonNull(repository.readVersionJson(name)); + Version version = repository.readVersionJson(name); try (FileSystem fs = CompressingUtils.createReadOnlyZipFileSystem(zipFile.toPath())) { Path root = Files.list(fs.getPath("/")).filter(Files::isDirectory).findAny() diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java index 6d5ee2b82..195d7cf18 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java @@ -17,14 +17,15 @@ */ package org.jackhuang.hmcl.util; +import org.jackhuang.hmcl.util.function.ExceptionalRunnable; +import org.jackhuang.hmcl.util.function.ExceptionalSupplier; + import java.util.*; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; -import org.jackhuang.hmcl.util.function.ExceptionalRunnable; -import org.jackhuang.hmcl.util.function.ExceptionalSupplier; /** * @@ -203,14 +204,6 @@ public final class Lang { } } - public static Double toDoubleOrNull(Object string) { - try { - return Double.parseDouble(string.toString()); - } catch (NumberFormatException e) { - return null; - } - } - /** * Find the first non-null reference in given list. * @param t nullable references list. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionNumber.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionNumber.java index 228586411..55d0bc7b4 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionNumber.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionNumber.java @@ -25,6 +25,7 @@ import java.util.*; /** * Copied from org.apache.maven.artifact.versioning.ComparableVersion * Apache License 2.0 + * @see Specification */ public class VersionNumber implements Comparable { diff --git a/HMCLauncher/HMCL/main.cpp b/HMCLauncher/HMCL/main.cpp index 61fd58e7a..905b31141 100644 --- a/HMCLauncher/HMCL/main.cpp +++ b/HMCLauncher/HMCL/main.cpp @@ -20,7 +20,7 @@ int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmd if (ERROR_SUCCESS != MyGetModuleFileName(NULL, exeName)) return 1; - + // TODO: check whether the bundled JRE is valid. // First try the Java packaged together. bool is64Bit = false; GetArch(is64Bit); // if failed to determine architecture of operating system, consider 32-bit.