浏览代码

Fix autoconnect for 1.13, 1.14. Disabled on 1.15+.

Autoconnect is causing a OpenGL stack overflow exception on 1.15+ for some reason. Disabled it for now.
Finally changed .westeroscraft to .helioslauncher.
Daniel Scalzi 5 年之前
父节点
当前提交
1bdb413ab5
共有 2 个文件被更改,包括 21 次插入10 次删除
  1. 1 1
      app/assets/js/configmanager.js
  2. 20 9
      app/assets/js/processbuilder.js

+ 1 - 1
app/assets/js/configmanager.js

@@ -6,7 +6,7 @@ const logger = require('./loggerutil')('%c[ConfigManager]', 'color: #a02d2a; fon
 
 const sysRoot = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Application Support' : process.env.HOME)
 // TODO change
-const dataPath = path.join(sysRoot, '.westeroscraft')
+const dataPath = path.join(sysRoot, '.helioslauncher')
 
 // Forked processes do not have access to electron, so we have this workaround.
 const launcherDir = process.env.CONFIG_DIRECT_PATH || require('electron').remote.app.getPath('userData')

+ 20 - 9
app/assets/js/processbuilder.js

@@ -272,6 +272,18 @@ class ProcessBuilder {
         
     }
 
+    _processAutoConnectArg(args){
+        if(ConfigManager.getAutoConnect() && this.server.isAutoConnect()){
+            const serverURL = new URL('my://' + this.server.getAddress())
+            args.push('--server')
+            args.push(serverURL.hostname)
+            if(serverURL.port){
+                args.push('--port')
+                args.push(serverURL.port)
+            }
+        }
+    }
+
     /**
      * Construct the argument array that will be passed to the JVM process.
      * 
@@ -461,6 +473,13 @@ class ProcessBuilder {
             }
         }
 
+        // Autoconnect
+        if(Util.mcVersionAtLeast('1.15', this.server.getMinecraftVersion())) {
+            logger.error('Server autoconnect disabled on 1.15+ due to OpenGL Stack Overflow issue.')
+        } else {
+            this._processAutoConnectArg(args)
+        }
+
         // Forge Specific Arguments
         args = args.concat(this.forgeData.arguments.game)
 
@@ -526,15 +545,7 @@ class ProcessBuilder {
         }
 
         // Autoconnect to the selected server.
-        if(ConfigManager.getAutoConnect() && this.server.isAutoConnect()){
-            const serverURL = new URL('my://' + this.server.getAddress())
-            mcArgs.push('--server')
-            mcArgs.push(serverURL.hostname)
-            if(serverURL.port){
-                mcArgs.push('--port')
-                mcArgs.push(serverURL.port)
-            }
-        }
+        this._processAutoConnectArg(mcArgs)
 
         // Prepare game resolution
         if(ConfigManager.getFullscreen()){