public class ClientTweaker extends Tweaker {
@Override
protected void addOptions(List<String> args, File gameDir, File assetsDir, String profile) {
- addArg("--assetsDir", assetsDir.getPath());
- addArg("--version", profile);
+ if (!isOptifineLoaded()) {
+ super.addOptions(args, gameDir, assetsDir, profile);
+ addArg("--gameDir", gameDir != null ? gameDir.getAbsolutePath() : null);
+ addArg("--assetsDir", assetsDir != null ? assetsDir.getPath() : null);
+ addArg("--version", profile);
+ }
+ }
+
+ private boolean isOptifineLoaded() {
+ try {
+ Class cls = Class.forName("optifine.OptiFineTweaker");
+ return cls != null;
+ } catch (Throwable e) {
+ return false;
+ }
}
@Override
import java.util.List;
public abstract class Tweaker implements ITweaker {
- public List<String> args;
+ private List<String> args;
@Override
public void acceptOptions(List<String> args, File gameDir, File assetsDir, String profile) {
- this.args = new ArrayList<>(args);
+ this.args = new ArrayList<>();
addOptions(args, gameDir, assetsDir, profile);
}
- protected void addArg(String name, String value) {
- args.add(name);
+ void addArg(String name, String value) {
if (value != null) {
+ args.add(name);
args.add(value);
}
}
protected void addOptions(List<String> args, File gameDir, File assetsDir, String profile) {
+ this.args.addAll(args);
}
@Override