This commit is contained in:
huangyuhui 2017-01-23 10:25:16 +08:00
parent 0d03e965d2
commit 67a61493dd
3 changed files with 22 additions and 9 deletions

View File

@ -23,6 +23,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
import org.jackhuang.hellominecraft.launcher.core.GameException;
import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.util.C;
import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftAssetService; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftAssetService;
import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftService; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftService;
@ -49,8 +50,8 @@ public class MinecraftAssetService extends IMinecraftAssetService {
} }
@Override @Override
public Task downloadAssets(final String mcVersion) { public Task downloadAssets(final String mcVersion) throws GameException {
return downloadAssets(service.version().getVersionById(mcVersion)); return downloadAssets(service.version().getVersionById(mcVersion).resolve(service.version()));
} }
public Task downloadAssets(final MinecraftVersion mv) { public Task downloadAssets(final MinecraftVersion mv) {
@ -60,8 +61,8 @@ public class MinecraftAssetService extends IMinecraftAssetService {
} }
@Override @Override
public boolean refreshAssetsIndex(String id) { public boolean refreshAssetsIndex(String id) throws GameException {
MinecraftVersion mv = service.version().getVersionById(id); MinecraftVersion mv = service.version().getVersionById(id).resolve(service.version());
if (mv == null) if (mv == null)
return false; return false;
return downloadMinecraftAssetsIndexAsync(mv.getAssetsIndex()); return downloadMinecraftAssetsIndexAsync(mv.getAssetsIndex());

View File

@ -19,6 +19,7 @@ package org.jackhuang.hellominecraft.launcher.core.service;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import org.jackhuang.hellominecraft.launcher.core.GameException;
import org.jackhuang.hellominecraft.launcher.core.version.AssetIndexDownloadInfo; import org.jackhuang.hellominecraft.launcher.core.version.AssetIndexDownloadInfo;
import org.jackhuang.hellominecraft.util.tasks.Task; import org.jackhuang.hellominecraft.util.tasks.Task;
@ -32,7 +33,7 @@ public abstract class IMinecraftAssetService extends IMinecraftBasicService {
super(service); super(service);
} }
public abstract Task downloadAssets(String mcVersion); public abstract Task downloadAssets(String mcVersion) throws GameException;
public abstract File getAssets(); public abstract File getAssets();
@ -43,7 +44,7 @@ public abstract class IMinecraftAssetService extends IMinecraftBasicService {
* *
* @return Is the action successful? * @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); public abstract boolean downloadMinecraftAssetsIndexAsync(AssetIndexDownloadInfo assetsId);

View File

@ -41,6 +41,7 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelEvent;
import javax.swing.table.DefaultTableModel; import javax.swing.table.DefaultTableModel;
import org.jackhuang.hellominecraft.launcher.core.GameException;
import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.util.C;
import org.jackhuang.hellominecraft.util.logging.HMCLog; import org.jackhuang.hellominecraft.util.logging.HMCLog;
import org.jackhuang.hellominecraft.launcher.util.LauncherVisibility; 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 = new JMenuItem(C.i18n("versions.manage.redownload_assets_index"));
itm.addActionListener((e) -> { itm.addActionListener((e) -> {
if (mcVersion != null) if (mcVersion != null)
try {
Settings.getLastProfile().service().asset().refreshAssetsIndex(mcVersion); Settings.getLastProfile().service().asset().refreshAssetsIndex(mcVersion);
} catch (GameException ex) {
HMCLog.err("Failed to download assets", ex);
MessageBox.showLocalized("assets.failed_download");
}
}); });
ppmManage.add(itm); ppmManage.add(itm);
itm = new JMenuItem(C.i18n("versions.mamage.remove_libraries")); 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 private void btnDownloadAllAssetsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDownloadAllAssetsActionPerformed
if (mcVersion != null) if (mcVersion != null)
try {
TaskWindow.factory().execute(Settings.getLastProfile().service().asset().downloadAssets(mcVersion)); 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 }//GEN-LAST:event_btnDownloadAllAssetsActionPerformed
private void txtMaxMemoryFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtMaxMemoryFocusLost private void txtMaxMemoryFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtMaxMemoryFocusLost