From cafcf458b8a488cf736d552971e62827b22589b9 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sat, 12 Mar 2016 11:57:30 +0800 Subject: [PATCH] Fixed auto-loading when deleting a profile --- .../hellominecraft/launcher/setting/Profile.java | 2 +- .../hellominecraft/launcher/setting/Settings.java | 15 +++++++++++---- .../launcher/ui/GameSettingsPanel.java | 3 +-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Profile.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Profile.java index b426724538..7be42452a7 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Profile.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Profile.java @@ -46,7 +46,7 @@ public Profile() { } public Profile(String name) { - this(name, IOUtils.currentDir().getPath()); + this(name, new File(IOUtils.currentDir(), ".minecraft").getPath()); } public Profile(String name, String gameDir) { diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Settings.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Settings.java index 692e85585c..589f97dbcf 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Settings.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/setting/Settings.java @@ -58,8 +58,6 @@ public static Config getInstance() { DownloadType.setSuggestedDownloadType(SETTINGS.getDownloadSource()); if (!getProfiles().containsKey(DEFAULT_PROFILE)) getProfiles().put(DEFAULT_PROFILE, new Profile(DEFAULT_PROFILE)); - if (!getProfiles().containsKey(HOME_PROFILE)) - getProfiles().put(HOME_PROFILE, new Profile(HOME_PROFILE, MCUtils.getLocation().getPath())); for (Map.Entry entry : getProfiles().entrySet()) { Profile e = entry.getValue(); @@ -85,8 +83,11 @@ private static Config initSettings() { } catch (IOException | JsonSyntaxException e) { HMCLog.warn("Something happened wrongly when load settings.", e); } - else + else { HMCLog.log("No settings file here, may be first loading."); + if (!c.getConfigurations().containsKey(HOME_PROFILE)) + c.getConfigurations().put(HOME_PROFILE, new Profile(HOME_PROFILE, MCUtils.getLocation().getPath())); + } return c; } @@ -154,7 +155,13 @@ public static boolean delProfile(String ver) { MessageBox.Show(C.i18n("settings.cannot_remove_default_config")); return false; } - return getProfiles().remove(ver) != null; + boolean notify = false; + if (getLastProfile().getName().equals(ver)) + notify = true; + boolean flag = getProfiles().remove(ver) != null; + if (notify && flag) + onProfileChanged(); + return flag; } public static final EventHandler profileChangedEvent = new EventHandler(null); 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 c6d01b2d9a..277e6b05f9 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 @@ -949,8 +949,7 @@ private void btnNewProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN private void btnRemoveProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveProfileActionPerformed if (MessageBox.Show(C.i18n("ui.message.sure_remove", Settings.getLastProfile().getName()), MessageBox.YES_NO_OPTION) == MessageBox.NO_OPTION) return; - if (Settings.delProfile(Settings.getLastProfile())) - loadProfiles(); + Settings.delProfile(Settings.getLastProfile()); }//GEN-LAST:event_btnRemoveProfileActionPerformed private void cboVersionsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboVersionsItemStateChanged