]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Add support for SxS with Optifine
authorIrtimaled <irtimaled@gmail.com>
Sun, 1 Sep 2019 03:23:08 +0000 (20:23 -0700)
committerIrtimaled <irtimaled@gmail.com>
Mon, 18 Nov 2019 17:21:09 +0000 (09:21 -0800)
src/main/java/com/irtimaled/bbor/launch/ClientTweaker.java
src/main/java/com/irtimaled/bbor/launch/Tweaker.java

index 72c642ca4771edf5d993f88d3d64e1e22b875e97..1d833eaeb8565b1c90cde51534e1c7ac9eb0a6e9 100644 (file)
@@ -6,8 +6,21 @@ import java.util.List;
 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
index 41ea6a58884d6bedad28b8888896d05ae2ed2faf..3993efab4959d2fc4a0a256cc515352e93223ed5 100644 (file)
@@ -11,22 +11,23 @@ import java.util.ArrayList;
 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