From 295f44b9476ddef1269da267b291e7e52b339f92 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Fri, 19 Feb 2016 11:08:25 +0800 Subject: [PATCH] forgot to copy assetIndex, downloads in MinecraftVersion --- .../core/version/GameDownloadInfo.java | 2 +- .../core/version/MinecraftVersion.java | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java index 0f0a0a157..f620a5a12 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java @@ -27,7 +27,7 @@ public class GameDownloadInfo implements Cloneable { public int size; @Override - protected Object clone() { + public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException ex) { diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersion.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersion.java index fd7ae889b..845f593b2 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersion.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersion.java @@ -19,6 +19,7 @@ package org.jackhuang.hellominecraft.launcher.core.version; import java.io.File; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -49,7 +50,7 @@ public class MinecraftVersion implements Cloneable, Comparable public MinecraftVersion() { } - public MinecraftVersion(String minecraftArguments, String mainClass, String time, String id, String type, String processArguments, String releaseTime, String assets, String jar, String inheritsFrom, String runDir, int minimumLauncherVersion, List libraries, boolean hidden) { + public MinecraftVersion(String minecraftArguments, String mainClass, String time, String id, String type, String processArguments, String releaseTime, String assets, String jar, String inheritsFrom, String runDir, int minimumLauncherVersion, List libraries, boolean hidden, Map downloads, AssetIndexDownloadInfo assetIndexDownloadInfo) { this(); this.minecraftArguments = minecraftArguments; this.mainClass = mainClass; @@ -64,6 +65,10 @@ public class MinecraftVersion implements Cloneable, Comparable this.minimumLauncherVersion = minimumLauncherVersion; this.hidden = hidden; this.runDir = runDir; + if (assetIndexDownloadInfo == null) + this.assetIndex = null; + else + this.assetIndex = (AssetIndexDownloadInfo) assetIndexDownloadInfo.clone(); if (libraries == null) this.libraries = new ArrayList<>(); else { @@ -71,6 +76,13 @@ public class MinecraftVersion implements Cloneable, Comparable for (IMinecraftLibrary library : libraries) this.libraries.add((MinecraftLibrary) library.clone()); } + if (downloads == null) + this.downloads = null; + else { + this.downloads = new HashMap<>(downloads.size()); + for (Map.Entry entry : downloads.entrySet()) + this.downloads.put(entry.getKey(), (GameDownloadInfo) entry.getValue().clone()); + } } @Override @@ -108,7 +120,9 @@ public class MinecraftVersion implements Cloneable, Comparable this.assets != null ? this.assets : parent.assets, this.jar != null ? this.jar : parent.jar, null, this.runDir, parent.minimumLauncherVersion, - this.libraries != null ? ArrayUtils.merge(this.libraries, parent.libraries) : parent.libraries, this.hidden); + this.libraries != null ? ArrayUtils.merge(this.libraries, parent.libraries) : parent.libraries, this.hidden, + this.downloads != null ? this.downloads : parent.downloads, + this.assetIndex != null ? this.assetIndex : parent.assetIndex); return result; }