diff --git a/app/app.ejs b/app/app.ejs index 35143d41..e829fa14 100644 --- a/app/app.ejs +++ b/app/app.ejs @@ -1,7 +1,7 @@ - Taberna Launcher + Helios Launcher diff --git a/app/assets/images/LoadingSeal.png b/app/assets/images/LoadingSeal.png index b9f5962e..afe2c4d4 100644 Binary files a/app/assets/images/LoadingSeal.png and b/app/assets/images/LoadingSeal.png differ diff --git a/app/assets/images/SealCircle.png b/app/assets/images/SealCircle.png index b9f5962e..9e21d08b 100644 Binary files a/app/assets/images/SealCircle.png and b/app/assets/images/SealCircle.png differ diff --git a/app/assets/js/assetguard.js b/app/assets/js/assetguard.js index 75f6bc54..662a0369 100644 --- a/app/assets/js/assetguard.js +++ b/app/assets/js/assetguard.js @@ -468,15 +468,15 @@ class JavaGuard extends EventEmitter { break } } - } else { + } else if(verOb.major >= 16) { + // TODO Make this logic better. Make java 16 required. // Java 9+ - if(Util.mcVersionAtLeast('1.13', this.mcVersion)){ - console.log('Java 9+ not yet tested.') - /* meta.version = verOb + if(Util.mcVersionAtLeast('1.17', this.mcVersion)){ + meta.version = verOb ++checksum if(checksum === goal){ break - } */ + } } } // Space included so we get only the vendor. diff --git a/app/assets/js/configmanager.js b/app/assets/js/configmanager.js index 68af64c8..3dff9502 100644 --- a/app/assets/js/configmanager.js +++ b/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, '.tabernalauncher') +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') diff --git a/app/assets/js/processbuilder.js b/app/assets/js/processbuilder.js index bf907c35..b55273a8 100644 --- a/app/assets/js/processbuilder.js +++ b/app/assets/js/processbuilder.js @@ -96,6 +96,16 @@ class ProcessBuilder { return child } + /** + * Get the platform specific classpath separator. On windows, this is a semicolon. + * On Unix, this is a colon. + * + * @returns {string} The classpath separator for the current operating system. + */ + static getClasspathSeparator() { + return process.platform === 'win32' ? ';' : ':' + } + /** * Determine if an optional mod is enabled from its configuration value. If the * configuration value is null, the required object will be used to @@ -339,7 +349,7 @@ class ProcessBuilder { // Classpath Argument args.push('-cp') - args.push(this.classpathArg(mods, tempNativePath).join(process.platform === 'win32' ? ';' : ':')) + args.push(this.classpathArg(mods, tempNativePath).join(ProcessBuilder.getClasspathSeparator())) // Java Arguments if(process.platform === 'darwin'){ @@ -377,6 +387,19 @@ class ProcessBuilder { // JVM Arguments First let args = this.versionData.arguments.jvm + // Debug securejarhandler + // args.push('-Dbsl.debug=true') + + if(this.forgeData.arguments.jvm != null) { + for(const argStr of this.forgeData.arguments.jvm) { + args.push(argStr + .replaceAll('${library_directory}', this.libPath) + .replaceAll('${classpath_separator}', ProcessBuilder.getClasspathSeparator()) + .replaceAll('${version_name}', this.forgeData.id) + ) + } + } + //args.push('-Dlog4j.configurationFile=D:\\WesterosCraft\\game\\common\\assets\\log_configs\\client-1.12.xml') // Java Arguments @@ -489,7 +512,7 @@ class ProcessBuilder { val = args[i].replace(argDiscovery, this.launcherVersion) break case 'classpath': - val = this.classpathArg(mods, tempNativePath).join(process.platform === 'win32' ? ';' : ':') + val = this.classpathArg(mods, tempNativePath).join(ProcessBuilder.getClasspathSeparator()) break } if(val != null){ @@ -647,9 +670,13 @@ class ProcessBuilder { classpathArg(mods, tempNativePath){ let cpArgs = [] - // Add the version.jar to the classpath. - const version = this.versionData.id - cpArgs.push(path.join(this.commonDir, 'versions', version, version + '.jar')) + if(!Util.mcVersionAtLeast('1.17', this.server.getMinecraftVersion())) { + // Add the version.jar to the classpath. + // Must not be added to the classpath for Forge 1.17+. + const version = this.versionData.id + cpArgs.push(path.join(this.commonDir, 'versions', version, version + '.jar')) + } + if(this.usingLiteLoader){ cpArgs.push(this.llPath) @@ -788,6 +815,15 @@ class ProcessBuilder { let libs = [] for(let sm of mdl.getSubModules()){ if(sm.getType() === DistroManager.Types.Library){ + + // TODO Add as file or something. + const x = sm.getIdentifier() + console.log(x) + if(x.includes(':universal') || x.includes(':slim') || x.includes(':extra') || x.includes(':srg') || x.includes(':client')) { + console.log('SKIPPING ' + x) + continue + } + libs.push(sm.getArtifact().getPath()) } // If this module has submodules, we need to resolve the libraries for those. diff --git a/app/frame.ejs b/app/frame.ejs index 3679bdcc..c2aaf337 100644 --- a/app/frame.ejs +++ b/app/frame.ejs @@ -13,7 +13,7 @@ <% } else{ %>
- Taberna Launcher + Helios Launcher
+
@@ -30,7 +30,7 @@
- + diff --git a/app/login.ejs b/app/login.ejs index 3947b50e..7ecc4a6c 100644 --- a/app/login.ejs +++ b/app/login.ejs @@ -2,21 +2,21 @@
- Connexion via Mojang + MINECRAFT LOGIN
- * veuillez rentrer votre email Mojang - + * Invalid Value +
@@ -24,16 +24,16 @@ - * veuillez rentrer votre mot de passe Mojang + * Required
- mot de passe oublié? + forgot password?
@@ -54,10 +54,10 @@
- Besoin d'avoir un compte Mojang? + Need an Account? -

Le mot de passe est directement envoyé de façon cryptée chez Mojang et jamais stocké sur nos serveurs.

-

Le launcher n'est pas affilié à Mojang.

+

Your password is sent directly to mojang and never stored.

+

Helios Launcher is not affiliated with Mojang AB.

diff --git a/app/welcome.ejs b/app/welcome.ejs index e5168cf6..077bbaed 100644 --- a/app/welcome.ejs +++ b/app/welcome.ejs @@ -5,13 +5,13 @@
-->
- Bienvenue sur le Taberna Launcher - Le launcher est actuellement en Alpha ! + WELCOME TO WESTEROSCRAFT + Our mission is to recreate the universe imagined by author George RR Martin in his fantasy series, A Song of Ice and Fire. Through the collaborative effort of thousands of community members, we have sought to create Westeros as accurately and precisely as possible within Minecraft. The world we are creating is yours to explore. Journey from Dorne to Castle Black, and if you aren’t afraid, beyond the Wall itself, but best not delay. As the words of House Stark ominously warn: Winter is Coming.
- Signalez nous les bugs + You are just a few clicks away from Westeros.