Commit Graph

40 Commits (58e68c116c001ee36b8f504013f866d4b12d0db9)

Author SHA1 Message Date
Daniel Scalzi 58e68c116c
Microsoft Authentication (#216) 2022-02-11 19:51:28 -05:00
Daniel Scalzi cb8d1bb00f
Electron 12, Node 14, dependency upgrade. 2021-03-07 11:17:23 -05: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 644a32de37
Start removing specific branding. 2019-03-06 00:37:31 -05:00
Daniel Scalzi 90651d4fbe
Reset clientToken if all accounts are removed. 2019-01-20 22:29:05 -05:00
Daniel Scalzi de15440e6d
Added option to change data folder location. (#17)
Removed commonDirectory.
Removed instanceDirectory.
Added dataDirectory. The common and instance directories are now resolved from this.
The config.json and distribution.json are now stored in Electron's data folder (app.getPath('userData')).
Users can edit the dataDirectory under launcher settings.
2019-01-04 14:25:27 -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 a9f12ee329
Fixed 'Failed to verify username.'
Send first request without clientToken, store the returned clientToken, use that for subsequent requests. Dont generate random UUID for clientToken, it can sometimes be 'bad'.
Removed dependency 'uuid'.
Updated 'electron-builder'.
2018-11-04 02:03:55 -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 db5653a7b7
Added additional fix for 'Failed to verify username'.
It seemed that login may also randomly fail if the user had a no-dash uuid stored. Corrected this.
2018-08-24 16:26:50 -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 afe69a21c6
Small changes and cleanup to Java related UI.
The manual installation overlay now links to the Java Management wiki article.
The Available Options for Java 8 href now links to the os-specific page (/windows for windows, /unix for macOS and Linux).
The default config now uses the same value as max ram for min ram.
2018-08-20 04:02:27 -04:00
Daniel Scalzi 4f416220c2
Added failsafe to configuration loading.
If file is malformed or corrupt, generate a fresh configuration file.
2018-08-13 06:31:46 -04: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 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 db7ba0d450
Initial work on Java tab. Added custom range slider.
Also added two more settings tabs. These are experimental and subject to change.
2018-06-11 22:11:05 -04:00
Daniel Scalzi 08eb04775e
Added indication for when there is new news. 2018-06-04 23:08:03 -04:00
Daniel Scalzi 05fe516249
v0.0.1-alpha.10 - Hotfix for startup error. 2018-06-04 20:06:34 -04:00
Daniel Scalzi 50d85d30cc
v0.0.1-alpha.9 - Added option to enable/disable prereleases.
Added option to enable/disable prerelease updates.
Implemented launcher tab on the settings UI, as this is the only current value.
Added semver dependency.
2018-06-04 19:34:47 -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 f4abbef58c
Increasing version, various small fixes.
Fixed launcher.js not checking the correct return value when verifying the configured Java executable.
Removed debug logging from configmanager.js.
Updated dependencies.
2018-05-15 06:07:28 -04:00
Daniel Scalzi 54e3861ba8
Fixing linux data directory. 2018-05-14 22:33:38 -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 f1a98f2d45
Added mojang account validation UI.
Other minor fixes included. Bumped version from dev to alpha. Testing to begin soon.
2018-05-09 22:23:37 -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 8d682b15b3
Added remove account function to config manager. 2018-04-08 20:56:44 -04:00
Daniel Scalzi 0a79634b8a
Implemented Java validations within the UI.
When a user attemps to launch, the configured Java executable will be validated. If it is invalid, we will look for a valid installation. If no valid installation is found, the user will be prompted with an option to install Java. An option to decline needs to be added. If they choose to install, it will download, extract, and update the executable in the config. The game will then be launched.

Also added progress tracking for asset validations, as they can potentially take a bit longer. Showing progress assures the user that the program isn't stuck or broken.
2018-04-07 18:06:49 -04:00
Daniel Scalzi ec9e95c130
Working on binding each view together.
Separate views are stored in an ejs file. When the app starts, each file will be loaded, with the DOM elements hidden. Based on the state of the application, a specific view will be fadded in. Switching between views will use this principle.

Moved contents of index.ejs to landing.ejs to make it compatible with the new format. As a result, index.ejs is deprecated and will be removed once it is no longer needed for reference.
2018-04-02 16:05:48 -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 1d10b0209a Minor fix to mojang api wrapper, removing default option on client token configuration, updating logo to scaled version. 2018-01-18 23:41:03 -05: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 a4012458be Further work on discord rich presence. Current implementation is untested. 2017-12-03 02:13:42 -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 4c2c46f535 Beginning work on configuration management, updates to UI to prevent unresponsive behavior, bug fixes.. 2017-11-30 01:40:56 -05:00
Daniel Scalzi dd9e1418c8 Added progress tracking to landing page. Fixed exclusions when extracting native files, fixed minor issue with config manager, optimizations and improvements to assetguard. 2017-11-27 04:31:54 -05:00
Daniel Scalzi 5352239f91 Minor fixes, beginning work on configuration system. 2017-11-22 05:48:40 -05:00