Added wrapper launcher

This commit is contained in:
huangyuhui
2016-03-04 14:06:11 +08:00
parent 1818b3575c
commit 019fcf314b
13 changed files with 147 additions and 63 deletions

View File

@@ -1 +0,0 @@
/home/huangyuhui/softwares/jdk1.8.0_65/jre/bin/java -XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -Xmn128m -Xmx3968m -Djava.library.path=/home/huangyuhui/game/testempty/versions/1.9-pre3/1.9-pre3-natives -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Duser.home=/home/huangyuhui/game -cp /home/huangyuhui/NetBeansProjects/HMCL/HMCL/build/classes/main/:/home/huangyuhui/NetBeansProjects/HMCL/HMCL/build/resources/main/:/home/huangyuhui/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.2.4/a60a5e993c98c864010053cb901b7eab25306568/gson-2.2.4.jar:/home/huangyuhui/NetBeansProjects/HMCL/MetroLookAndFeel/build/libs/MetroLookAndFeel.jar:/home/huangyuhui/NetBeansProjects/HMCL/HMCLAPI/build/libs/HMCLAPI.jar:/home/huangyuhui/.gradle/caches/modules-2/files-2.1/org.commonjava.googlecode.markdown4j/markdown4j/2.2-cj-1.0/ba35b052c48261a17e94ae5c31e8e9ad9b9f4d2c/markdown4j-2.2-cj-1.0.jar org.jackhuang.hellominecraft.launcher.Launcher -cp=/home/huangyuhui/game/testempty/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar:/home/huangyuhui/game/testempty/libraries/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar:/home/huangyuhui/game/testempty/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar:/home/huangyuhui/game/testempty/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar:/home/huangyuhui/game/testempty/libraries/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar:/home/huangyuhui/game/testempty/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar:/home/huangyuhui/game/testempty/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar:/home/huangyuhui/game/testempty/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar:/home/huangyuhui/game/testempty/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar:/home/huangyuhui/game/testempty/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar:/home/huangyuhui/game/testempty/libraries/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar:/home/huangyuhui/game/testempty/libraries/com/google/guava/guava/17.0/guava-17.0.jar:/home/huangyuhui/game/testempty/libraries/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar:/home/huangyuhui/game/testempty/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar:/home/huangyuhui/game/testempty/libraries/commons-codec/commons-codec/1.9/commons-codec-1.9.jar:/home/huangyuhui/game/testempty/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar:/home/huangyuhui/game/testempty/libraries/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar:/home/huangyuhui/game/testempty/libraries/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar:/home/huangyuhui/game/testempty/libraries/com/mojang/authlib/1.5.22/authlib-1.5.22.jar:/home/huangyuhui/game/testempty/libraries/com/mojang/realms/1.8.1/realms-1.8.1.jar:/home/huangyuhui/game/testempty/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar:/home/huangyuhui/game/testempty/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar:/home/huangyuhui/game/testempty/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/home/huangyuhui/game/testempty/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar:/home/huangyuhui/game/testempty/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar:/home/huangyuhui/game/testempty/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar:/home/huangyuhui/game/testempty/libraries/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar:/home/huangyuhui/game/testempty/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar:/home/huangyuhui/game/testempty/versions/1.9-pre3/1.9-pre3.jar -mainClass=net.minecraft.client.main.Main --username huangyuhui --version "HMCL 2.4.0.233" --gameDir /home/huangyuhui/game/testempty --assetsDir /home/huangyuhui/game/testempty/assets --assetIndex 1.9 --uuid c14d042145c04aff8ecbcf85ebbc4400 --accessToken 6fc6bdb6854c4692a5edcd3da4444fb0 --userType mojang --versionType "HMCL 2.4.0.233" --height 480 --width 854

View File

@@ -68,6 +68,9 @@ public abstract class AbstractMinecraftLoader implements IMinecraftLoader {
public void makeHeadCommand(List<String> res) { public void makeHeadCommand(List<String> res) {
HMCLog.log("On making head command."); HMCLog.log("On making head command.");
if (StrUtils.isNotBlank(options.getWrapper()))
res.add(options.getWrapper());
JdkVersion jv = options.getJava(); JdkVersion jv = options.getJava();
res.add(options.getJavaDir()); res.add(options.getJavaDir());

View File

@@ -28,7 +28,7 @@ import org.jackhuang.hellominecraft.util.system.JdkVersion;
*/ */
public class LaunchOptions { public class LaunchOptions {
private String name, versionName, javaArgs, minecraftArgs, maxMemory, permSize, width, height, serverIp; private String name, versionName, javaArgs, minecraftArgs, maxMemory, permSize, width, height, serverIp, wrapper;
private String proxyHost, proxyPort, proxyUser, proxyPass, javaDir, launchVersion, type, precalledCommand; private String proxyHost, proxyPort, proxyUser, proxyPass, javaDir, launchVersion, type, precalledCommand;
private boolean fullscreen, debug, noJVMArgs, canceledWrapper; private boolean fullscreen, debug, noJVMArgs, canceledWrapper;
private JdkVersion java; private JdkVersion java;
@@ -95,6 +95,14 @@ public class LaunchOptions {
this.maxMemory = maxMemory; this.maxMemory = maxMemory;
} }
public String getWrapper() {
return wrapper;
}
public void setWrapper(String wrapper) {
this.wrapper = wrapper;
}
public String getWidth() { public String getWidth() {
return width; return width;
} }

View File

@@ -40,7 +40,7 @@ public class VersionSetting {
public transient String id; public transient String id;
private String javaArgs, minecraftArgs, maxMemory, permSize, width, height; private String javaArgs, minecraftArgs, maxMemory, permSize, width, height;
private String javaDir, precalledCommand, serverIp, java; private String javaDir, precalledCommand, serverIp, java, wrapper;
private boolean fullscreen, debug, noJVMArgs, canceledWrapper; private boolean fullscreen, debug, noJVMArgs, canceledWrapper;
/** /**
@@ -62,7 +62,7 @@ public class VersionSetting {
debug = fullscreen = canceledWrapper = false; debug = fullscreen = canceledWrapper = false;
launcherVisibility = 1; launcherVisibility = 1;
gameDirType = 0; gameDirType = 0;
javaDir = java = minecraftArgs = serverIp = precalledCommand = ""; javaDir = java = minecraftArgs = serverIp = precalledCommand = wrapper = "";
} }
public VersionSetting(VersionSetting v) { public VersionSetting(VersionSetting v) {
@@ -84,6 +84,7 @@ public class VersionSetting {
noJVMArgs = v.noJVMArgs; noJVMArgs = v.noJVMArgs;
launcherVisibility = v.launcherVisibility; launcherVisibility = v.launcherVisibility;
precalledCommand = v.precalledCommand; precalledCommand = v.precalledCommand;
wrapper = v.wrapper;
serverIp = v.serverIp; serverIp = v.serverIp;
} }
@@ -266,6 +267,15 @@ public class VersionSetting {
propertyChanged.execute("precalledCommand"); propertyChanged.execute("precalledCommand");
} }
public String getWrapper() {
return wrapper;
}
public void setWrapper(String wrapper) {
this.wrapper = wrapper;
propertyChanged.execute("wrapper");
}
public String getServerIp() { public String getServerIp() {
return serverIp; return serverIp;
} }
@@ -280,6 +290,7 @@ public class VersionSetting {
x.setCanceledWrapper(isCanceledWrapper()); x.setCanceledWrapper(isCanceledWrapper());
x.setDebug(isDebug()); x.setDebug(isDebug());
x.setFullscreen(isFullscreen()); x.setFullscreen(isFullscreen());
x.setWrapper(getWrapper());
x.setGameDir(gameDir); x.setGameDir(gameDir);
x.setGameDirType(getGameDirType()); x.setGameDirType(getGameDirType());
x.setHeight(getHeight()); x.setHeight(getHeight());

View File

@@ -63,7 +63,7 @@
</Group> </Group>
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0"> <Group type="102" alignment="1" attributes="0">
<EmptySpace pref="402" max="32767" attributes="0"/> <EmptySpace pref="576" max="32767" attributes="0"/>
<Component id="btnIncludeMinecraft" min="-2" max="-2" attributes="0"/> <Component id="btnIncludeMinecraft" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
@@ -195,7 +195,7 @@
<Component id="lblDimension" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lblDimension" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtWidth" alignment="3" min="-2" pref="26" max="-2" attributes="0"/> <Component id="txtWidth" alignment="3" min="-2" pref="26" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace pref="54" max="32767" attributes="0"/> <EmptySpace pref="228" max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="btnDownloadAllAssets" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="btnDownloadAllAssets" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnCleanGame" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="btnCleanGame" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -388,40 +388,51 @@
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/> <EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="txtPrecalledCommand" alignment="0" max="32767" attributes="0"/>
<Component id="txtServerIP" alignment="0" max="32767" attributes="0"/>
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="lblPrecalledCommand" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="txtWrapperLauncher" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<Component id="chkDebug" min="-2" max="-2" attributes="0"/> <Component id="lblPrecalledCommand1" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
<Component id="chkCancelWrapper" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="chkNoJVMArgs" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Component id="lblServerIP" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="lblMinecraftArgs" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblPermSize" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblJavaArgs" alignment="0" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> </Group>
<Component id="txtJavaArgs" max="32767" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0">
<Component id="txtMinecraftArgs" max="32767" attributes="0"/> <Component id="txtPrecalledCommand" alignment="0" max="32767" attributes="0"/>
<Component id="txtPermSize" alignment="1" max="32767" attributes="0"/> <Component id="txtServerIP" alignment="0" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="lblPrecalledCommand" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="chkDebug" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="chkCancelWrapper" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="chkNoJVMArgs" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="lblServerIP" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="0" pref="263" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="lblMinecraftArgs" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblPermSize" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblJavaArgs" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="txtJavaArgs" max="32767" attributes="0"/>
<Component id="txtMinecraftArgs" max="32767" attributes="0"/>
<Component id="txtPermSize" alignment="1" max="32767" attributes="0"/>
</Group>
</Group> </Group>
</Group> </Group>
</Group> </Group>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@@ -444,6 +455,10 @@
<Component id="lblPermSize" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lblPermSize" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="lblPrecalledCommand1" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="txtWrapperLauncher" min="-2" pref="26" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lblPrecalledCommand" min="-2" max="-2" attributes="0"/> <Component id="lblPrecalledCommand" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="txtPrecalledCommand" min="-2" pref="26" max="-2" attributes="0"/> <Component id="txtPrecalledCommand" min="-2" pref="26" max="-2" attributes="0"/>
@@ -451,7 +466,7 @@
<Component id="lblServerIP" min="-2" max="-2" attributes="0"/> <Component id="lblServerIP" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="txtServerIP" min="-2" pref="26" max="-2" attributes="0"/> <Component id="txtServerIP" min="-2" pref="26" max="-2" attributes="0"/>
<EmptySpace pref="46" max="32767" attributes="0"/> <EmptySpace pref="168" max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="chkDebug" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="chkDebug" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="chkNoJVMArgs" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="chkNoJVMArgs" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -537,7 +552,7 @@
<Component class="javax.swing.JLabel" name="lblPrecalledCommand"> <Component class="javax.swing.JLabel" name="lblPrecalledCommand">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/jackhuang/hellominecraft/launcher/I18N.properties" key="advancedsettings.wrapper_launcher" replaceFormat="C.i18n(&quot;{key}&quot;)"/> <ResourceString bundle="org/jackhuang/hellominecraft/lang/I18N.properties" key="advancedsettings.precall_command" replaceFormat="C.i18n(&quot;{key}&quot;)"/>
</Property> </Property>
</Properties> </Properties>
</Component> </Component>
@@ -558,6 +573,18 @@
<EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="txtServerIPFocusLost"/> <EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="txtServerIPFocusLost"/>
</Events> </Events>
</Component> </Component>
<Component class="javax.swing.JLabel" name="lblPrecalledCommand1">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/jackhuang/hellominecraft/lang/I18N.properties" key="advancedsettings.wrapper_launcher" replaceFormat="C.i18n(&quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="txtWrapperLauncher">
<Events>
<EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="txtWrapperLauncherFocusLost"/>
</Events>
</Component>
</SubComponents> </SubComponents>
</Container> </Container>
<Container class="javax.swing.JPanel" name="pnlModManagement"> <Container class="javax.swing.JPanel" name="pnlModManagement">
@@ -616,7 +643,7 @@
<Component id="btnRemoveMod" min="-2" max="-2" attributes="0"/> <Component id="btnRemoveMod" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group> </Group>
<Component id="jScrollPane1" pref="254" max="32767" attributes="0"/> <Component id="jScrollPane1" pref="428" max="32767" attributes="0"/>
</Group> </Group>
<EmptySpace min="-2" max="-2" attributes="0"/> <EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="lblModInfo" min="-2" max="-2" attributes="0"/> <Component id="lblModInfo" min="-2" max="-2" attributes="0"/>

View File

@@ -290,6 +290,8 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
txtPrecalledCommand = new javax.swing.JTextField(); txtPrecalledCommand = new javax.swing.JTextField();
lblServerIP = new javax.swing.JLabel(); lblServerIP = new javax.swing.JLabel();
txtServerIP = new javax.swing.JTextField(); txtServerIP = new javax.swing.JTextField();
lblPrecalledCommand1 = new javax.swing.JLabel();
txtWrapperLauncher = new javax.swing.JTextField();
pnlModManagement = new AnimatedPanel(); pnlModManagement = new AnimatedPanel();
pnlModManagementContent = new javax.swing.JPanel(); pnlModManagementContent = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane(); jScrollPane1 = new javax.swing.JScrollPane();
@@ -506,7 +508,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
.addComponent(lblDimensionX, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblDimensionX, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblDimension) .addComponent(lblDimension)
.addComponent(txtWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(txtWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 54, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 228, Short.MAX_VALUE)
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnDownloadAllAssets) .addComponent(btnDownloadAllAssets)
.addComponent(btnCleanGame)) .addComponent(btnCleanGame))
@@ -561,7 +563,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
} }
}); });
lblPrecalledCommand.setText(C.i18n("advancedsettings.wrapper_launcher")); // NOI18N lblPrecalledCommand.setText(C.i18n("advancedsettings.precall_command")); // NOI18N
txtPrecalledCommand.addFocusListener(new java.awt.event.FocusAdapter() { txtPrecalledCommand.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) { public void focusLost(java.awt.event.FocusEvent evt) {
@@ -577,6 +579,14 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
} }
}); });
lblPrecalledCommand1.setText(C.i18n("advancedsettings.wrapper_launcher")); // NOI18N
txtWrapperLauncher.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
txtWrapperLauncherFocusLost(evt);
}
});
javax.swing.GroupLayout pnlAdvancedSettingsLayout = new javax.swing.GroupLayout(pnlAdvancedSettings); javax.swing.GroupLayout pnlAdvancedSettingsLayout = new javax.swing.GroupLayout(pnlAdvancedSettings);
pnlAdvancedSettings.setLayout(pnlAdvancedSettingsLayout); pnlAdvancedSettings.setLayout(pnlAdvancedSettingsLayout);
pnlAdvancedSettingsLayout.setHorizontalGroup( pnlAdvancedSettingsLayout.setHorizontalGroup(
@@ -584,30 +594,37 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
.addGroup(pnlAdvancedSettingsLayout.createSequentialGroup() .addGroup(pnlAdvancedSettingsLayout.createSequentialGroup()
.addGap(0, 0, 0) .addGap(0, 0, 0)
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtPrecalledCommand)
.addComponent(txtServerIP)
.addGroup(pnlAdvancedSettingsLayout.createSequentialGroup() .addGroup(pnlAdvancedSettingsLayout.createSequentialGroup()
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblPrecalledCommand) .addComponent(txtWrapperLauncher)
.addGroup(pnlAdvancedSettingsLayout.createSequentialGroup() .addGroup(pnlAdvancedSettingsLayout.createSequentialGroup()
.addComponent(chkDebug) .addComponent(lblPrecalledCommand1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGap(0, 0, Short.MAX_VALUE)))
.addComponent(chkCancelWrapper) .addContainerGap())
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(chkNoJVMArgs)) .addComponent(txtPrecalledCommand)
.addComponent(lblServerIP)) .addComponent(txtServerIP)
.addGap(0, 0, Short.MAX_VALUE)) .addGroup(pnlAdvancedSettingsLayout.createSequentialGroup()
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlAdvancedSettingsLayout.createSequentialGroup() .addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblPrecalledCommand)
.addComponent(lblMinecraftArgs) .addGroup(pnlAdvancedSettingsLayout.createSequentialGroup()
.addComponent(lblPermSize) .addComponent(chkDebug)
.addComponent(lblJavaArgs)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkCancelWrapper)
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtJavaArgs) .addComponent(chkNoJVMArgs))
.addComponent(txtMinecraftArgs) .addComponent(lblServerIP))
.addComponent(txtPermSize, javax.swing.GroupLayout.Alignment.TRAILING)))) .addGap(0, 263, Short.MAX_VALUE))
.addGap(0, 0, 0)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlAdvancedSettingsLayout.createSequentialGroup()
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblMinecraftArgs)
.addComponent(lblPermSize)
.addComponent(lblJavaArgs))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtJavaArgs)
.addComponent(txtMinecraftArgs)
.addComponent(txtPermSize, javax.swing.GroupLayout.Alignment.TRAILING))))))
); );
pnlAdvancedSettingsLayout.setVerticalGroup( pnlAdvancedSettingsLayout.setVerticalGroup(
pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -625,6 +642,10 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
.addComponent(txtPermSize, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPermSize, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblPermSize)) .addComponent(lblPermSize))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblPrecalledCommand1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtWrapperLauncher, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblPrecalledCommand) .addComponent(lblPrecalledCommand)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtPrecalledCommand, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPrecalledCommand, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -632,7 +653,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
.addComponent(lblServerIP) .addComponent(lblServerIP)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtServerIP, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtServerIP, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 168, Short.MAX_VALUE)
.addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(pnlAdvancedSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(chkDebug) .addComponent(chkDebug)
.addComponent(chkNoJVMArgs) .addComponent(chkNoJVMArgs)
@@ -698,7 +719,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnRemoveMod) .addComponent(btnRemoveMod)
.addGap(0, 0, Short.MAX_VALUE)) .addGap(0, 0, Short.MAX_VALUE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE)) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 428, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblModInfo)) .addComponent(lblModInfo))
); );
@@ -931,7 +952,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
.addContainerGap()) .addContainerGap())
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(402, Short.MAX_VALUE) .addContainerGap(576, Short.MAX_VALUE)
.addComponent(btnIncludeMinecraft) .addComponent(btnIncludeMinecraft)
.addContainerGap())) .addContainerGap()))
); );
@@ -1168,6 +1189,10 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
Settings.getLastProfile().getSelectedVersionSetting().setServerIp(txtServerIP.getText()); Settings.getLastProfile().getSelectedVersionSetting().setServerIp(txtServerIP.getText());
}//GEN-LAST:event_txtServerIPFocusLost }//GEN-LAST:event_txtServerIPFocusLost
private void txtWrapperLauncherFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtWrapperLauncherFocusLost
Settings.getLastProfile().getSelectedVersionSetting().setWrapper(txtWrapperLauncher.getText());
}//GEN-LAST:event_txtWrapperLauncherFocusLost
// </editor-fold> // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Load"> // <editor-fold defaultstate="collapsed" desc="Load">
void prepareVersionSetting(VersionSetting profile) { void prepareVersionSetting(VersionSetting profile) {
@@ -1352,6 +1377,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
private javax.swing.JLabel lblModInfo; private javax.swing.JLabel lblModInfo;
private javax.swing.JLabel lblPermSize; private javax.swing.JLabel lblPermSize;
private javax.swing.JLabel lblPrecalledCommand; private javax.swing.JLabel lblPrecalledCommand;
private javax.swing.JLabel lblPrecalledCommand1;
private javax.swing.JLabel lblProfile; private javax.swing.JLabel lblProfile;
private javax.swing.JLabel lblRunDirectory; private javax.swing.JLabel lblRunDirectory;
private javax.swing.JLabel lblServerIP; private javax.swing.JLabel lblServerIP;
@@ -1378,6 +1404,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
private javax.swing.JTextField txtPrecalledCommand; private javax.swing.JTextField txtPrecalledCommand;
private javax.swing.JTextField txtServerIP; private javax.swing.JTextField txtServerIP;
private javax.swing.JTextField txtWidth; private javax.swing.JTextField txtWidth;
private javax.swing.JTextField txtWrapperLauncher;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables
private javax.swing.JPanel pnlGameDownloads; private javax.swing.JPanel pnlGameDownloads;

View File

@@ -100,7 +100,10 @@ public class ModpackWizard extends WizardBranchController {
} }
try { try {
String gameVersion = (String) settings.get(ModpackInitializationPanel.KEY_GAME_VERSION); String gameVersion = (String) settings.get(ModpackInitializationPanel.KEY_GAME_VERSION);
File loc = new File((String) settings.get(ModpackInitializationPanel.KEY_MODPACK_LOCATION)); String strLocation = (String) settings.get(ModpackInitializationPanel.KEY_MODPACK_LOCATION);
if (!strLocation.endsWith(".zip"))
strLocation += ".zip";
File loc = new File(strLocation);
File modpack = loc; File modpack = loc;
if ((Boolean) settings.get(ModpackInitializationPanel.KEY_INCLUDING_LAUNCHER)) if ((Boolean) settings.get(ModpackInitializationPanel.KEY_INCLUDING_LAUNCHER))
modpack = new File(loc.getAbsolutePath() + ".temp"); modpack = new File(loc.getAbsolutePath() + ".temp");

View File

@@ -285,7 +285,8 @@ advancedsettings.game_dir.default=默认(.minecraft/)
advancedsettings.game_dir.independent=各版本独立(.minecraft/versions/<版本名>/,除assets,libraries) advancedsettings.game_dir.independent=各版本独立(.minecraft/versions/<版本名>/,除assets,libraries)
advancedsettings.no_jvm_args=不添加默认的JVM参数(使用Java9时必勾) advancedsettings.no_jvm_args=不添加默认的JVM参数(使用Java9时必勾)
advancedsettings.java_args_default=启动器默认添加的参数(请不要重复添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true advancedsettings.java_args_default=启动器默认添加的参数(请不要重复添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
advancedsettings.wrapper_launcher=启动前执行命令(不必填写,将在游戏启动前调用) advancedsettings.wrapper_launcher=前置指令(不必填写,如optirun)
advancedsettings.precall_command=启动前执行命令(不必填写,将在游戏启动前调用)
advancedsettings.server_ip=直入服务器ip地址(不必填写,启动游戏后直接进入对应服务器) advancedsettings.server_ip=直入服务器ip地址(不必填写,启动游戏后直接进入对应服务器)
advancedsettings.cancel_wrapper_launcher=取消包裹启动器(出现奇怪问题时可尝试使用,与调试模式冲突) advancedsettings.cancel_wrapper_launcher=取消包裹启动器(出现奇怪问题时可尝试使用,与调试模式冲突)

View File

@@ -285,7 +285,8 @@ advancedsettings.game_dir.default=\u9ed8\u8ba4(.minecraft/)
advancedsettings.game_dir.independent=\u5404\u7248\u672c\u72ec\u7acb(.minecraft/versions/<\u7248\u672c\u540d>/,\u9664assets,libraries) advancedsettings.game_dir.independent=\u5404\u7248\u672c\u72ec\u7acb(.minecraft/versions/<\u7248\u672c\u540d>/,\u9664assets,libraries)
advancedsettings.no_jvm_args=\u4e0d\u6dfb\u52a0\u9ed8\u8ba4\u7684JVM\u53c2\u6570(\u4f7f\u7528Java9\u65f6\u5fc5\u52fe) advancedsettings.no_jvm_args=\u4e0d\u6dfb\u52a0\u9ed8\u8ba4\u7684JVM\u53c2\u6570(\u4f7f\u7528Java9\u65f6\u5fc5\u52fe)
advancedsettings.java_args_default=\u542f\u52a8\u5668\u9ed8\u8ba4\u6dfb\u52a0\u7684\u53c2\u6570\uff08\u8bf7\u4e0d\u8981\u91cd\u590d\u6dfb\u52a0\uff09\uff1a-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true advancedsettings.java_args_default=\u542f\u52a8\u5668\u9ed8\u8ba4\u6dfb\u52a0\u7684\u53c2\u6570\uff08\u8bf7\u4e0d\u8981\u91cd\u590d\u6dfb\u52a0\uff09\uff1a-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
advancedsettings.wrapper_launcher=\u542f\u52a8\u524d\u6267\u884c\u547d\u4ee4(\u4e0d\u5fc5\u586b\u5199\uff0c\u5c06\u5728\u6e38\u620f\u542f\u52a8\u524d\u8c03\u7528) advancedsettings.wrapper_launcher=\u524d\u7f6e\u6307\u4ee4(\u4e0d\u5fc5\u586b\u5199,\u5982optirun)
advancedsettings.precall_command=\u542f\u52a8\u524d\u6267\u884c\u547d\u4ee4(\u4e0d\u5fc5\u586b\u5199\uff0c\u5c06\u5728\u6e38\u620f\u542f\u52a8\u524d\u8c03\u7528)
advancedsettings.server_ip=\u76f4\u5165\u670d\u52a1\u5668ip\u5730\u5740(\u4e0d\u5fc5\u586b\u5199\uff0c\u542f\u52a8\u6e38\u620f\u540e\u76f4\u63a5\u8fdb\u5165\u5bf9\u5e94\u670d\u52a1\u5668) advancedsettings.server_ip=\u76f4\u5165\u670d\u52a1\u5668ip\u5730\u5740(\u4e0d\u5fc5\u586b\u5199\uff0c\u542f\u52a8\u6e38\u620f\u540e\u76f4\u63a5\u8fdb\u5165\u5bf9\u5e94\u670d\u52a1\u5668)
advancedsettings.cancel_wrapper_launcher=\u53d6\u6d88\u5305\u88f9\u542f\u52a8\u5668\uff08\u51fa\u73b0\u5947\u602a\u95ee\u9898\u65f6\u53ef\u5c1d\u8bd5\u4f7f\u7528,\u4e0e\u8c03\u8bd5\u6a21\u5f0f\u51b2\u7a81\uff09 advancedsettings.cancel_wrapper_launcher=\u53d6\u6d88\u5305\u88f9\u542f\u52a8\u5668\uff08\u51fa\u73b0\u5947\u602a\u95ee\u9898\u65f6\u53ef\u5c1d\u8bd5\u4f7f\u7528,\u4e0e\u8c03\u8bd5\u6a21\u5f0f\u51b2\u7a81\uff09

View File

@@ -286,6 +286,7 @@ advancedsettings.game_dir.independent=Independent (.minecraft/versions/<version
advancedsettings.no_jvm_args=No Default JVM Args advancedsettings.no_jvm_args=No Default JVM Args
advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
advancedsettings.wrapper_launcher=Wrapper Launcher(like optirun...) advancedsettings.wrapper_launcher=Wrapper Launcher(like optirun...)
advancedsettings.precall_command=Precalling command(will be executed before game launching)
advancedsettings.server_ip=Server Host advancedsettings.server_ip=Server Host
advancedsettings.cancel_wrapper_launcher=Cancel Wrapper Launcher advancedsettings.cancel_wrapper_launcher=Cancel Wrapper Launcher

View File

@@ -286,6 +286,7 @@ advancedsettings.game_dir.independent=Independent (.minecraft/versions/<version
advancedsettings.no_jvm_args=No Default JVM Args advancedsettings.no_jvm_args=No Default JVM Args
advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
advancedsettings.wrapper_launcher=Wrapper Launcher(like optirun...) advancedsettings.wrapper_launcher=Wrapper Launcher(like optirun...)
advancedsettings.precall_command=Precalling command(will be executed before game launching)
advancedsettings.server_ip=Server Host advancedsettings.server_ip=Server Host
advancedsettings.cancel_wrapper_launcher=Cancel Wrapper Launcher advancedsettings.cancel_wrapper_launcher=Cancel Wrapper Launcher

View File

@@ -285,7 +285,8 @@ advancedsettings.game_dir.default=默認(.minecraft/)
advancedsettings.game_dir.independent=各版本獨立(.minecraft/versions/<版本名>/,除assets,libraries) advancedsettings.game_dir.independent=各版本獨立(.minecraft/versions/<版本名>/,除assets,libraries)
advancedsettings.no_jvm_args=不添加默認的JVM參數(使用Java9時必勾) advancedsettings.no_jvm_args=不添加默認的JVM參數(使用Java9時必勾)
advancedsettings.java_args_default=啟動器默認添加的參數(請不要重複添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml. ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true advancedsettings.java_args_default=啟動器默認添加的參數(請不要重複添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml. ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
advancedsettings.wrapper_launcher=前置啟動指令(不必填寫,內容將加在啟動腳本最前,如optirun...) advancedsettings.wrapper_launcher=前置指令(不必填寫,如optirun)
advancedsettings.precall_command=啟動前執行命令(不必填寫,將在遊戲啟動前調用)
advancedsettings.server_ip=直入伺服器ip地址(不必填寫,啟動遊戲後直接進入對應伺服器) advancedsettings.server_ip=直入伺服器ip地址(不必填寫,啟動遊戲後直接進入對應伺服器)
advancedsettings.cancel_wrapper_launcher=取消包裹啟動器(出現奇怪問題時可嘗試使用,與調試模式衝突) advancedsettings.cancel_wrapper_launcher=取消包裹啟動器(出現奇怪問題時可嘗試使用,與調試模式衝突)

View File

@@ -285,7 +285,8 @@ advancedsettings.game_dir.default=\u9ed8\u8a8d(.minecraft/)
advancedsettings.game_dir.independent=\u5404\u7248\u672c\u7368\u7acb(.minecraft/versions/<\u7248\u672c\u540d>/,\u9664assets,libraries) advancedsettings.game_dir.independent=\u5404\u7248\u672c\u7368\u7acb(.minecraft/versions/<\u7248\u672c\u540d>/,\u9664assets,libraries)
advancedsettings.no_jvm_args=\u4e0d\u6dfb\u52a0\u9ed8\u8a8d\u7684JVM\u53c3\u6578(\u4f7f\u7528Java9\u6642\u5fc5\u52fe) advancedsettings.no_jvm_args=\u4e0d\u6dfb\u52a0\u9ed8\u8a8d\u7684JVM\u53c3\u6578(\u4f7f\u7528Java9\u6642\u5fc5\u52fe)
advancedsettings.java_args_default=\u555f\u52d5\u5668\u9ed8\u8a8d\u6dfb\u52a0\u7684\u53c3\u6578\uff08\u8acb\u4e0d\u8981\u91cd\u8907\u6dfb\u52a0\uff09\uff1a-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml. ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true advancedsettings.java_args_default=\u555f\u52d5\u5668\u9ed8\u8a8d\u6dfb\u52a0\u7684\u53c3\u6578\uff08\u8acb\u4e0d\u8981\u91cd\u8907\u6dfb\u52a0\uff09\uff1a-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml. ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
advancedsettings.wrapper_launcher=\u524d\u7f6e\u555f\u52d5\u6307\u4ee4(\u4e0d\u5fc5\u586b\u5beb\uff0c\u5167\u5bb9\u5c07\u52a0\u5728\u555f\u52d5\u8173\u672c\u6700\u524d\uff0c\u5982optirun...) advancedsettings.wrapper_launcher=\u524d\u7f6e\u6307\u4ee4(\u4e0d\u5fc5\u586b\u5beb,\u5982optirun)
advancedsettings.precall_command=\u555f\u52d5\u524d\u57f7\u884c\u547d\u4ee4(\u4e0d\u5fc5\u586b\u5beb,\u5c07\u5728\u904a\u6232\u555f\u52d5\u524d\u8abf\u7528)
advancedsettings.server_ip=\u76f4\u5165\u4f3a\u670d\u5668ip\u5730\u5740(\u4e0d\u5fc5\u586b\u5beb\uff0c\u555f\u52d5\u904a\u6232\u5f8c\u76f4\u63a5\u9032\u5165\u5c0d\u61c9\u4f3a\u670d\u5668) advancedsettings.server_ip=\u76f4\u5165\u4f3a\u670d\u5668ip\u5730\u5740(\u4e0d\u5fc5\u586b\u5beb\uff0c\u555f\u52d5\u904a\u6232\u5f8c\u76f4\u63a5\u9032\u5165\u5c0d\u61c9\u4f3a\u670d\u5668)
advancedsettings.cancel_wrapper_launcher=\u53d6\u6d88\u5305\u88f9\u555f\u52d5\u5668(\u51fa\u73fe\u5947\u602a\u554f\u984c\u6642\u53ef\u5617\u8a66\u4f7f\u7528,\u8207\u8abf\u8a66\u6a21\u5f0f\u885d\u7a81) advancedsettings.cancel_wrapper_launcher=\u53d6\u6d88\u5305\u88f9\u555f\u52d5\u5668(\u51fa\u73fe\u5947\u602a\u554f\u984c\u6642\u53ef\u5617\u8a66\u4f7f\u7528,\u8207\u8abf\u8a66\u6a21\u5f0f\u885d\u7a81)