Commit Graph

53 Commits (f6f8a7ed3c287fbfba0cbdf9545d0db36e320304)

Author SHA1 Message Date
Daniel Scalzi f6f8a7ed3c
Add version.jar to cp until 1.17. 2022-04-03 17:33:18 -04:00
Daniel Scalzi 168b4431ae
Patches to get 1.17 working, need to revise into real solutions. 2022-04-03 17:33:18 -04:00
Daniel Scalzi 4e2c9ce3ec
Set user type to msa for msft accounts. 2022-04-03 17:08:55 -04:00
Daniel Scalzi cc86f2a257
Use --fml.modLists instead of --fml.mods to avoid potential cli length limit issues. 2020-09-05 22:43:09 -04:00
Daniel Scalzi bec1385c55
Fix bug in autoconnect check. 2020-06-29 10:31:05 -04:00
Daniel Scalzi f795b28d23
Fix launching on 1.8.9 and 1.9.4 (resolves #79). 2020-06-23 15:03:17 -04:00
Daniel Scalzi b09cd2ef28
Re-enable --server and --port on patched 1.15.2 builds. (#74) 2020-06-12 19:56:57 -04:00
Daniel Scalzi 1bdb413ab5
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.
2020-06-09 13:10:06 -04:00
Daniel Scalzi 71b25d3e5c
Minor fixes and improvements.
Fixed issue with passing fullscreen argment to 1.13+, although it doesnt seem to be working well clientside.
Improved the forge version check logic.
Fixed launch area toggling and added a min linger time so that the transition doesnt look abrupt.
Upgraded dependencies.
2020-06-08 14:00:07 -04:00
Daniel Scalzi 1a2e9f3be4
Ensure libs are properly added to classpath as .jar 2020-03-08 21:10:43 -04:00
Daniel Scalzi 96db607912
Fix mod loading for 1.7.10.
The launcher was never intended for use with 1.7.10, however since people
do use it for this version I generated a 1.7.10 distribution with Nebula
and tested it out. Several bugs were identified and fixed.

* Don't prefix modList paths with absolute on 1.7.10.
* Allow library overrides.

Forge 1.7.10 updates mojang's guava version. As such the library
resolver now supports overriding mojang libraries through the
distribution.json.

Fixes #45.
2020-01-18 12:02:00 -05:00
Daniel Scalzi 19ee187f10
Electron v7, dependency upgrade, lint. 2019-11-16 17:17:55 -05:00
Oskar Stawiarski 9761c1d9d0 Older forge versions don't support lenient json. (#40) 2019-11-16 17:02:00 -05:00
Daniel Scalzi cbc8b07467 Rebrand to Helios Launcher. 2019-09-05 16:08:47 -04:00
Daniel Scalzi 644a32de37
Start removing specific branding. 2019-03-06 00:37:31 -05:00
Daniel Scalzi 5c0a293390
Break up assetguard. 2019-03-05 23:05:01 -05:00
Daniel Scalzi e08c3a903a
Add support for mod loading on Forge 1.13. 2019-02-18 18:17:31 -05:00
Daniel Scalzi 81367bc619
1.13 Update Phase 1
Mojang has changed its manifest format for 1.13.
Forge is no longer a universal jar, it requires more hosted files, all of which are generated by the installer.
We can no longer extract the version manifest from forge's jar and have to include it in the distribution.
This commit adds support for launching forge only, mods are currently not supported from the distribution.
Handling of 1.13 launches are subject to change as we move forward.
2019-02-18 06:31:01 -05:00
Daniel Scalzi c834ca971a
Order the launch arguments better.
Classpath -> JVM -> Main Class -> Liteloader -> Minecraft ->
Client Options -> Mod list
2019-02-14 20:22:12 -05:00
Daniel Scalzi d2982ca387
v1.4.1 - Forge 1.12.2 (4/10) + requires absolute: prefix. 2018-12-31 11:27:40 -05:00
Daniel Scalzi 001a2cbe81
v1.2.1 - Fixed issue w/ native lib parsing.
In 1.12.2, some natives do not provide a rules
object and instead just omit the classifier
from the natives object. We now check for that.

Updated electron to v3.0.12.
2018-12-17 00:11:23 -05:00
Daniel Scalzi d779eacf61
Added drag/drop functionality to the add mods button.
You can now drag one or more files onto the add mods button in order to add them to the mods directory. Only jar, litemod, and zip files will be moved.
Changed eslint to use a single configuration file, with overrides for the UI scripts.
Now using fs-extra, replace usages of rimraf and mkdirp with fs-extra functions.
2018-12-01 08:20:42 -05:00
Daniel Scalzi bcd8082afe
Fix native lib extraction for old MC versions.
#18
2018-11-18 04:33:59 -05:00
Daniel Scalzi cf7e9adb89
v1.0.0-beta.6 - Revert UUID related change, updated deps. 2018-08-29 13:24:48 -04:00
Daniel Scalzi 70b83a6397
v1.0.0-beta.5 - Fixed Mojang issue resulting in "Failed to verify username" for specific users.
The Mojang API may randomly return extraneous spaces around the displayName and username fields. Launching the game with these values will result in the aforementioned error. The launcher now trims these values as a precautionary measure.
2018-08-24 15:17:32 -04:00
Daniel Scalzi 0346597afe
Wrap calls to console.log through LoggerUtil (prefixes). 2018-08-22 14:21:49 -04:00
Daniel Scalzi 845721a830
Encode game stderr stream in utf-8. Updated deps.
semver@5.5.1
esline@5.4.0
2018-08-19 00:42:52 -04:00
Daniel Scalzi 50317c3fc2
v1.0.0-beta.2
Fixed bug which prevented mods with declared extensions in their identifiers from being loaded.
Synced distribution.json with remote.
Updated electron-builder.
Updated readme to include information on beta testing.
2018-08-15 09:17:59 -04:00
Daniel Scalzi f1d89c0e6b
Fixed game status monitoring.
Switched to version-safe regex for monitoring game launch progress.
Game output is now encoded in utf-8 to avoid multiple conversions from Uint8Array to String.
Note that game output has line breaks. Trim any content before testing it against regular expressions.
2018-08-13 08:25:25 -04:00
Daniel Scalzi 0c98cc2447
Added support for optional submods of required mods. 2018-07-29 16:32:41 +02:00
Daniel Scalzi 810e81521c
Added eslint. To lint, npm run lint.
Linted the entire project. Using different rules for the script files
as there are a lot of undefined variables just because of the way the
DOM's global scope works.

Mostly just code cleanup, however the linter did catch a minor bug with
a settings regex. That has been corrected.
2018-07-22 13:31:15 -04:00
Daniel Scalzi 7dcce68455
Updated Distribution Index spec and impl.
Added distromanager.js to represent distro elements.
Moved all distro refresh code to distromanager.js.
Overhauled assetexec.js.
Overhauled handling of assetexec.js output in landing.js.
Overhauled events emitted by assetguard.js.
Improved doenload processing in assetguard.
Updated discord-rpc to v3.0.0.
Replaced westeroscraft.json with distribution.json.
Use npm in travis for windows + linux.
Remove file extension from imports.
Added liteloader + macromod + shaders to distribution.json.
2018-07-22 11:40:15 -04:00
Daniel Scalzi 8f172a41e6
Documented new functions in processbuilder. Minor fixes.
Recursive call now uses the proper parameter (.mods).
Submodules are only parsed if the parent mod is enabled for launch.
2018-06-30 03:16:57 -04:00
Daniel Scalzi aa0e1a20ca
Added initial support of liteloader + optional submodules.
Liteloader is loaded as a library, with special launch conditions being executed when it is enabled. Litemods are constructed into a mod list and passed to liteloader via the --modRepo argument.

The launcher now supports optional submodules. These are parsed recursively, there is no depth limit. Typically the depth will be only 2 as litemods are optional submoduless of liteloader.
2018-06-23 21:03:49 -04:00
Daniel Scalzi 145a2fe77b
Added initial support for optional mods.
Optional mods are stored by ID in the configuration. Their enabled state is stored here. The mod configurations are updated each time the distro index is refreshed. Configurations are stored by server id. If the id no longer exists (changed/removed), the mod configuration is removed. If new optional mods are added, they are added to the configuration. If they are removed, they are removed from the configuration.

Currently only top level optional mods are supported.
2018-06-23 15:17:26 -04:00
Daniel Scalzi 790a3e0e8b
v0.0.1-alpha.8 - Implemented Minecraft Settings Tab.
Implemented minecraft settings tab.
Updated distro index documentation to reflext the file system overhaul.
2018-06-04 16:28:17 -04:00
Daniel Scalzi 0cc861f614
Overhauling file system structure.
Common files such as assets, libraries, and mods have been externalized into a 'common' folder. Each server now has its own instance folder to allow saving per version files. This resolves issues with resourcepacks and mod configurations being overriden, and still preserves our optimizations in storing libraries and mods maven style.
2018-06-04 00:17:20 -04:00
Daniel Scalzi d33476bcf9
ConfigManager improvements. v0.0.1-alpha.1
Added new configuration option, launchDetached.
Added validation function to ConfigManager to add missing keys (due to updates).
Updated westeroscraft.json
Game process can now be detached from the launcher.
2018-05-10 00:01:38 -04:00
Daniel Scalzi 6e8d4fe9bc
Fixed old bug with argument splicing in processbuilder. 2018-04-15 01:26:40 -04:00
Daniel Scalzi 9448b9b5a3
Add additional arguments for mac. 2018-04-15 00:49:20 -04:00
Daniel Scalzi 2f899822b5
Fixing classpath argument for Unix-like systems (macOS, Linux).
Game should now launch on these two systems.
2018-04-15 00:21:26 -04:00
Daniel Scalzi be39d60705
Native files are now stored in the OS temp directory.
Temp folder is deleted when minecraft is closed. If the Node.js process ends abruptly, the folder will not delete. As a dirty way to counter this, the directory we extract native files to is cleaned in the preloader. Maybe we'll come up with a more elegant solution in the future.
2018-04-15 00:00:08 -04:00
Daniel Scalzi 5475ac0c69
Added function to remove an authenticated account to authmanager.js. 2018-04-14 22:43:58 -04:00
Daniel Scalzi 13cc555afd
Game now saves to OS-specific data directory. Fixed issue where logs folder did not save to correct location. Fixed issue with authentication code. Continuing work on Java validation code. 2018-03-31 13:05:05 -04:00
Daniel Scalzi 4fd202d180
Cleaning up jsdocs to be more aligned with the standard. 2018-03-28 16:42:10 -04:00
Daniel Scalzi 5afd9815a5 Switches to use internal mojang accessors and removed 'mojang' as a dependency. First attempt at authentication storage, system will be refinded as UI is implemented further. All auth interactions should be made throught authmanager.js 2017-12-03 08:12:55 -05:00
Daniel Scalzi 98684a9c1f Removed enumerator, converting to static Config Manager (fixes so many issues), constants will now be stored by config manager in an internal object. 2017-12-03 00:38:22 -05:00
Daniel Scalzi 0dde4bce42 Changes to prevent cyclic dependencies. 2017-12-02 22:41:47 -05:00
Daniel Scalzi 52ab270ce3 Large update to AssetGuard to make the module purely object based. This fixed several issues which were present with the static implementation and seems to have increased performance. Several other bugs related to the front-end scripts have been fixed. 2017-11-30 03:00:06 -05:00
Daniel Scalzi 4c2c46f535 Beginning work on configuration management, updates to UI to prevent unresponsive behavior, bug fixes.. 2017-11-30 01:40:56 -05:00