diff --git a/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/game/IMinecraftLibrary.java b/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/game/IMinecraftLibrary.java index 6f5d8e00c..3156c4bcf 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/game/IMinecraftLibrary.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/game/IMinecraftLibrary.java @@ -37,8 +37,8 @@ public interface IMinecraftLibrary extends Cloneable { File getFilePath(File gameDir); String getName(); - - boolean isRequiredToUnzip(); + + boolean isNative(); String getDownloadURL(String downloadSource); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/MinecraftLoader.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/MinecraftLoader.java index c78127dec..f82889ce9 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/MinecraftLoader.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/MinecraftLoader.java @@ -46,7 +46,7 @@ public class MinecraftLoader extends AbstractMinecraftLoader { StringBuilder library = new StringBuilder(""); ArrayList opt = new ArrayList<>(); for (MinecraftLibrary l : version.libraries) - if (l.allow() && !l.isRequiredToUnzip()) { + if (l.allow() && !l.isNative()) { if (l.getName().toLowerCase(Locale.US).contains("optifine")) { opt.add(l); continue; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/AbstractMinecraftLibrary.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/AbstractMinecraftLibrary.java index 66c204e4a..ce68b277f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/AbstractMinecraftLibrary.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/AbstractMinecraftLibrary.java @@ -26,7 +26,7 @@ import org.jackhuang.hmcl.api.game.IMinecraftLibrary; */ public abstract class AbstractMinecraftLibrary implements IMinecraftLibrary { - private String name; + private final String name; public AbstractMinecraftLibrary(String name) { this.name = name; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftLibrary.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftLibrary.java index 2c89981f1..06e17f28e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftLibrary.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftLibrary.java @@ -84,7 +84,7 @@ public class MinecraftLibrary extends AbstractMinecraftLibrary { } @Override - public boolean isRequiredToUnzip() { + public boolean isNative() { return natives != null && allow(); } @@ -125,11 +125,7 @@ public class MinecraftLibrary extends AbstractMinecraftLibrary { downloads.classifiers = new HashMap<>(); if (!downloads.classifiers.containsKey(getNative())) downloads.classifiers.put(getNative(), info = new LibraryDownloadInfo()); - else { - info = downloads.classifiers.get(getNative()); - if (info == null) - info = new LibraryDownloadInfo(); - } + else info = downloads.classifiers.get(getNative()); } else { if (downloads.artifact == null) downloads.artifact = new LibraryDownloadInfo(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftOldLibrary.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftOldLibrary.java index 85636ca8a..56e6a1550 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftOldLibrary.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftOldLibrary.java @@ -30,7 +30,7 @@ public class MinecraftOldLibrary extends MinecraftLibrary { } @Override - public boolean isRequiredToUnzip() { + public boolean isNative() { return false; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersion.java index 5bd23d43a..438746ddf 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersion.java @@ -21,8 +21,10 @@ import org.jackhuang.hmcl.api.game.IMinecraftLibrary; import com.google.gson.annotations.SerializedName; import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -164,8 +166,7 @@ public class MinecraftVersion implements Cloneable, Comparable } public File getNatives(File gameDir) { - return new File(gameDir, "versions/" + id + "/" + id - + "-natives"); + return new File(gameDir, "versions/" + id + "/" + id + "-natives"); } public boolean isAllowedToUnpackNatives() { @@ -193,8 +194,6 @@ public class MinecraftVersion implements Cloneable, Comparable return Objects.equals(this.id, ((MinecraftVersion) obj).id); } - - public AssetIndexDownloadInfo getAssetsIndex() { if (assetIndex == null) assetIndex = new AssetIndexDownloadInfo(assets == null ? AssetsIndex.DEFAULT_ASSET_NAME : assets); @@ -212,7 +211,7 @@ public class MinecraftVersion implements Cloneable, Comparable return i; } - public Set getLibraries() { - return libraries == null ? new HashSet<>() : new HashSet<>(libraries); + public List getLibraries() { + return libraries == null ? new LinkedList<>() : Collections.unmodifiableList(libraries); } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersionManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersionManager.java index f2f4493ca..589a51cc8 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersionManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/version/MinecraftVersionManager.java @@ -248,7 +248,7 @@ public class MinecraftVersionManager extends IMinec ArrayList unzippings = new ArrayList<>(); ArrayList extractRules = new ArrayList<>(); for (IMinecraftLibrary l : v.libraries) - if (l.isRequiredToUnzip() && v.isAllowedToUnpackNatives()) { + if (l.isNative() && v.isAllowedToUnpackNatives()) { unzippings.add(getLibraryFile(v, l)); extractRules.add(l.getDecompressExtractRules()); }