Commit Graph

387 Commits

Author SHA1 Message Date
Daniel Scalzi
dc00e6104b
Initial work on distro load logic.
Added new FATAL view to display information when a distro load fails. This replaces
the overlay behavior used on v1. The fatal view will eventually do an update check
and allow the user to update the app. This solves a potential issue of a user using
a very outdated launcher version, and the distro failing as a result.

Added new wrapper classes to store the distribution in the redux store.
2020-08-29 01:12:39 -04:00
Daniel Scalzi
dbc49f51dd
Make sure to return on rejection. 2020-08-28 17:39:29 -04:00
Daniel Scalzi
e76eb91ac9
Test improvements.
Clean mojang test directory.
Added test for server status.
Disable winston in test mode.
2020-08-27 21:55:24 -04:00
Daniel Scalzi
c7b95f3719
Clean up structure of Mojang API/Util files. 2020-08-27 21:27:56 -04:00
Daniel Scalzi
571b788e25
A better solution to read long data.
Assign a once listener to pick up the initial data including the packet type and length.
Assign a subsequent listener to read the remainder of the data.
2020-08-27 21:08:53 -04:00
Daniel Scalzi
27f95235f8
Working fix for socket read for large response. Going to try another fix. 2020-08-27 20:45:11 -04:00
Daniel Scalzi
3838729da7
Add API to get server status information. 2020-08-27 19:37:41 -04:00
Daniel Scalzi
feb9b98b2a
Add mojang statuses to landing component. 2020-08-24 21:26:24 -04:00
Daniel Scalzi
bc43d842e3
Pull out common got error handling for generic use. Initial distribution loading (no application state storage yet). 2020-08-24 20:18:08 -04:00
Daniel Scalzi
15fd2c842a
Fix tests with tsconfig-paths. 2020-07-15 23:54:35 -04:00
Daniel Scalzi
53d5599545
Get working on Electron 9, full dependency refresh. 2020-07-15 21:07:40 -04:00
Daniel Scalzi
10c88aa7d0
Dependency upgrade. 2020-07-15 20:35:06 -04:00
Daniel Scalzi
c670b7d88d
Initial work on overlay system.
The overlay display is driven by an array in the global redux store. Overlay
content is now queueabale, so alerts can be asynchronously dispatched without
interferring with existing displayed content.

The server/account select overlay components are yet to be completed. Some usability
features also need to be implemented, such as keybinds for the acknowledge/dismiss
buttons.
2020-06-12 20:58:07 -04:00
Daniel Scalzi
691cf937fc
Added landing view structure and styles.
The landing view will be broken up into subcomponents.
Updated dependencies.
2020-06-11 16:25:56 -04:00
Daniel Scalzi
33e454e529
Use rem on login view. 2020-05-27 16:54:52 -04:00
Daniel Scalzi
ab51b84bea
Use rem for loading spinner, fix frame bug when loader is scaled up. 2020-05-26 23:25:02 -04:00
Daniel Scalzi
d9394432d2
Add loading UI, add view transition animations.
Framework is in place to run initial load on app startup. These routines will be called
in Application's initLoad function. The loader will run for a min of 800ms to prevent it
from looking odd on the UI. This can be reduced/changed later if this turns out to not be
a concern.

Added an app reducer to redux. The loading state was initially going to be there. On further
inspection, it seemed better to have it as a state variable in the Application component. It
remains in the store for now as an example. The pattern is valid and will be used for other
proprties.

Added animations for view transitions. On v1, this was done with jquery. Here, we are using
react-transition-group. Got it working with a clever trick to store a workingView and use that
for rendering. When the currentView is changed by the redux store, the fade out transition will
start. Once the fade out completes, the workingView reference will be updated to the new view,
triggering the fade in.
2020-05-26 01:50:55 -04:00
Daniel Scalzi
18fbfe4289
Move backgrounds to static, get dynamic backgrounds to work.
TODO: Add loading spinner and make background load ease in.
2020-05-25 17:13:59 -04:00
Daniel Scalzi
7ef375db7a
Bring back eslint. 2020-05-24 19:11:34 -04:00
Daniel Scalzi
dc7386f19d
Remove some old code, apply fix from master.
Reference to the old code will be made from the master branch.
2020-05-24 15:50:23 -04:00
Daniel Scalzi
9a67087766
Move code to common.
Renderer will be only react/redux code.
Common code can be used in both main and renderer.
2020-05-24 15:44:16 -04:00
Daniel Scalzi
5944f70a2a
Add login behavior up to loading state.
The remaining functionality depends on implementing a new AuthManager and overlay system.
2020-05-23 03:31:26 -04:00
Daniel Scalzi
c718cc741a Add functionality to LoginField component.
State management and error detection/animation added.
TBD: Connect fields to parent component.
2020-05-23 02:03:20 -04:00
Daniel Scalzi
f1a7e39e13
Initial work on Login view, fixed some style issues.
So far, the basic structure of the Login view has been imported. The css
properties need to be converted to use rem. The component also needs to
be made functional and reactive.

Planning on using property callbacks for Child -> Parent communication.
2020-05-22 22:41:47 -04:00
Daniel Scalzi
a9d6f2021d
Use rem for sizing instead of px. Will enable scalability.
Applied rem changes to Welcome.css.
Updated dependencies.
2020-05-22 21:05:29 -04:00
Daniel Scalzi
af6066115c
Dependency Upgrade. 2020-05-11 19:03:28 -04:00
Daniel Scalzi
3fcfa492af
Initial redux setup. 2020-05-06 07:35:25 -04:00
Daniel Scalzi
28f78f719e
Updated dependencies, added Welcome component.
The CSS needs to be redone and made more modular. Measurements should not be done in px, and switched to em/rem.
Redux needs to be setup for state management.
2020-05-05 18:39:31 -04:00
Daniel Scalzi
c9147d86a8
Added Index Processor for Mojang Indices.
Also added test for the mojang processor.
TBD: Progress System for Validations.
TBD: Processor for Distribution.json.
2020-04-18 04:59:35 -04:00
Daniel Scalzi
8764c52fcc
Use Got instead of Axios.
The lack of maintainers on Axios is worrying. Got seems like a more solid option.
2020-04-17 23:50:18 -04:00
Daniel Scalzi
75a7e0f713
File structure refactor, move old files to old directory.
Removed legacy config path support in ConfigManager.
Moved model files to corresponding subdirectories, rather than being in
an uber model directory.
2020-04-13 22:51:32 -04:00
Daniel Scalzi
9097bafb5d
Added Axios + Logging & Testing Frameworks.
Rewrote mojang.ts to use axios. This included creating a more robust error handling
system and response payload structure. Also included unit tests.

Added axios (HTTP Library to replace request)
Added winston (Logging Framework)
Added mocha (Testing Framework)
Added chai (assertion library)
Added nock (mock server)
2020-04-13 22:21:48 -04:00
Daniel Scalzi
761a46060b
Add global styles, move fonts.
Need to figure out if the path trick to load fonts from css will work in prod.
May need to load fonts from tsx file and use __static.
2020-04-13 06:23:27 -04:00
Daniel Scalzi
3cde9ef75e
Simplify structure.
Now using electron-webpack.
Additional frameworks will be added down the line as this setup becomes
more comfortable.
2020-04-13 05:56:26 -04:00
Daniel Scalzi
b9536ed014
Initial work on react.
Far from done.
Far from working.
Requires rewrite of UI logic using react patterns.
2020-03-08 20:40:37 -04:00
Daniel Scalzi
9cb10b70af
Working on typescript conversion, not functional yet. 2020-01-26 01:12:48 -05: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
1110119df0
Dep upgrade, minor tweaks. 2020-01-17 04:42:16 -05:00
Daniel Scalzi
4f504cd470
Updated dependencies, deprecated methods. 2020-01-01 15:37:07 -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
8b04f476ee Update PackXZExtract to v1.1.0 2019-10-19 15:20:42 -04:00
Daniel Scalzi
90cd2c4614 v1.7.0 2019-10-17 19:14:15 -04:00
Daniel Scalzi
da706813ba Dependency Upgrade. 2019-09-23 14:13:36 -04:00
Daniel Scalzi
d087ca5a60 Add updated 1.13 configuration example. 2019-09-22 19:20:54 -04:00
Daniel Scalzi
28631610ab Update loading spinner images. 2019-09-06 02:18:16 -04:00
Daniel Scalzi
cbc8b07467 Rebrand to Helios Launcher. 2019-09-05 16:08:47 -04:00
Daniel Scalzi
590cefc5d4 Electron 6, dependency upgrade. 2019-08-26 17:57:27 -04:00
Daniel Scalzi
0194c2b6f1 Node v12, Dependency Upgrade. 2019-07-11 20:51:58 -04:00
Daniel Scalzi
d94365f535
Use OpenJDK downloads instead of Oracle (no longer possible).
Makes use of https://adoptopenjdk.net/, star them on GitHub, great product.
2019-06-02 18:11:39 -04:00