From 67a61493dd5625c6335bbd63d89baa178b604226 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Mon, 23 Jan 2017 10:25:16 +0800 Subject: [PATCH] Fixed #1 --- .../core/asset/MinecraftAssetService.java | 9 +++++---- .../core/service/IMinecraftAssetService.java | 5 +++-- .../launcher/ui/GameSettingsPanel.java | 17 ++++++++++++++--- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java index e511c4370..6a3d0baa1 100755 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.Map; +import org.jackhuang.hellominecraft.launcher.core.GameException; import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftAssetService; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftService; @@ -49,8 +50,8 @@ public class MinecraftAssetService extends IMinecraftAssetService { } @Override - public Task downloadAssets(final String mcVersion) { - return downloadAssets(service.version().getVersionById(mcVersion)); + public Task downloadAssets(final String mcVersion) throws GameException { + return downloadAssets(service.version().getVersionById(mcVersion).resolve(service.version())); } public Task downloadAssets(final MinecraftVersion mv) { @@ -60,8 +61,8 @@ public class MinecraftAssetService extends IMinecraftAssetService { } @Override - public boolean refreshAssetsIndex(String id) { - MinecraftVersion mv = service.version().getVersionById(id); + public boolean refreshAssetsIndex(String id) throws GameException { + MinecraftVersion mv = service.version().getVersionById(id).resolve(service.version()); if (mv == null) return false; return downloadMinecraftAssetsIndexAsync(mv.getAssetsIndex()); diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/service/IMinecraftAssetService.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/service/IMinecraftAssetService.java index 6ceec9ccb..567bab0a3 100755 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/service/IMinecraftAssetService.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/service/IMinecraftAssetService.java @@ -19,6 +19,7 @@ package org.jackhuang.hellominecraft.launcher.core.service; import java.io.File; import java.io.IOException; +import org.jackhuang.hellominecraft.launcher.core.GameException; import org.jackhuang.hellominecraft.launcher.core.version.AssetIndexDownloadInfo; import org.jackhuang.hellominecraft.util.tasks.Task; @@ -32,7 +33,7 @@ public abstract class IMinecraftAssetService extends IMinecraftBasicService { super(service); } - public abstract Task downloadAssets(String mcVersion); + public abstract Task downloadAssets(String mcVersion) throws GameException; public abstract File getAssets(); @@ -43,7 +44,7 @@ public abstract class IMinecraftAssetService extends IMinecraftBasicService { * * @return Is the action successful? */ - public abstract boolean refreshAssetsIndex(String a); + public abstract boolean refreshAssetsIndex(String a) throws GameException; public abstract boolean downloadMinecraftAssetsIndexAsync(AssetIndexDownloadInfo assetsId); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/GameSettingsPanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/GameSettingsPanel.java index 966878d8a..988875a84 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/GameSettingsPanel.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/ui/GameSettingsPanel.java @@ -41,6 +41,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableModel; +import org.jackhuang.hellominecraft.launcher.core.GameException; import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.util.logging.HMCLog; import org.jackhuang.hellominecraft.launcher.util.LauncherVisibility; @@ -184,7 +185,12 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi itm = new JMenuItem(C.i18n("versions.manage.redownload_assets_index")); itm.addActionListener((e) -> { if (mcVersion != null) - Settings.getLastProfile().service().asset().refreshAssetsIndex(mcVersion); + try { + Settings.getLastProfile().service().asset().refreshAssetsIndex(mcVersion); + } catch (GameException ex) { + HMCLog.err("Failed to download assets", ex); + MessageBox.showLocalized("assets.failed_download"); + } }); ppmManage.add(itm); itm = new JMenuItem(C.i18n("versions.mamage.remove_libraries")); @@ -1151,7 +1157,12 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi private void btnDownloadAllAssetsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDownloadAllAssetsActionPerformed if (mcVersion != null) - TaskWindow.factory().execute(Settings.getLastProfile().service().asset().downloadAssets(mcVersion)); + try { + TaskWindow.factory().execute(Settings.getLastProfile().service().asset().downloadAssets(mcVersion)); + } catch (GameException ex) { + HMCLog.err("Failed to download assets", ex); + MessageBox.showLocalized("assets.failed_download"); + } }//GEN-LAST:event_btnDownloadAllAssetsActionPerformed private void txtMaxMemoryFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtMaxMemoryFocusLost @@ -1269,7 +1280,7 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi new OverridableSwingWorkerImpl().reg(t -> { synchronized (modLock) { for (ModInfo x : t) - model.addRow(new Object[]{x.isActive(), x, x.version}); + model.addRow(new Object[] { x.isActive(), x, x.version }); reloadingMods = false; } }).execute();