Fixed username missing
This commit is contained in:
@@ -26,7 +26,7 @@ if (!hasProperty('mainClass')) {
|
||||
ext.mainClass = 'org.jackhuang.hellominecraft.launcher.Main'
|
||||
}
|
||||
|
||||
def buildnumber = System.getenv("BUILD_NUMBER") == null ? ".27" : "."+System.getenv("BUILD_NUMBER")
|
||||
def buildnumber = System.getenv("BUILD_NUMBER") == null ? ".10" : "."+System.getenv("BUILD_NUMBER")
|
||||
|
||||
String mavenGroupId = 'HMCL'
|
||||
String mavenVersion = '2.4.0' + buildnumber
|
||||
|
||||
@@ -88,7 +88,7 @@ public abstract class IAuthenticator {
|
||||
public abstract void logOut();
|
||||
|
||||
public Map onSaveSettings() {
|
||||
HashMap m = new HashMap();
|
||||
HashMap<String, String> m = new HashMap<>();
|
||||
m.put("IAuthenticator_UserName", username);
|
||||
return m;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public final class OfflineAuthenticator extends IAuthenticator {
|
||||
@Override
|
||||
public Map onSaveSettings() {
|
||||
Map m = super.onSaveSettings();
|
||||
m.put("uuidMap", m);
|
||||
m.put("uuidMap", uuidMap);
|
||||
return m;
|
||||
}
|
||||
|
||||
|
||||
@@ -198,17 +198,16 @@ public class MinecraftVersionManager extends IMinecraftProvider {
|
||||
@Override
|
||||
public boolean install(String id, Consumer<MinecraftVersion> callback) {
|
||||
MinecraftVersion v = service.download().downloadMinecraft(id);
|
||||
if (v == null)
|
||||
return false;
|
||||
if (callback != null) {
|
||||
callback.accept(v);
|
||||
File mvt = new File(versionRoot(id), id + ".json");
|
||||
FileUtils.writeQuietly(mvt, C.GSON.toJson(v));
|
||||
}
|
||||
if (v != null) {
|
||||
refreshVersions();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void open(String mv, String name) {
|
||||
|
||||
@@ -93,6 +93,8 @@ public final class Config {
|
||||
}
|
||||
|
||||
public String getLast() {
|
||||
if (last == null)
|
||||
last = Settings.DEFAULT_PROFILE;
|
||||
return last;
|
||||
}
|
||||
|
||||
|
||||
@@ -95,21 +95,29 @@ public final class Settings {
|
||||
}
|
||||
|
||||
public static Profile getLastProfile() {
|
||||
if (!hasProfile(getInstance().getLast()))
|
||||
getInstance().setLast(DEFAULT_PROFILE);
|
||||
return getProfile(getInstance().getLast());
|
||||
}
|
||||
|
||||
public static Profile getProfile(String name) {
|
||||
Profile p;
|
||||
if (name == null)
|
||||
p = getProfiles().get("Default");
|
||||
else
|
||||
p = getProfiles().get(name);
|
||||
name = DEFAULT_PROFILE;
|
||||
Profile p = getProfiles().get(name);
|
||||
if (p == null)
|
||||
if (!getProfiles().containsKey(DEFAULT_PROFILE))
|
||||
if (getProfiles().containsKey(DEFAULT_PROFILE))
|
||||
p = getProfiles().get(DEFAULT_PROFILE);
|
||||
else
|
||||
getProfiles().put(DEFAULT_PROFILE, p = new Profile());
|
||||
return p;
|
||||
}
|
||||
|
||||
public static boolean hasProfile(String name) {
|
||||
if (name == null)
|
||||
name = DEFAULT_PROFILE;
|
||||
return getProfiles().containsKey(name);
|
||||
}
|
||||
|
||||
public static Map<String, Profile> getProfiles() {
|
||||
return SETTINGS.getConfigurations();
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
package org.jackhuang.hellominecraft.launcher.ui;
|
||||
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import org.jackhuang.hellominecraft.launcher.setting.Settings;
|
||||
import org.jackhuang.hellominecraft.util.C;
|
||||
import org.jackhuang.hellominecraft.util.MessageBox;
|
||||
import org.jackhuang.hellominecraft.util.StrUtils;
|
||||
@@ -104,7 +105,7 @@ public class GameDownloadPanel extends AnimatedPanel {
|
||||
|
||||
public void refreshDownloads() {
|
||||
DefaultTableModel model = SwingUtils.clearDefaultTable(lstDownloads);
|
||||
gsp.getProfile().service().download().getRemoteVersions()
|
||||
Settings.getLastProfile().service().download().getRemoteVersions()
|
||||
.reg((ver) -> model.addRow(new Object[] { ver.id, ver.time,
|
||||
StrUtils.equalsOne(ver.type, "old_beta", "old_alpha", "release", "snapshot") ? C.i18n("versions." + ver.type) : ver.type }))
|
||||
.regDone(lstDownloads::updateUI).execute();
|
||||
@@ -120,7 +121,7 @@ public class GameDownloadPanel extends AnimatedPanel {
|
||||
return;
|
||||
}
|
||||
String id = (String) lstDownloads.getModel().getValueAt(lstDownloads.getSelectedRow(), 0);
|
||||
gsp.getProfile().service().download().downloadMinecraft(id);
|
||||
Settings.getLastProfile().service().download().downloadMinecraft(id);
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
@@ -130,13 +131,13 @@ public class GameDownloadPanel extends AnimatedPanel {
|
||||
private javax.swing.JTable lstDownloads;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
boolean selected = false;
|
||||
boolean refreshedDownloads = false;
|
||||
|
||||
@Override
|
||||
public void onSelected() {
|
||||
super.onSelected();
|
||||
if (!selected) {
|
||||
selected = true;
|
||||
if (!refreshedDownloads) {
|
||||
refreshedDownloads = true;
|
||||
refreshDownloads();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
getProfile().service().version().open(mcVersion, a);
|
||||
Settings.getLastProfile().service().version().open(mcVersion, a);
|
||||
}
|
||||
}
|
||||
JMenuItem itm;
|
||||
@@ -152,7 +152,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
if (mcVersion != null) {
|
||||
String newName = JOptionPane.showInputDialog(C.i18n("versions.manage.rename.message"), mcVersion);
|
||||
if (newName != null)
|
||||
if (getProfile().service().version().renameVersion(mcVersion, newName))
|
||||
if (Settings.getLastProfile().service().version().renameVersion(mcVersion, newName))
|
||||
refreshVersions();
|
||||
}
|
||||
});
|
||||
@@ -160,26 +160,26 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
itm = new JMenuItem(C.i18n("versions.manage.remove"));
|
||||
itm.addActionListener((e) -> {
|
||||
if (mcVersion != null && MessageBox.Show(C.i18n("versions.manage.remove.confirm") + mcVersion, MessageBox.YES_NO_OPTION) == MessageBox.YES_OPTION)
|
||||
if (getProfile().service().version().removeVersionFromDisk(mcVersion))
|
||||
if (Settings.getLastProfile().service().version().removeVersionFromDisk(mcVersion))
|
||||
refreshVersions();
|
||||
});
|
||||
ppmManage.add(itm);
|
||||
itm = new JMenuItem(C.i18n("versions.manage.redownload_json"));
|
||||
itm.addActionListener((e) -> {
|
||||
if (mcVersion != null)
|
||||
getProfile().service().download().downloadMinecraftVersionJson(mcVersion);
|
||||
Settings.getLastProfile().service().download().downloadMinecraftVersionJson(mcVersion);
|
||||
});
|
||||
ppmManage.add(itm);
|
||||
itm = new JMenuItem(C.i18n("versions.manage.redownload_assets_index"));
|
||||
itm.addActionListener((e) -> {
|
||||
if (mcVersion != null)
|
||||
getProfile().service().asset().refreshAssetsIndex(mcVersion);
|
||||
Settings.getLastProfile().service().asset().refreshAssetsIndex(mcVersion);
|
||||
});
|
||||
ppmManage.add(itm);
|
||||
itm = new JMenuItem(C.i18n("versions.mamage.remove_libraries"));
|
||||
itm.addActionListener((e) -> {
|
||||
if (mcVersion != null)
|
||||
FileUtils.deleteDirectoryQuietly(new File(getProfile().service().baseDirectory(), "libraries"));
|
||||
FileUtils.deleteDirectoryQuietly(new File(Settings.getLastProfile().service().baseDirectory(), "libraries"));
|
||||
});
|
||||
ppmManage.add(itm);
|
||||
}
|
||||
@@ -192,7 +192,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
}
|
||||
lstExternalMods.getSelectionModel().addListSelectionListener(e -> {
|
||||
int row = lstExternalMods.getSelectedRow();
|
||||
List<ModInfo> mods = getProfile().service().mod().getMods(getProfile().getSelectedVersion());
|
||||
List<ModInfo> mods = Settings.getLastProfile().service().mod().getMods(Settings.getLastProfile().getSelectedVersion());
|
||||
if (mods != null && 0 <= row && row < mods.size()) {
|
||||
ModInfo m = mods.get(row);
|
||||
boolean hasLink = m.url != null;
|
||||
@@ -212,7 +212,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
((DefaultTableModel) lstExternalMods.getModel()).addTableModelListener(e -> {
|
||||
if (e.getType() == TableModelEvent.UPDATE && e.getColumn() == 0) {
|
||||
int row = lstExternalMods.getSelectedRow();
|
||||
List<ModInfo> mods = getProfile().service().mod().getMods(getProfile().getSelectedVersion());
|
||||
List<ModInfo> mods = Settings.getLastProfile().service().mod().getMods(Settings.getLastProfile().getSelectedVersion());
|
||||
if (mods != null && mods.size() > row && row >= 0)
|
||||
mods.get(row).reverseModState();
|
||||
}
|
||||
@@ -947,16 +947,16 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
}//GEN-LAST:event_btnNewProfileActionPerformed
|
||||
|
||||
private void btnRemoveProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveProfileActionPerformed
|
||||
if (MessageBox.Show(C.i18n("ui.message.sure_remove", getProfile().getName()), MessageBox.YES_NO_OPTION) == MessageBox.NO_OPTION)
|
||||
if (MessageBox.Show(C.i18n("ui.message.sure_remove", Settings.getLastProfile().getName()), MessageBox.YES_NO_OPTION) == MessageBox.NO_OPTION)
|
||||
return;
|
||||
if (Settings.delProfile(getProfile()))
|
||||
if (Settings.delProfile(Settings.getLastProfile()))
|
||||
loadProfiles();
|
||||
}//GEN-LAST:event_btnRemoveProfileActionPerformed
|
||||
|
||||
private void cboVersionsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboVersionsItemStateChanged
|
||||
if (isLoading || evt.getStateChange() != ItemEvent.SELECTED || cboVersions.getSelectedIndex() < 0 || StrUtils.isBlank((String) cboVersions.getSelectedItem()))
|
||||
return;
|
||||
getProfile().setSelectedMinecraftVersion((String) cboVersions.getSelectedItem());
|
||||
Settings.getLastProfile().setSelectedMinecraftVersion((String) cboVersions.getSelectedItem());
|
||||
}//GEN-LAST:event_cboVersionsItemStateChanged
|
||||
|
||||
private void btnRefreshVersionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRefreshVersionsActionPerformed
|
||||
@@ -973,11 +973,11 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
|
||||
private void btnDownloadAllAssetsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDownloadAllAssetsActionPerformed
|
||||
if (mcVersion != null)
|
||||
getProfile().service().asset().downloadAssets(mcVersion).run();
|
||||
Settings.getLastProfile().service().asset().downloadAssets(mcVersion).run();
|
||||
}//GEN-LAST:event_btnDownloadAllAssetsActionPerformed
|
||||
|
||||
private void txtGameDirFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtGameDirFocusLost
|
||||
getProfile().setGameDir(txtGameDir.getText());
|
||||
Settings.getLastProfile().setGameDir(txtGameDir.getText());
|
||||
loadVersions();
|
||||
}//GEN-LAST:event_txtGameDirFocusLost
|
||||
|
||||
@@ -997,7 +997,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
try {
|
||||
String path = fc.getSelectedFile().getCanonicalPath();
|
||||
txtJavaDir.setText(path);
|
||||
getProfile().getSelectedVersionSetting().setJavaDir(txtJavaDir.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setJavaDir(txtJavaDir.getText());
|
||||
} catch (IOException e) {
|
||||
HMCLog.warn("Failed to set java path.", e);
|
||||
MessageBox.Show(C.i18n("ui.label.failed_set") + e.getMessage());
|
||||
@@ -1010,9 +1010,9 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
int idx = cboJava.getSelectedIndex();
|
||||
if (idx != -1) {
|
||||
Java j = Java.JAVA.get(idx);
|
||||
getProfile().getSelectedVersionSetting().setJava(j);
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setJava(j);
|
||||
txtJavaDir.setEnabled(idx == 1);
|
||||
txtJavaDir.setText(j.getHome() == null ? getProfile().getSelectedVersionSetting().getSettingsJavaDir() : j.getJava());
|
||||
txtJavaDir.setText(j.getHome() == null ? Settings.getLastProfile().getSelectedVersionSetting().getSettingsJavaDir() : j.getJava());
|
||||
}
|
||||
}//GEN-LAST:event_cboJavaItemStateChanged
|
||||
|
||||
@@ -1025,14 +1025,14 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
return;
|
||||
boolean flag = true;
|
||||
for (File f : fc.getSelectedFiles())
|
||||
flag &= getProfile().service().mod().addMod(getProfile().getSelectedVersion(), f);
|
||||
flag &= Settings.getLastProfile().service().mod().addMod(Settings.getLastProfile().getSelectedVersion(), f);
|
||||
reloadMods();
|
||||
if (!flag)
|
||||
MessageBox.Show(C.i18n("mods.failed"));
|
||||
}//GEN-LAST:event_btnAddModActionPerformed
|
||||
|
||||
private void btnRemoveModActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveModActionPerformed
|
||||
getProfile().service().mod().removeMod(getProfile().getSelectedVersion(), SwingUtils.getValueBySelectedRow(lstExternalMods, lstExternalMods.getSelectedRows(), 1));
|
||||
Settings.getLastProfile().service().mod().removeMod(Settings.getLastProfile().getSelectedVersion(), SwingUtils.getValueBySelectedRow(lstExternalMods, lstExternalMods.getSelectedRows(), 1));
|
||||
reloadMods();
|
||||
}//GEN-LAST:event_btnRemoveModActionPerformed
|
||||
|
||||
@@ -1043,8 +1043,8 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
|
||||
private void lblModInfoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblModInfoMouseClicked
|
||||
int idx = lstExternalMods.getSelectedRow();
|
||||
if (idx > 0 && idx < getProfile().service().mod().getMods(getProfile().getSelectedVersion()).size())
|
||||
SwingUtils.openLink(getProfile().service().mod().getMods(getProfile().getSelectedVersion()).get(idx).url);
|
||||
if (idx > 0 && idx < Settings.getLastProfile().service().mod().getMods(Settings.getLastProfile().getSelectedVersion()).size())
|
||||
SwingUtils.openLink(Settings.getLastProfile().service().mod().getMods(Settings.getLastProfile().getSelectedVersion()).get(idx).url);
|
||||
}//GEN-LAST:event_lblModInfoMouseClicked
|
||||
|
||||
private void btnChoosingGameDirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnChoosingGameDirActionPerformed
|
||||
@@ -1058,7 +1058,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
try {
|
||||
String path = fc.getSelectedFile().getCanonicalPath();
|
||||
txtGameDir.setText(path);
|
||||
getProfile().setGameDir(path);
|
||||
Settings.getLastProfile().setGameDir(path);
|
||||
} catch (IOException e) {
|
||||
HMCLog.warn("Failed to set game dir.", e);
|
||||
MessageBox.Show(C.i18n("ui.label.failed_set") + e.getMessage());
|
||||
@@ -1066,12 +1066,12 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
}//GEN-LAST:event_btnChoosingGameDirActionPerformed
|
||||
|
||||
private void btnCleanGameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCleanGameActionPerformed
|
||||
getProfile().service().version().cleanFolder();
|
||||
Settings.getLastProfile().service().version().cleanFolder();
|
||||
}//GEN-LAST:event_btnCleanGameActionPerformed
|
||||
|
||||
private void btnTestGameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnTestGameActionPerformed
|
||||
LogWindow.INSTANCE.setVisible(true);
|
||||
MainFrame.INSTANCE.daemon.runGame(getProfile());
|
||||
MainFrame.INSTANCE.daemon.runGame(Settings.getLastProfile());
|
||||
}//GEN-LAST:event_btnTestGameActionPerformed
|
||||
|
||||
private void btnShowLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShowLogActionPerformed
|
||||
@@ -1079,7 +1079,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
}//GEN-LAST:event_btnShowLogActionPerformed
|
||||
|
||||
private void btnMakeLaunchScriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMakeLaunchScriptActionPerformed
|
||||
MainFrame.INSTANCE.daemon.makeLaunchScript(getProfile());
|
||||
MainFrame.INSTANCE.daemon.makeLaunchScript(Settings.getLastProfile());
|
||||
}//GEN-LAST:event_btnMakeLaunchScriptActionPerformed
|
||||
|
||||
private void btnIncludeMinecraftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnIncludeMinecraftActionPerformed
|
||||
@@ -1100,80 +1100,72 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
|
||||
private void cboRunDirectoryItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboRunDirectoryItemStateChanged
|
||||
if (!isLoading && cboRunDirectory.getSelectedIndex() >= 0)
|
||||
getProfile().getSelectedVersionSetting().setGameDirType(GameDirType.values()[cboRunDirectory.getSelectedIndex()]);
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setGameDirType(GameDirType.values()[cboRunDirectory.getSelectedIndex()]);
|
||||
}//GEN-LAST:event_cboRunDirectoryItemStateChanged
|
||||
|
||||
private void cboLauncherVisibilityItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboLauncherVisibilityItemStateChanged
|
||||
if (!isLoading && cboLauncherVisibility.getSelectedIndex() >= 0)
|
||||
getProfile().getSelectedVersionSetting().setLauncherVisibility(LauncherVisibility.values()[cboLauncherVisibility.getSelectedIndex()]);
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setLauncherVisibility(LauncherVisibility.values()[cboLauncherVisibility.getSelectedIndex()]);
|
||||
}//GEN-LAST:event_cboLauncherVisibilityItemStateChanged
|
||||
|
||||
private void chkFullscreenItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_chkFullscreenItemStateChanged
|
||||
if (!isLoading)
|
||||
getProfile().getSelectedVersionSetting().setFullscreen(chkFullscreen.isSelected());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setFullscreen(chkFullscreen.isSelected());
|
||||
}//GEN-LAST:event_chkFullscreenItemStateChanged
|
||||
|
||||
private void chkDebugItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_chkDebugItemStateChanged
|
||||
if (!isLoading)
|
||||
getProfile().getSelectedVersionSetting().setDebug(chkDebug.isSelected());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setDebug(chkDebug.isSelected());
|
||||
}//GEN-LAST:event_chkDebugItemStateChanged
|
||||
|
||||
private void chkCancelWrapperItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_chkCancelWrapperItemStateChanged
|
||||
if (!isLoading)
|
||||
getProfile().getSelectedVersionSetting().setCanceledWrapper(chkCancelWrapper.isSelected());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setCanceledWrapper(chkCancelWrapper.isSelected());
|
||||
}//GEN-LAST:event_chkCancelWrapperItemStateChanged
|
||||
|
||||
private void chkNoJVMArgsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_chkNoJVMArgsItemStateChanged
|
||||
if (!isLoading)
|
||||
getProfile().getSelectedVersionSetting().setNoJVMArgs(chkNoJVMArgs.isSelected());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setNoJVMArgs(chkNoJVMArgs.isSelected());
|
||||
}//GEN-LAST:event_chkNoJVMArgsItemStateChanged
|
||||
|
||||
private void txtMaxMemoryFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtMaxMemoryFocusLost
|
||||
getProfile().getSelectedVersionSetting().setMaxMemory(txtMaxMemory.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setMaxMemory(txtMaxMemory.getText());
|
||||
}//GEN-LAST:event_txtMaxMemoryFocusLost
|
||||
|
||||
private void txtWidthFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtWidthFocusLost
|
||||
getProfile().getSelectedVersionSetting().setWidth(txtWidth.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setWidth(txtWidth.getText());
|
||||
}//GEN-LAST:event_txtWidthFocusLost
|
||||
|
||||
private void txtHeightFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtHeightFocusLost
|
||||
getProfile().getSelectedVersionSetting().setHeight(txtHeight.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setHeight(txtHeight.getText());
|
||||
}//GEN-LAST:event_txtHeightFocusLost
|
||||
|
||||
private void txtJavaDirFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtJavaDirFocusLost
|
||||
getProfile().getSelectedVersionSetting().setJavaDir(txtJavaDir.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setJavaDir(txtJavaDir.getText());
|
||||
}//GEN-LAST:event_txtJavaDirFocusLost
|
||||
|
||||
private void txtJavaArgsFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtJavaArgsFocusLost
|
||||
getProfile().getSelectedVersionSetting().setJavaArgs(txtJavaArgs.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setJavaArgs(txtJavaArgs.getText());
|
||||
}//GEN-LAST:event_txtJavaArgsFocusLost
|
||||
|
||||
private void txtMinecraftArgsFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtMinecraftArgsFocusLost
|
||||
getProfile().getSelectedVersionSetting().setMinecraftArgs(txtMinecraftArgs.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setMinecraftArgs(txtMinecraftArgs.getText());
|
||||
}//GEN-LAST:event_txtMinecraftArgsFocusLost
|
||||
|
||||
private void txtPermSizeFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtPermSizeFocusLost
|
||||
getProfile().getSelectedVersionSetting().setPermSize(txtPermSize.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setPermSize(txtPermSize.getText());
|
||||
}//GEN-LAST:event_txtPermSizeFocusLost
|
||||
|
||||
private void txtPrecalledCommandFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtPrecalledCommandFocusLost
|
||||
getProfile().getSelectedVersionSetting().setPrecalledCommand(txtPrecalledCommand.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setPrecalledCommand(txtPrecalledCommand.getText());
|
||||
}//GEN-LAST:event_txtPrecalledCommandFocusLost
|
||||
|
||||
private void txtServerIPFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtServerIPFocusLost
|
||||
getProfile().getSelectedVersionSetting().setServerIp(txtServerIP.getText());
|
||||
Settings.getLastProfile().getSelectedVersionSetting().setServerIp(txtServerIP.getText());
|
||||
}//GEN-LAST:event_txtServerIPFocusLost
|
||||
|
||||
// </editor-fold>
|
||||
// <editor-fold defaultstate="collapsed" desc="Load">
|
||||
final Profile getProfile() {
|
||||
return Settings.getProfile((String) cboProfiles.getSelectedItem());
|
||||
}
|
||||
|
||||
final String mcVersion() {
|
||||
return getProfile().getSelectedVersion();
|
||||
}
|
||||
|
||||
void prepareVersionSetting(VersionSetting profile) {
|
||||
if (profile == null)
|
||||
return;
|
||||
@@ -1206,7 +1198,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
txtMinecraftVersion.setText("");
|
||||
if (id == null)
|
||||
return;
|
||||
minecraftVersion = MinecraftVersionRequest.minecraftVersion(getProfile().service().version().getMinecraftJar(id));
|
||||
minecraftVersion = MinecraftVersionRequest.minecraftVersion(Settings.getLastProfile().service().version().getMinecraftJar(id));
|
||||
txtMinecraftVersion.setText(MinecraftVersionRequest.getResponse(minecraftVersion));
|
||||
}
|
||||
|
||||
@@ -1224,7 +1216,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
Transferable tr = dtde.getTransferable();
|
||||
List<File> files = (List<File>) tr.getTransferData(DataFlavor.javaFileListFlavor);
|
||||
for (File file : files)
|
||||
getProfile().service().mod().addMod(getProfile().getSelectedVersion(), file);
|
||||
Settings.getLastProfile().service().mod().addMod(Settings.getLastProfile().getSelectedVersion(), file);
|
||||
} catch (Exception ex) {
|
||||
HMCLog.warn("Failed to drop file.", ex);
|
||||
}
|
||||
@@ -1247,7 +1239,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
}
|
||||
|
||||
void refreshVersions() {
|
||||
getProfile().service().version().refreshVersions();
|
||||
Settings.getLastProfile().service().version().refreshVersions();
|
||||
}
|
||||
|
||||
// </editor-fold>
|
||||
@@ -1264,7 +1256,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
new OverridableSwingWorker<List<ModInfo>>() {
|
||||
@Override
|
||||
protected void work() throws Exception {
|
||||
publish(getProfile().service().mod().recacheMods(getProfile().getSelectedVersion()));
|
||||
publish(Settings.getLastProfile().service().mod().recacheMods(Settings.getLastProfile().getSelectedVersion()));
|
||||
}
|
||||
}.reg(t -> {
|
||||
synchronized (modLock) {
|
||||
@@ -1278,7 +1270,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
|
||||
// </editor-fold>
|
||||
void save() {
|
||||
VersionSetting vs = getProfile().getSelectedVersionSetting();
|
||||
VersionSetting vs = Settings.getLastProfile().getSelectedVersionSetting();
|
||||
if (txtServerIP.hasFocus())
|
||||
vs.setServerIp(txtServerIP.getText());
|
||||
if (txtPrecalledCommand.hasFocus())
|
||||
@@ -1398,20 +1390,20 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
}
|
||||
|
||||
final Consumer<IMinecraftService> onRefreshedVersions = t -> {
|
||||
if (getProfile().service() == t)
|
||||
if (Settings.getLastProfile().service() == t)
|
||||
loadVersions();
|
||||
};
|
||||
|
||||
void loadVersions() {
|
||||
DefaultComboBoxModel model = new DefaultComboBoxModel();
|
||||
for (MinecraftVersion each : getProfile().service().version().getVersions()) {
|
||||
for (MinecraftVersion each : Settings.getLastProfile().service().version().getVersions()) {
|
||||
if (each.hidden)
|
||||
continue;
|
||||
model.addElement(each.id);
|
||||
}
|
||||
cboVersions.setModel(model);
|
||||
if (getProfile().getSelectedVersion() != null)
|
||||
selectedVersionChangedEvent.accept(getProfile().getSelectedVersion());
|
||||
if (Settings.getLastProfile().getSelectedVersion() != null)
|
||||
selectedVersionChangedEvent.accept(Settings.getLastProfile().getSelectedVersion());
|
||||
}
|
||||
|
||||
final Consumer<String> selectedVersionChangedEvent = this::versionChanged;
|
||||
@@ -1423,7 +1415,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
|
||||
|
||||
this.mcVersion = version;
|
||||
reloadMods();
|
||||
prepareVersionSetting(getProfile().getVersionSetting(version));
|
||||
prepareVersionSetting(Settings.getLastProfile().getVersionSetting(version));
|
||||
loadMinecraftVersion(version);
|
||||
for (InstallerPanel p : installerPanels)
|
||||
p.loadVersions();
|
||||
|
||||
@@ -139,7 +139,7 @@ public class InstallerPanel extends AnimatedPanel {
|
||||
MessageBox.Show(C.i18n("install.not_refreshed"));
|
||||
return;
|
||||
}
|
||||
gsp.getProfile().service().install().download(gsp.getProfile().getSelectedVersion(), getVersion(idx), id).after(new TaskRunnable(this::refreshVersions)).run();
|
||||
Settings.getLastProfile().service().install().download(Settings.getLastProfile().getSelectedVersion(), getVersion(idx), id).after(new TaskRunnable(this::refreshVersions)).run();
|
||||
}
|
||||
|
||||
public void loadVersions() {
|
||||
|
||||
@@ -69,7 +69,7 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
|
||||
btnRun.setText(C.i18n("ui.button.run"));
|
||||
btnRun.setFont(newFont);
|
||||
btnRun.addActionListener(e -> MainFrame.INSTANCE.daemon.runGame(getProfile()));
|
||||
btnRun.addActionListener(e -> MainFrame.INSTANCE.daemon.runGame(Settings.getLastProfile()));
|
||||
|
||||
this.add(pnlButtons);
|
||||
pnlButtons.setBounds(0, 0, w, h);
|
||||
@@ -324,10 +324,10 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
}//GEN-LAST:event_cboProfilesItemStateChanged
|
||||
|
||||
private void cboVersionsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboVersionsItemStateChanged
|
||||
if (isLoading || evt.getStateChange() != ItemEvent.SELECTED || cboVersions.getSelectedIndex() < 0 || StrUtils.isBlank((String) cboVersions.getSelectedItem()) || getProfile() == null)
|
||||
if (isLoading || evt.getStateChange() != ItemEvent.SELECTED || cboVersions.getSelectedIndex() < 0 || StrUtils.isBlank((String) cboVersions.getSelectedItem()))
|
||||
return;
|
||||
String mcv = (String) cboVersions.getSelectedItem();
|
||||
getProfile().setSelectedMinecraftVersion(mcv);
|
||||
Settings.getLastProfile().setSelectedMinecraftVersion(mcv);
|
||||
}//GEN-LAST:event_cboVersionsItemStateChanged
|
||||
|
||||
private void txtPasswordFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtPasswordFocusGained
|
||||
@@ -335,7 +335,7 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
}//GEN-LAST:event_txtPasswordFocusGained
|
||||
|
||||
private void txtPasswordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtPasswordActionPerformed
|
||||
MainFrame.INSTANCE.daemon.runGame(getProfile());
|
||||
MainFrame.INSTANCE.daemon.runGame(Settings.getLastProfile());
|
||||
}//GEN-LAST:event_txtPasswordActionPerformed
|
||||
|
||||
private void btnLogoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLogoutActionPerformed
|
||||
@@ -355,7 +355,7 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
IAuthenticator l = Settings.getInstance().getAuthenticator();
|
||||
l.setUserName(txtPlayerName.getText());
|
||||
if (!l.hasPassword())
|
||||
MainFrame.INSTANCE.daemon.runGame(getProfile());
|
||||
MainFrame.INSTANCE.daemon.runGame(Settings.getLastProfile());
|
||||
else if (!l.isLoggedIn())
|
||||
txtPassword.requestFocus();
|
||||
}
|
||||
@@ -363,7 +363,7 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
|
||||
private void txtPasswordKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPasswordKeyPressed
|
||||
if (evt.getKeyCode() == KeyEvent.VK_ENTER)
|
||||
MainFrame.INSTANCE.daemon.runGame(getProfile());
|
||||
MainFrame.INSTANCE.daemon.runGame(Settings.getLastProfile());
|
||||
}//GEN-LAST:event_txtPasswordKeyPressed
|
||||
|
||||
private void btnImportModpackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImportModpackActionPerformed
|
||||
@@ -376,14 +376,14 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
if (fc.getSelectedFile() == null)
|
||||
return;
|
||||
String suggestedModpackId = JOptionPane.showInputDialog("Please enter your favourite game name", FileUtils.getBaseName(fc.getSelectedFile().getName()));
|
||||
TaskWindow.factory().append(ModpackManager.install(fc.getSelectedFile(), getProfile().service(), suggestedModpackId)).create();
|
||||
getProfile().service().version().refreshVersions();
|
||||
TaskWindow.factory().append(ModpackManager.install(fc.getSelectedFile(), Settings.getLastProfile().service(), suggestedModpackId)).create();
|
||||
Settings.getLastProfile().service().version().refreshVersions();
|
||||
}//GEN-LAST:event_btnImportModpackActionPerformed
|
||||
|
||||
private void btnExportModpackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportModpackActionPerformed
|
||||
if (getProfile().service().version().getVersionCount() <= 0)
|
||||
if (Settings.getLastProfile().service().version().getVersionCount() <= 0)
|
||||
return;
|
||||
WizardDisplayer.showWizard(new ModpackWizard(getProfile().service()).createWizard());
|
||||
WizardDisplayer.showWizard(new ModpackWizard(Settings.getLastProfile().service()).createWizard());
|
||||
}//GEN-LAST:event_btnExportModpackActionPerformed
|
||||
|
||||
private void txtPasswordCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtPasswordCaretUpdate
|
||||
@@ -413,10 +413,6 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
private static final int DEFAULT_WIDTH = 800, DEFAULT_HEIGHT = 480;
|
||||
//</editor-fold>
|
||||
|
||||
public Profile getProfile() {
|
||||
return Settings.getProfile(Settings.getInstance().getLast());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreated() {
|
||||
super.onCreated();
|
||||
@@ -475,7 +471,7 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
}
|
||||
|
||||
final Consumer<IMinecraftService> onRefreshedVersions = t -> {
|
||||
if (getProfile().service() == t)
|
||||
if (Settings.getLastProfile().service() == t)
|
||||
loadVersions();
|
||||
};
|
||||
|
||||
@@ -484,8 +480,8 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
void loadVersions() {
|
||||
isLoading = true;
|
||||
cboVersions.removeAllItems();
|
||||
String selVersion = getProfile().getSelectedVersion();
|
||||
if (getProfile().service().version().getVersions().isEmpty()) {
|
||||
String selVersion = Settings.getLastProfile().getSelectedVersion();
|
||||
if (Settings.getLastProfile().service().version().getVersions().isEmpty()) {
|
||||
if (!showedNoVersion)
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
if (MessageBox.Show(C.i18n("mainwindow.no_version"), MessageBox.YES_NO_OPTION) == MessageBox.YES_OPTION)
|
||||
@@ -493,7 +489,7 @@ public class MainPagePanel extends AnimatedPanel {
|
||||
showedNoVersion = true;
|
||||
});
|
||||
} else {
|
||||
for (MinecraftVersion mcVersion : getProfile().service().version().getVersions()) {
|
||||
for (MinecraftVersion mcVersion : Settings.getLastProfile().service().version().getVersions()) {
|
||||
if (mcVersion.hidden)
|
||||
continue;
|
||||
cboVersions.addItem(mcVersion.id);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
package org.jackhuang.hellominecraft.launcher.util;
|
||||
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -39,6 +40,7 @@ import org.jackhuang.hellominecraft.launcher.core.mod.ModpackManager;
|
||||
import org.jackhuang.hellominecraft.launcher.setting.Profile;
|
||||
import org.jackhuang.hellominecraft.launcher.setting.VersionSetting;
|
||||
import org.jackhuang.hellominecraft.util.C;
|
||||
import org.jackhuang.hellominecraft.util.logging.HMCLog;
|
||||
import org.jackhuang.hellominecraft.util.system.FileUtils;
|
||||
import org.jackhuang.hellominecraft.util.tasks.TaskWindow;
|
||||
|
||||
@@ -88,7 +90,12 @@ public class DefaultMinecraftService extends IMinecraftService {
|
||||
if (f.exists()) {
|
||||
String s = FileUtils.readFileToStringQuietly(f);
|
||||
if (s != null)
|
||||
try {
|
||||
vs = C.GSON.fromJson(s, VersionSetting.class);
|
||||
} catch (JsonSyntaxException ex) {
|
||||
HMCLog.warn("Failed to load version setting: " + id, ex);
|
||||
vs = null;
|
||||
}
|
||||
}
|
||||
if (vs == null)
|
||||
vs = new VersionSetting();
|
||||
|
||||
Reference in New Issue
Block a user