Git Product home page Git Product logo

helioslauncher's Introduction

aventium softworks

Helios Launcher

(formerly Electron Launcher)

gh actions downloads winter-is-coming

Join modded servers without worrying about installing Java, Forge, or other mods. We'll handle that for you.

Screenshot 1 Screenshot 2

Features

  • 🔒 Full account management.
    • Add multiple accounts and easily switch between them.
    • Microsoft (OAuth 2.0) + Mojang (Yggdrasil) authentication fully supported.
    • Credentials are never stored and transmitted directly to Mojang.
  • 📂 Efficient asset management.
    • Receive client updates as soon as we release them.
    • Files are validated before launch. Corrupt or incorrect files will be redownloaded.
  • Automatic Java validation.
    • If you have an incompatible version of Java installed, we'll install the right one for you.
    • You do not need to have Java installed to run the launcher.
  • 📰 News feed natively built into the launcher.
  • ⚙️ Intuitive settings management, including a Java control panel.
  • Supports all of our servers.
    • Switch between server configurations with ease.
    • View the player count of the selected server.
  • Automatic updates. That's right, the launcher updates itself.
  • View the status of Mojang's services.

This is not an exhaustive list. Download and install the launcher to gauge all it can do!

Need Help? Check the wiki.

Like the project? Leave a ⭐ star on the repository!

Downloads

You can download from GitHub Releases

Latest Release

Latest Pre-Release

Supported Platforms

If you download from the Releases tab, select the installer for your system.

Platform File
Windows x64 Helios-Launcher-setup-VERSION.exe
macOS x64 Helios-Launcher-setup-VERSION-x64.dmg
macOS arm64 Helios-Launcher-setup-VERSION-arm64.dmg
Linux x64 Helios-Launcher-setup-VERSION.AppImage

Console

To open the console, use the following keybind.

ctrl + shift + i

Ensure that you have the console tab selected. Do not paste anything into the console unless you are 100% sure of what it will do. Pasting the wrong thing can expose sensitive information.

Export Output to a File

If you want to export the console output, simply right click anywhere on the console and click Save as..

console example

Development

This section details the setup of a basic developmentment environment.

Getting Started

System Requirements


Clone and Install Dependencies

> git clone https://github.com/dscalzi/HeliosLauncher.git
> cd HeliosLauncher
> npm install

Launch Application

> npm start

Build Installers

To build for your current platform.

> npm run dist

Build for a specific platform.

Platform Command
Windows x64 npm run dist:win
macOS npm run dist:mac
Linux x64 npm run dist:linux

Builds for macOS may not work on Windows/Linux and vice-versa.


Visual Studio Code

All development of the launcher should be done using Visual Studio Code.

Paste the following into .vscode/launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "program": "${workspaceFolder}/node_modules/electron/cli.js",
      "args" : ["."],
      "outputCapture": "std"
    },
    {
      "name": "Debug Renderer Process",
      "type": "chrome",
      "request": "launch",
      "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
      },
      "runtimeArgs": [
        "${workspaceFolder}/.",
        "--remote-debugging-port=9222"
      ],
      "webRoot": "${workspaceFolder}"
    }
  ]
}

This adds two debug configurations.

Debug Main Process

This allows you to debug Electron's main process. You can debug scripts in the renderer process by opening the DevTools Window.

Debug Renderer Process

This allows you to debug Electron's renderer process. This requires you to install the Debugger for Chrome extension.

Note that you cannot open the DevTools window while using this debug configuration. Chromium only allows one debugger, opening another will crash the program.


Note on Third-Party Usage

Please give credit to the original author and provide a link to the original source. This is free software, please do at least this much.

For instructions on setting up Microsoft Authentication, see https://github.com/dscalzi/HeliosLauncher/blob/master/docs/MicrosoftAuth.md.


Resources

The best way to contact the developers is on Discord.

discord


See you ingame.

helioslauncher's People

Contributors

damsdev1 avatar dependabot[bot] avatar dscalzi avatar geekcornergh avatar jebibot avatar kamesuta avatar matanrak avatar oskarstawiarski avatar r1tsuu avatar siromgitsyou avatar themartianlife avatar volandevovan avatar zaptoinc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helioslauncher's Issues

Move all strings to language file.

Put all strings into a language file. Not sure if we need to do this for console messages.

Language file should be json with the following format:

{
    "ui": {
        "landing": {
            "myProperty": "String"
        }
    }
}

etc.

Language file should also contain urls and all other hardcoded strings which can be changed per server. Considering having a default file so that shared values (name, urls, etc) do not have to be repeated. They would be declared in a parent file and not declared in the child. If they are declared in the child, the parent's values are overriden.

Improve Launch Error Alerts

Typically launch errors just pause the download status. It should rather display the error overlay and show the play option again.

Ideally we should just be able to check the exit code of the forked process and error if it's non-zero.

Is there any way to generate a new distribution.json?

Such as, if I want to update the Forge version:

                {
                    "id": "net.minecraftforge:forge:1.12.2-14.23.5.2797",
                    "name": "Minecraft Forge",
                    "type": "ForgeHosted",
                    "artifact": {
                        "size": 4937218,
                        "MD5": "5320593704af58b3906e7106d27e41c8",
                        "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/forge-1.12.2-14.23.5.2797-universal.jar"
                    },
                    "subModules": [
                        {
                            "id": "net.minecraft:launchwrapper:1.12",
                            "name": "Mojang (LaunchWrapper)",
                            "type": "Library",
                            "artifact": {
                                "size": 32999,
                                "MD5": "934b2d91c7c5be4a49577c9e6b40e8da",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/launchwrapper-1.12.jar"
                            }
                        },
                        {
                            "id": "org.ow2.asm:asm-all:5.2",
                            "name": "Mojang (ASM)",
                            "type": "Library",
                            "artifact": {
                                "size": 247787,
                                "MD5": "f5ad16c7f0338b541978b0430d51dc83",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/asm-all-5.2.jar"
                            }
                        },
                        {
                            "id": "jline:jline:2.13",
                            "name": "Mojang (jline)",
                            "type": "Library",
                            "artifact": {
                                "size": 248566,
                                "MD5": "f251ba666cccb260ff7215b2cbeee8d4",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jline-2.13.jar"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-library:[email protected]",
                            "name": "Minecraft Forge (scala-library)",
                            "type": "Library",
                            "artifact": {
                                "size": 1474672,
                                "MD5": "379c15c4f724421c6d5d7aecedaf87a6",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-library-2.11.1.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-compiler:[email protected]",
                            "name": "Minecraft Forge (scala-compiler)",
                            "type": "Library",
                            "artifact": {
                                "size": 3076920,
                                "MD5": "7d89e952f2d5c74577310cd2c28e3f20",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-compiler-2.11.1.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-actors-migration_2.11:[email protected]",
                            "name": "Minecraft Forge (scala-actors-migration)",
                            "type": "Library",
                            "artifact": {
                                "size": 21324,
                                "MD5": "04e3428b2600ace33c7ae2bf1f6c0a4c",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang.plugins:scala-continuations-library_2.11:[email protected]",
                            "name": "Minecraft Forge (scala-continuations-library)",
                            "type": "Library",
                            "artifact": {
                                "size": 7956,
                                "MD5": "ed9b1d27aba8ac4090a3749c4dfc895a",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:[email protected]",
                            "name": "Minecraft Forge (scala-continuations-plugin)",
                            "type": "Library",
                            "artifact": {
                                "size": 46140,
                                "MD5": "a8232db22a72a981de6b1399eb86dff7",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-parser-combinators_2.11:[email protected]",
                            "name": "Minecraft Forge (scala-parser-combinators)",
                            "type": "Library",
                            "artifact": {
                                "size": 85568,
                                "MD5": "2e50a7df17680daadacca69f07f8a16d",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-reflect:[email protected]",
                            "name": "Minecraft Forge (scala-reflect)",
                            "type": "Library",
                            "artifact": {
                                "size": 1070312,
                                "MD5": "84e5dc81c10e2bd74c579c9d0332fdd9",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-reflect-2.11.1.jar.pack.xz"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-swing_2.11:1.0.1",
                            "name": "Minecraft Forge (scala-swing)",
                            "type": "Library",
                            "artifact": {
                                "size": 736795,
                                "MD5": "1d360289e697022a3f57abaad344b28f",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-swing_2.11-1.0.1.jar"
                            }
                        },
                        {
                            "id": "org.scala-lang:scala-xml_2.11:[email protected]",
                            "name": "Minecraft Forge (scala-xml)",
                            "type": "Library",
                            "artifact": {
                                "size": 217812,
                                "MD5": "cc891b094a4c32dedc56bfefe9b072ff",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-xml_2.11-1.0.2.jar.pack.xz"
                            }
                        },
                        {
                            "id": "com.typesafe.akka:akka-actor_2.11:[email protected]",
                            "name": "Minecraft Forge (akka-actor)",
                            "type": "Library",
                            "artifact": {
                                "size": 746612,
                                "MD5": "25cb22c3078e9fb3f7a861c912924862",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/akka-actor_2.11-2.3.3.jar.pack.xz"
                            }
                        },
                        {
                            "id": "com.typesafe:config:[email protected]",
                            "name": "Minecraft Forge (typesafe-config)",
                            "type": "Library",
                            "artifact": {
                                "size": 56636,
                                "MD5": "10ec4ccabc4e68aac9cf87165ead5d7d",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/config-1.2.1.jar.pack.xz"
                            }
                        },
                        {
                            "id": "lzma:lzma:0.0.1",
                            "name": "Mojang (LZMA)",
                            "type": "Library",
                            "artifact": {
                                "size": 5762,
                                "MD5": "a3e3c3186e41c4a1a3027ba2bb23cdc6",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/lzma-0.0.1.jar"
                            }
                        },
                        {
                            "id": "net.sf.trove4j:trove4j:3.0.3",
                            "name": "Trove4J",
                            "type": "Library",
                            "artifact": {
                                "size": 2523218,
                                "MD5": "8fc4d4e0129244f9fd39650c5f30feb2",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/trove4j-3.0.3.jar"
                            }
                        },
                        {
                            "id": "java3d:vecmath:1.5.2",
                            "name": "Vecmath",
                            "type": "Library",
                            "artifact": {
                                "size": 318956,
                                "MD5": "e5d2b7f46c4800a32f62ce75676a5710",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/vecmath-1.5.2.jar"
                            }
                        },
                        {
                            "id": "net.sf.jopt-simple:jopt-simple:5.0.3",
                            "name": "Jopt-simple",
                            "type": "Library",
                            "artifact": {
                                "size": 78175,
                                "MD5": "0a5ec84e23df9d7cfb4063bc55f2744c",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jopt-simple-5.0.3.jar"
                            }
                        },
                        {
                            "id": "org.apache.maven:maven-artifact:3.5.3",
                            "name": "maven-artifact",
                            "type": "Library",
                            "artifact": {
                                "size": 54961,
                                "MD5": "7741ebf29690ee7d9dde9cf4376347fc",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/maven-artifact-3.5.3.jar"
                            }
                        },
                        {
                            "id": "net.minecraftforge:MercuriusUpdater:1.12.2",
                            "name": "MercuriusUpdater",
                            "type": "Library",
                            "artifact": {
                                "size": 15098,
                                "MD5": "6eb9e61097bee3103a2fdc42746b76a4",
                                "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/MercuriusUpdater-1.12.2.jar"
                            }
                        }
                    ]
                },

I dont know how to change the subModules and the ARTIFACT field.

How to customize this launcher?

Hello. Can someone help me?
I would like to customize this Launcher which is excellent but I don't understand how to do it.
Thanks in advance for your answer.
Have a good day.
GeekCorner

Break up AssetGuard class into several classes.

Currently contains too many functions for too many things and is hard to organize.

  • Move Java related validations to their own class.
  • Move general utilities to their own class.
  • Store important data as state variables.

Binary discrepancy between expected input claas aad and actual class

I tried on making my own instance of the HeliosLauncher for my own Modpack (with self hosted Jar Files; updated all checksums and sizes) however I get those two errors:

[Minecraft] [19:17:30] [main/FATAL]: There is a binary discrepancy between the expected input class aad (aad) and the actual class. Checksum on disk is f4e77106, in patch 5753cef1. Things are probably about to go very wrong. Did you put something into the jar file?

[Minecraft] [19:17:30] [main/FATAL]: The game is going to exit, because this is a critical error, and it is very improbable that the modded game will work, please obtain clean jar files.

How can I fix this or at least get some more information to fix this issue more easily?

Add error handling for corrupted launch-wrapper.jar

For some reason, some antivirus software blocks launch-wrapper.jar from being downloaded. We should have an error overlay which detects this and instructs the user on how to resolve it.

The overlay should trigger when one of the following is true.

AssetExec outputs the following (without bye count or version). Use generic regex for matching.

landing.js:464 [AEx] WARN: Got 186 bytes for net.minecraft:launchwrapper:1.12: Expected 32999
landing.js:468 [AEx] Hashes do not match, net.minecraft:launchwrapper:1.12 may be corrupted.

The game outputs the following through stderr.

Error: Could not find or load main class net.minecraft.launchwrapper.Launch

The error overlay should inform the user that we were unable to download all files due to excessive antivirus protection (flase positive). In order to fix, they will need to turn off their antivirus or add exemptions for mc.westeroscraft.com.

Possibily include a link to the following support thread.
https://westeroscraft.com/threads/win10-java-1-8-0_171-westeroscraft-launcher-open-net-minecract-launchwrapper-launch.1311/


Obviously we want to correct this issue with the antivirus software, but until we do an overlay will eliminate user-end confusion.

JRE/JDK8 downloads are broken.

Oracle has put JRE/JDK 8 downloads behind logins. Automatic downloads from this source is no longer possible. Possible solution would be to download using OpenJDK. This should be fine for the latest versions of Java, it is unclear if OpenJDK has an available implementation for Java 8. The license for Java 8 has changed and does not permit production use. This shouldn't be an issue since we are installing it as a courtesy to the user (who would otherwise need to install it manually) for their own personal use.

Downloads for JRE 8 installers are still available here https://www.java.com/en/download/manual.jsp, however the tar.gz versions are not.

Forge Versions

Doesn't work on any Forge versions older than 1.9.

It's not the Forge version.json, something is malformed and incorrect in your code somewhere. But there is no logging for this aspect of the script.

Verified working 1.9+ Forge
Verified BROKEN: Anything under 1.9

Seems like a TON of code to not work any variation or object key. You must be using string or something .

Missing License

Without a License we are not permitted to modify or help in the developement in the code.
If this is a mistake please add a License file for it!

Disable Dropdown mod function?

Hello.
I would like to deactivate the Mod Dropdown function. How to do it?
Thanks in advance for your answer.
Have a good day.
GeekCorner

Add Shaders Settings

Add minimal shaders options to the settings UI. For example, allow users to select a specific shaderpack through the launcher rather than changing it ingame (less lag).

Maybe add a few other common options.

My launcher doesn't want to update

Hello, I wanted to know if you knew where the problem can come from, my launcher detects the update, says "downloading .." and remains blocked in this place.

Basically, it is 1.0.0, it detects version 1.0.1 on my github but does not download it ....

NPM Install Problems

npm ERR! [email protected] preinstall: node install.js --preinstall`` is the NPM as it states in your @readme.md page once the files are downloaded. then run npm install.

Here is my Logfile.
0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'i', 1 verbose cli 'sodium', 1 verbose cli '--preinstall', 1 verbose cli '-g' ] 2 info using [email protected] 3 info using [email protected] 4 verbose npm-session 054a677b78577ab6 5 silly install loadCurrentTree 6 silly install readGlobalPackageData 7 http fetch GET 200 https://registry.npmjs.org/sodium 30ms (from cache) 8 silly pacote tag manifest for sodium@latest fetched in 68ms 9 timing stage:loadCurrentTree Completed in 117ms 10 silly install loadIdealTree 11 silly install cloneCurrentTreeToIdealTree 12 timing stage:loadIdealTree:cloneCurrentTree Completed in 0ms 13 silly install loadShrinkwrap 14 timing stage:loadIdealTree:loadShrinkwrap Completed in 2ms 15 silly install loadAllDepsIntoIdealTree 16 silly resolveWithNewModule [email protected] checking installable status 17 http fetch GET 200 https://registry.npmjs.org/node-addon-api 13ms (from cache) 18 silly pacote range manifest for node-addon-api@* fetched in 16ms 19 silly resolveWithNewModule [email protected] checking installable status 20 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 26ms 21 timing stage:loadIdealTree Completed in 29ms 22 silly currentTree npm 23 silly idealTree npm 23 silly idealTree -- [email protected]
23 silly idealTree -- [email protected] 24 silly install generateActionsToTake 25 timing stage:generateActionsToTake Completed in 6ms 26 silly diffTrees action count 2 27 silly diffTrees add [email protected] 28 silly diffTrees add [email protected] 29 silly decomposeActions action count 16 30 silly decomposeActions fetch [email protected] 31 silly decomposeActions extract [email protected] 32 silly decomposeActions preinstall [email protected] 33 silly decomposeActions build [email protected] 34 silly decomposeActions install [email protected] 35 silly decomposeActions postinstall [email protected] 36 silly decomposeActions finalize [email protected] 37 silly decomposeActions refresh-package-json [email protected] 38 silly decomposeActions fetch [email protected] 39 silly decomposeActions extract [email protected] 40 silly decomposeActions preinstall [email protected] 41 silly decomposeActions build [email protected] 42 silly decomposeActions install [email protected] 43 silly decomposeActions postinstall [email protected] 44 silly decomposeActions finalize [email protected] 45 silly decomposeActions refresh-package-json [email protected] 46 silly install executeActions 47 silly doSerial global-install 16 48 verbose correctMkdir C:\Users\nanob\AppData\Roaming\npm-cache\_locks correctMkdir not in flight; initializing 49 verbose lock using C:\Users\nanob\AppData\Roaming\npm-cache\_locks\staging-c4c8c3742a8746b1.lock for C:\Users\nanob\AppData\Roaming\npm\node_modules\.staging 50 silly doParallel extract 2 51 silly extract [email protected] 52 silly extract [email protected] 53 silly tarball trying node-addon-api@* by hash: sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA== 54 silly tarball trying sodium@latest by hash: sha512-IsTwTJeoNBU97km3XkrbCGC/n/9aUQejgD3QPr2YY2gtbSPru3TI6nhCqgoez9Mv88frF9oVZS/jrXFbd6WXyA== 55 silly extract node-addon-api@* extracted to C:\Users\nanob\AppData\Roaming\npm\node_modules\.staging\node-addon-api-808edf68 (145ms) 56 silly extract sodium@latest extracted to C:\Users\nanob\AppData\Roaming\npm\node_modules\.staging\sodium-9c2c6e16 (892ms) 57 timing action:extract Completed in 897ms 58 silly doReverseSerial unbuild 16 59 silly doSerial remove 16 60 silly doSerial move 16 61 silly doSerial finalize 16 62 silly finalize C:\Users\nanob\AppData\Roaming\npm\node_modules\sodium\node_modules\node-addon-api 63 silly finalize C:\Users\nanob\AppData\Roaming\npm\node_modules\sodium 64 timing action:finalize Completed in 15ms 65 silly doParallel refresh-package-json 2 66 silly refresh-package-json C:\Users\nanob\AppData\Roaming\npm\node_modules\sodium\node_modules\node-addon-api 67 silly refresh-package-json C:\Users\nanob\AppData\Roaming\npm\node_modules\sodium 68 timing action:refresh-package-json Completed in 293ms 69 silly doParallel preinstall 2 70 silly preinstall [email protected] 71 info lifecycle [email protected]~preinstall: [email protected] 72 silly preinstall [email protected] 73 info lifecycle [email protected]~preinstall: [email protected] 74 verbose lifecycle [email protected]~preinstall: unsafe-perm in lifecycle true 75 verbose lifecycle [email protected]~preinstall: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\nanob\AppData\Roaming\npm\node_modules\sodium\node_modules\.bin;C:\Users\nanob\AppData\Roaming\npm\node_modules\.bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files\PuTTY\;C:\Users\nanob\AppData\Local\Microsoft\WindowsApps;;D:\Programs\Microsoft VS Code\bin;C:\Users\nanob\AppData\Roaming\npm;C:\Program Files\JetBrains\WebStorm 2018.3.5\bin; 76 verbose lifecycle [email protected]~preinstall: CWD: C:\Users\nanob\AppData\Roaming\npm\node_modules\sodium 77 silly lifecycle [email protected]~preinstall: Args: [ '/d /s /c', 'node install.js --preinstall' ] 78 silly lifecycle [email protected]~preinstall: Returned: code: 1 signal: null 79 info lifecycle [email protected]~preinstall: Failed to exec preinstall script 80 timing action:preinstall Completed in 195ms 81 verbose unlock done using C:\Users\nanob\AppData\Roaming\npm-cache\_locks\staging-c4c8c3742a8746b1.lock for C:\Users\nanob\AppData\Roaming\npm\node_modules\.staging 82 timing stage:rollbackFailedOptional Completed in 358ms 83 timing stage:runTopLevelLifecycles Completed in 1923ms 84 verbose stack Error: [email protected] preinstall: node install.js --preinstall84 verbose stack Exit status 1 84 verbose stack at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16) 84 verbose stack at EventEmitter.emit (events.js:197:13) 84 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14) 84 verbose stack at ChildProcess.emit (events.js:197:13) 84 verbose stack at maybeClose (internal/child_process.js:984:16) 84 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5) 85 verbose pkgid [email protected] 86 verbose cwd E:\ElectronLauncher-1.6.0 87 verbose Windows_NT 10.0.17134 88 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i" "sodium" "--preinstall" "-g" 89 verbose node v11.10.1 90 verbose npm v6.7.0 91 error code ELIFECYCLE 92 error errno 1 93 error [email protected] preinstall:node install.js --preinstall93 error Exit status 1 94 error Failed at the [email protected] preinstall script. 94 error This is probably not a problem with npm. There is likely additional logging output above. 95 verbose exit [ 1, true ]

Update error

I modified dev-app-update.yml so the launcher update from my repository. But every time I launch the app I get this error :
A javascript error occurred in the main process Uncaught Exception: Error: net::ERR_HTTP_RESPONSE_CODE_FAILURE

Error in the console :

Initializing auto updater. Checking for update Error: HttpError: 404 Not Found "method: GET url: https://github.com/Escartem/EscartemLauncher/releases/download/v0/latest.yml\n\nPlease double check that your authentication token is correct. Due to security reasons actual status maybe not reported, but 404.\n" Headers: { "cache-control": "no-cache", "content-encoding": "gzip", "content-security-policy": "default-src 'none'; base-uri 'self'; connect-src 'self'; form-action 'self'; img-src 'self' data:; script-src 'self'; style-src 'unsafe-inline'", "content-type": "text/plain; charset=utf-8", "date": "Mon, 11 Nov 2019 15:34:36 GMT", "expect-ct": "max-age=2592000, report-uri=\"https://api.github.com/_private/browser/errors\"", "server": "GitHub.com", "status": "404 Not Found", "strict-transport-security": "max-age=31536000; includeSubdomains; preload", "transfer-encoding": "chunked", "vary": "X-PJAX", "x-content-type-options": "nosniff", "x-frame-options": "deny", "x-github-request-id": "F8D6:33B27:B4253D:10E78C0:5DC97F8B", "x-request-id": "185e71bb-2c6b-4eb5-acd0-ebcef86d85d9", "x-xss-protection": "1; mode=block" } at createHttpError (C:\Users\Username\Desktop\Escartem-Launcher-2\node_modules\builder-util-runtime\out\httpExecutor.js:84:10) at ElectronHttpExecutor.handleResponse (C:\Users\Username\Desktop\Escartem-Launcher-2\node_modules\builder-util-runtime\out\httpExecutor.js:167:14) at ClientRequest.<anonymous> (C:\Users\Username\Desktop\Escartem-Launcher-2\node_modules\builder-util-runtime\out\httpExecutor.js:133:16) at ClientRequest.emit (events.js:210:5) at URLRequest.<anonymous> (electron/js2c/browser_init.js:2376:12) at URLRequest.emit (events.js:210:5)

I only would like to update from github but maybe the error is caused by my repository because when dev-app-update.yml is with the default content it works but when I replace it with my repository it doesn’t work anymore.

Game desinstall when updated

Hi,
When I publish a new release on my Github for the launcher, I successfully have an update in the launcher. All is correct here. But when I try to update the launcher from the launcher, the launcher just desinstall itself and that's all.
I have this on windows 10, and all my users are touched.
Thanks in advance for your help.

Add DEB x64

Hi,

Please add deb x64 is fully supported by electron packager.

Cordialy

Crack mode

Can you add a crack mode in the helios launcher for better huse ?

Add Support for Java 9 (10, 11)+ discovery in preparation for Forge 1.13

Forge 1.13 will support Java 9+, therefore we also need to support installations of these versions for 1.13+. Java 8 will remain our primary candidate for discovery and installation (at least until oracle starts hiding downloads behind a login).

All OS

Ensure the output of java -XshowSettings:properties has not changed. If it has, update accordingly.

Windows

The registry keys for Java 9+ have changed, we will need to add support for them.

MacOS + Linux

Tests need to be run to make sure installation directories and fs structure have not changed.


https://docs.oracle.com/javase/10/install/overview-jdk-10-and-jre-10-installation.htm#JSJIG-GUID-8677A77F-231A-40F7-98B9-1FD0B48C346A


No ETA on this. WesterosCraft is unlikely to update to 1.13 for at least another year, however the launcher should be made compatible as soon as possible. I would like to begin working on this by the time Forge 1.13 is available.

Trying to understand how forge is installed

Hello !

In an objective to use this launcher for one of my projects, I'm trying to understand how Forge is intalled.

... However, after many hours of search through the code, I still don't understand where it's happening.

Could you take 10-15 minutes to explain precisely how your machinery works ? Thank you in advance 😅

Add option to change the data folder location.

Strategy:

  • Remove commonDirectory

  • Remove instanceDirectory

  • Add dataDirectory

    • Save default value if null.
    • Use stored value if not null.
  • Add field to change this under Launcher Settings.

Own yggdrasil auth

Hi,
Is there any way to set my custom yggdrasil's auth server? And can I use the launcher for my own usage?

Users randomly affected by 'Failed to Verify Username'

Random users have been affected by an issue preventing them from connecting to the server. Any attempts to connect are rejected with the reason 'Failed to verify username'.

Temporary Workaround
Log out of your accounts, then relog in.

Why this works: The issue seems to be related to the clientToken, as of v1.5.1 the clientToken will be reset when all accounts are removed.


This issue randomly affects users so our authentication methods do seem to work, however occasionally something goes wrong. Our authentication strategy follows the guidelines laid out on wiki.vg.

  1. Send first auth request without a clientToken. (ie. if current client token is null)
    • Save the clientToken generated by Mojang's server and use this for all subsequent requests.
  2. That's it.

This issue can be manuallt invoked by by sending the incorrect --username argument to the game. As a result, the following has been verifications have been made.

  • The stored displayName matches the current name of the user.
  • All displayNames are alphanumeric with underscores, no encoding issues.
  • Strings are trimmed before being submitted to the game.

As was mentioned earlier, the only thing that fixes the issue is submitting a request with a new clientToken. This leads me to believe that something with the clientToken is somehow causing issues with the returned accessToken. AFAIK, there is no way to detect this error before launching the game. Any issues witht he actual accessToken results in an "Invalid session" error.

Other launchers seem to just use the authlib, and we really aren't doing anything that differently. I've only given other code quick looks, but I honestly see no reason for this issue to happen. At this point, I'm nearly convinced there's some undocumented behavior that we aren't following exactly, Issues are not random, though. There must be some reason select clientTokens randomly fail.

Looking for some insight on this, as debugging it is largely speculative since I have never personally had the issue and we are literally following the documentation (and it usually works).

Example distro json from twitch mod pack.

edit: This author is an asshole. I would suggest a different launcher until he gets some people skills.


My community is interested in using this launcher for our servers. We have a few servers running some modpacks on it and would like to consolidate down to a single launcher.

I've having troubles understanding the documentation around the distribution.json. Do you think you could provide an example with some notes on how you made it if we wanted to use https://www.curseforge.com/minecraft/modpacks/roguelike-adventures-and-dungeons for example? I think that would help a bunch of folks.

Thanks!

[Project] Generalization for Third-Party

This project was built for use on a specific server, as a result there are many hardcoded strings and features. My goal is to generalize the project and allow for easy customization. This is currently in the works, no ETA.

End Goals:

  • Localization of strings to language files.
  • External builder project which will patch all changes to the base project and invoke electron-builder. This will eliminate the need for users to change the base code.
  • Full documentation.
  • Vanilla launch configurations.

This list is not final. No ETA.

Add Non Premium Login For MCL

this is a amazing launcher but can we make users logined to our server without Minecraft Premium Account?
because in our server all players has no premium account from minecraft and they play with Tlauncher that make them login without any user and password of minecraft hub and users can login to the servers just with a NickName
so how can we do login without any check of minecraft hub?

Problem when launching the game

Hi, i have like 10 peoples stuck in this problem, i don't know why

[AEx] Invalid or unsupported zip format. No END header found [LaunchSuite] AssetExec exited with code 1, assuming error.

At first I thought it was my 'distribution.json' problem. However I made tests with these users who had this problem by making them a distribution.json with only Forge hosted at this address: http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2 -14.23.5.2836 / forge-1.12.2-14.23.5.2836-universal.jar
and they still had the same problem without being able to understand why.

Thank you in advance for your help.

This is full log :

C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Preloader] Loading..
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [ConfigManager] Successfully Loaded
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Preloader] Cleaned natives directory.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Landing] Refreshing Mojang Statuses..
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [UICore] UICore Initializing..
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Preloader] Loaded distribution index.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AutoUpdater] Initializing..
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Landing] Refreshing Server Status
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AutoUpdater] Checking for update..
app.ejs:1 A cookie associated with a cross-site resource at https://github.com/ was set without the SameSite attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with SameSite=None and Secure. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:17 [Landing] Object
warn @ C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:17
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AuthManager] Account access token validated.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AutoUpdater] No new update found.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Landing] Launching game..
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\assetguard.js:440 string
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\assetguard.js:390 java.runtime.version = 1.8.0_241-b07
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\assetguard.js:380 sun.arch.data.model = 64
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Landing] Java version meta Object
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [Landing] Refreshing Server Status
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AEx] AssetExec Started
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AEx] [ConfigManager] Successfully Loaded
[DistroManager] Developer mode disabled.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [LaunchSuite] Validated distibution index.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [LaunchSuite] Version data loaded.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:17 [Landing] Object
warn @ C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:17
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [LaunchSuite] Asset Validation Complete
uicore.js:29 Ne regardez pas la console si on ne vous l'a pas demandé
uicore.js:30 If you've been told to paste something here, you're being scammed.
uicore.js:31 Unless you know exactly what you're doing, close this window.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [LaunchSuite] Library validation complete.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [LaunchSuite] File validation complete.
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AEx]
C:\Program Files\MazeLauncher
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AEx] \resources\app.asar\node_modules\adm-zip\zipFile.js:107
throw Utils.Errors.INVALID_FORMAT;
^
I
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AEx] nvalid or unsupported zip format. No END header
C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:9 [AEx] found

C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:25 [LaunchSuite] AssetExec exited with code 1, assuming error.
error @ C:\Program Files\MazeLauncher\resources\app.asar\app\assets\js\loggerutil.js:25
(anonymous) @ landing.js:527
emit @ events.js:210
maybeClose @ internal/child_process.js:1021
ChildProcess._handle.onexit @ internal/child_process.js:283
DevTools failed to parse SourceMap: file:///C:/Program%20Files/MazeLauncher/resources/app.asar/app/uri.all.js.map
DevTools failed to parse SourceMap: file:///C:/Program%20Files/MazeLauncher/resources/app.asar/app/performance-now.js.map

Linux build error

Hi,

I got this error while trying to build the launcher for Linux.
Building for windows works perfectly...

Here are the logs :
pastebin

Thanks for your response !!

Unable to canonicalize path absolute

This Error :
Unable to canonicalize path absolute:C:\Users\Sunloos\AppData\Roaming.summermc\instances\summermc\forgeModList.json relative to C:\Users\Sunloos\AppData\Roaming.summermc\instances\summermc
java.io.IOException: La syntaxe du nom de fichier, de r�pertoire ou de volume est incorrecte
at java.io.WinNTFileSystem.canonicalize0(Native Method) ~[?:1.8.0_231]
at java.io.WinNTFileSystem.canonicalize(Unknown Source) ~[?:1.8.0_231]
at java.io.File.getCanonicalPath(Unknown Source) ~[?:1.8.0_231]
at java.io.File.getCanonicalFile(Unknown Source) ~[?:1.8.0_231]
at cpw.mods.fml.relauncher.ModListHelper.parseListFile(ModListHelper.java:51) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.relauncher.ModListHelper.parseModList(ModListHelper.java:35) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.relauncher.CoreModManager.discoverCoreMods(CoreModManager.java:227) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:221) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126) [forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:115) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]

I can't find any solution

Why the mods aren't running?

Hello.
The launcher is very good but I have a difficulty. I added 2 mods in my file "distribution.json"
Everything is fine, everything is downloading, but when Minecraft launches, the 2 additional mods do not activate. Nothing in the logs. Do you have an idea ?
Thanks in advance for your answer!
Have a good day !
GeekCorner

Developer Mode - Stuck on loadingContent

The Launcher sometimes stuck in the loadingContent view and there is no error in the console and the network tab don't show anything special.

Sometimes is loading correct and sometimes not.

[Preloader] Loading..
C:\Users\x\Documents\HeliosOrg\app\assets\js\loggerutil.js:9 [ConfigManager] Successfully Loaded
C:\Users\x\Documents\HeliosOrg\app\assets\js\loggerutil.js:9 [Preloader] Cleaned natives directory.
C:\Users\x\Documents\HeliosOrg\app\assets\js\loggerutil.js:9 [Preloader] Loaded distribution index.
C:\Users\x\Documents\HeliosOrg\app\assets\js\loggerutil.js:9 [Landing] Refreshing Mojang Statuses..
C:\Users\x\Documents\HeliosOrg\app\assets\js\loggerutil.js:9 [UICore] UICore Initializing..

grafik

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.