Commit Graph

188 Commits

Author SHA1 Message Date
Daniel Scalzi
ee55446cd6
Temporary fix to DiscordRPC not shutting down properly.
Something must have changed on discord's end, as our previous solution is no longer working. The latest changes to the module include a clearActivity() method, however it is not available on npm. Until it is, we are using the implementation directly.
2018-05-29 23:42:27 -04:00
Daniel Scalzi
daa6faac86
v0.0.1-alpha.6
Fixed AuthManager sending incorrect client token to the auth endpoint.
Fixed minor issues with the validate selected function.
Fixed minor issue related to UI transitions.
Added account validations on startup and when account is switched.
Updated dependencies.
2018-05-29 21:47:55 -04:00
Daniel Scalzi
e9e2ec162a
Added settings container, updated dependencies. 2018-05-22 22:34:35 -04:00
Daniel Scalzi
a67dac23cf
Fixes related to offline startup.
Fixed incorrect function name for local distro index loading.
Fixed mojang tooltip not showing statuses when offline.
Added timeout of 2500ms to news loading, remote distro index retrieval, and mojang status loading.
Updates async to fix lodash vulnerability.
2018-05-22 08:41:22 -04:00
Daniel Scalzi
ba916aa953
v0.0.1-alpha.5
Added tooltip UI which shows the status of each Mojang service.
Updated dependencies.
2018-05-17 03:11:44 -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
71cbd109c4
Various fixes.
Fixed issue where news button could not be tabbed to when news UI is active.
Fixed incorrect java version sorting (now behaves as intended).
2018-05-15 02:30:26 -04:00
Daniel Scalzi
d2c435ce51
Added Java Validations for Linux.
Also abstracted and optimized the common functions for resolving Java between the three supported operating systems.
Changes made to win32 and darwin validations will require testing to ensure everything is functional.
2018-05-15 01:05:10 -04:00
Daniel Scalzi
54e3861ba8
Fixing linux data directory. 2018-05-14 22:33:38 -04:00
Daniel Scalzi
f0a66e7a02
Various fixes for the news UI.
Made the layout for the status container more comprehensive.
Added a spacer to the bottom of news article content.
Disabled tabbing between the landing and news containers.
2018-05-10 05:48:55 -04:00
Daniel Scalzi
848440ed1c
Fixed an issue with registry scan, minor UI changes.
The registry scan function exited early if no Java Development Key was found. This has been corrected by redoing the exit checks.
Social media buttons now lose focus after they are clicked to prevent a sticky appearance.
Changed the load spinner to have the text rotate within the center image.
2018-05-10 04:36:52 -04:00
Daniel Scalzi
f0b21330a0
v0.0.1-alpha.2 Fixed console.debug error. 2018-05-10 00:22:00 -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
15a83a7736
Attempting to make references to the distribution index more streamlined. WIP 2018-05-08 20:10:46 -04:00
Daniel Scalzi
f161e196be
Improving application startup flow.
Major improvements to distribution index loading.
Implemented new transitional UI for startup.
If **no** distribution index is loaded on startup, completion of startup will be prevented and the user will be shown a message displaying the issue.
Launch errors are now shown as overlays.
Many more minor fixes and enhancements.
2018-05-08 06:34:16 -04:00
Daniel Scalzi
cd4f7918c8
Pipe output from forked processes back to parent.
Also cleaned up the code a bit. Switched to use lambda declarations in promises and renamed 'fulfill' to 'resolve', as it should be,
2018-05-07 18:15:59 -04:00
Daniel Scalzi
0c1ebd0ce0
Distribution data is now pulled from our servers. 2018-05-07 01:34:57 -04:00
Daniel Scalzi
40de1e3cd3
Added News UI.
Added News UI and implemented functionality.
Removed westeroscraft.xml as we don't need to cache it.
Updated westeroscraft.json.
Updated Electron to v2.0.0
2018-05-06 21:45:20 -04:00
Daniel Scalzi
252b82a944
Enhancing social media button responsiveness (focus styles). 2018-04-29 22:36:28 -04:00
Daniel Scalzi
39fd7e19ef
Make menu button slide up (experimental). Disable tabindex on overlay. 2018-04-29 18:39:57 -04:00
Daniel Scalzi
4106b2b069
Many fixes and adjustments to the upper right landing UI.
The user_text span now displays the currently selected account.
2018-04-29 18:05:59 -04:00
Daniel Scalzi
ea758aee1f
Various optimizations related to library extraction.
Updated PackXZExtract to v1.0.1.
If no files are queued for extraction, the step is skipped.
The UI now shows some indication that the extraction is in progress.
2018-04-28 23:34:23 -04:00
Daniel Scalzi
d08cfbf248
Change library extraction to be queue based to ensure it completes. 2018-04-28 20:52:13 -04:00
Daniel Scalzi
0216582827
Application now checks for updates every 30 minutes. 2018-04-28 18:45:19 -04:00
Daniel Scalzi
f1cf433ca8
Fixed issue where extraction library could not be run from asar. 2018-04-28 18:07:39 -04:00
Daniel Scalzi
95afe5c63a
Added basic auto update implementation. 2018-04-28 16:26:38 -04:00
Daniel Scalzi
5b74ecef21
Experimental changes in preparation for auto-update support. 2018-04-28 04:16:09 -04:00
Daniel Scalzi
c6637d18e1
Syncing distro files (Added 1.11.2 + 1.12.2 test servers). 2018-04-27 16:22:46 -04:00
Daniel Scalzi
009a1b58af
Added basic functionality to server selection UI.
The server list is now dynamically generated based on the servers listed in the distribution index. Also, moved to event.key for key bindings as event.keyCode is deprecated.
2018-04-27 00:04:09 -04:00
Daniel Scalzi
5fe43ac8e9
Added basic functionality to server selection UI.
Basic selection and updating of the selected server has been added. There are a few subtle mechanics which need to be added still, such as keybind shortcuts (enter to submit, etc). In addition, functionality still needs to be added to generate the list of servers from the manifest file.

Fixed a minor issue with the login view.
Updated play button styles.
Updated dependencies.
2018-04-26 18:41:26 -04:00
Daniel Scalzi
4b708f59fe
Minor modifications to menu animation. 2018-04-26 04:00:51 -04:00
Daniel Scalzi
22f5eabe49
Experimenting with the menu slide animation. 2018-04-26 03:49:45 -04:00
Daniel Scalzi
6e55442b25
Server selection view can now be opened from the landing view.
The temporary span which displayed the selected server has been changed to a button. Clicking this button will open the server selection view. The server selection view is still pending full implementation.
2018-04-26 02:39:47 -04:00
Daniel Scalzi
4b8133474d
Various changes and improvements.
Added warning message when console is opened, this is in preparation for alpha.
Added a new background image. Restored random backgrounds on launch (for now).
Changed the overlay dismiss/cancel buttons from anchors to buttons.
2018-04-26 02:01:46 -04:00
Daniel Scalzi
2f66d44824
Further organization of the browser scripts.
Moved server selection styles to launcher.css, as they are nearly finished.
Moved overlay convenience functions to overlay.js.
Moved launch area (landing.ejs) convenience functions to landing.js.
Various cleanups and documentation also added.
2018-04-25 20:11:10 -04:00
Daniel Scalzi
92d8a5e254
Disable eval(), its use is not needed and improves security. 2018-04-25 17:51:10 -04:00
Daniel Scalzi
1b38629084
Organizing UI scripts.
Moved landing.ejs specific scripts to a dedicated file. General cleanup for other script files. Need to examine the remaining code in actionbinder.js to determine the most logical place for it.
2018-04-25 17:40:46 -04:00
Daniel Scalzi
4d26298b98
Added Content-Security-Policy to ensure that external scripts cannot be loaded.
Moved inline scripts to their own files. Moved all front-end scripts to /assets/js/scripts.
2018-04-25 17:06:10 -04:00
Daniel Scalzi
f7e24fd092
Removed original server selection implementation. We will be using the overlay. 2018-04-19 01:48:18 -04:00
Daniel Scalzi
9d04eb2227
Tweaking the server selection UI.
Removed divider. Moved star. Changed version tag back to green.
2018-04-18 23:50:26 -04:00
Daniel Scalzi
e994f4c474
Added new server selection UI.
The UI is still being tweaked and modified. Functionality will be added once it is finalized.
2018-04-15 23:06:16 -04:00
Daniel Scalzi
714daace18
Added server status retrieval and implemented it on UI.
The player count on the landing page is now functional. If the server cannot be reached, the label and value will change to SERVER and OFFLINE, respectively. This behavior can be modified.
2018-04-15 22:35:14 -04:00
Daniel Scalzi
8446af4669
Added seven pointed star svgs and test server icon (temp). 2018-04-15 22:31:51 -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
631c3cd6d4
Added option to dismiss Java download prompt.
You will be given an option to install Java manually. Selecting this will bring you to a final prompt which gives some useful information about installing Java and where you can find help. You have two options on this prompt. The first is to simply aknowledge it, which will dismiss it. The second is to go back to the first prompt.
2018-04-14 22:20:59 -04:00
Daniel Scalzi
66a3854a24
Better error handling with Mojang REST api.
Added handling for when there is no internet connection or Mojang's auth server is unreachable to both the login and status modules.
2018-04-14 18:42:45 -04:00
Daniel Scalzi
b5386c0257
Added dynamic frames for darwin + win32.
The darwin frame is the same as the original, however the button behavior is corrected. The win32 frame uses the traditional buttons found on windows. Also added a small logo image to the windows frame. Each frame is dynamically loaded on startup via ejs.

Also disabled the server selection test UI.
2018-04-14 16:54:10 -04:00
Daniel Scalzi
28cd147ca0
Fixing some syntax issues.
It was late, I was tired, this was the result.
2018-04-12 22:40:48 -04:00
Daniel Scalzi
12aa9f9c5b
Removing '/Contents/Home' from Java root on darwin to have the code rely on the resolve executable method. 2018-04-12 22:13:26 -04:00
Daniel Scalzi
fc81016dc6
More updates for Java validations on darwin.
Also, now require version 8u52+, as pack200 algo changed after 8u45.
2018-04-12 21:38:27 -04:00
Daniel Scalzi
2a551f18ba
Fixing default zoom level (darwin). 2018-04-12 18:39:31 -04:00
Daniel Scalzi
f257208e2f
Disable zoom on UI (darwin). 2018-04-12 18:13:09 -04:00
Daniel Scalzi
05ebb80f19
Fixing variable rename typo. 2018-04-12 16:42:26 -04:00
Daniel Scalzi
4eb9d267eb
First attempt at Java validations for darwin (osx). 2018-04-12 16:12:45 -04:00
Daniel Scalzi
40a02726ad
Updated welcome text, testing a potential server selection UI. 2018-04-10 16:35:31 -04:00
Daniel Scalzi
8d682b15b3
Added remove account function to config manager. 2018-04-08 20:56:44 -04:00
Daniel Scalzi
a16a22e2e1
Modifications to welcome view, smoothing welcome transitions.
Disabled clouds on welcome.ejs. Added some welcome text to replace the lorem ipsum. The alignment was also changed from center to justify, to make the UI look sharper. Transitions between each view was changed from 250ms to 500ms.

Removed some testing code from login.ejs.
2018-04-07 19:58:23 -04:00
Daniel Scalzi
5a8ae0485a
Minor fixes for the Java download error overlay. 2018-04-07 18:24:13 -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
9b63d9bb58
Integrating new overlay mechanics with login view.
Removed login.ejs-specific overlay. Removed blur transition and reduced overlay fade from 500ms to 250ms. Minor modification to the overlay css.
2018-04-07 13:29:40 -04:00
Daniel Scalzi
5335e0124b
Further work on overlay mechanism. 2018-04-06 12:33:20 -04:00
Daniel Scalzi
92cb88a23a
Removing deprecated files (javaguard.js, index.ejs). 2018-04-04 15:46:19 -04:00
Daniel Scalzi
5c7e0c3c8a
Various additions and fixes to the launch controller.
Fixed an issue with concurrency when there are no downloads queued on launch. Added support for static function execution in AssetExec. Fixed a binding issue in uicore.js caused by delayed div loading. For now the solution is just hard coding in the value, will probably switch these two a css file later on. Included the launcher's x64 runtime directory in Java scans.
2018-04-02 18:40:32 -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
7fb33c6813
Rough completion of JRE downloads from oracle.
Mojang fallback cannot be implemented due to limitations of decompressing large lzma files in node.js. This can probably be worked around by packaging with some command line binary, but it honestly it not worth it.
2018-03-31 20:45:24 -04:00
Daniel Scalzi
ae387757bc
Discord-rpc has resolved the issue with the timeout function, updating to beta 10. Updating to node.js 8.11.x. 2018-03-31 13:46:52 -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
f8131d9322
First phase of moving Java validation code to assetguard.js
Static utility functions have been moved. Functions which handle Java downloads will be moved next. AssetGuard is becoming a lengthy file, to cope with this I've added region comments so that specific sections can be collapsed and expanded when needed.
2018-03-30 08:31:54 -04:00
Daniel Scalzi
aacf15efc5
Using object for JavaGuard. May move java downloading processes to AssetGuard as a non-default category. Very much a WIP. 2018-03-29 19:45:05 -04:00
Daniel Scalzi
2062865e7f
Got Java download working, just need to integrate it into the program and add some safeguards to the code. 2018-03-28 21:19:56 -04:00
Daniel Scalzi
4b2cac1eff
Completed Java validation for windows.
Possible paths are pulled from the registry and JAVA_HOME. These are sorted by version and whether they point to a JRE or JDK. Each path will be validated using an experimental option which yields the arch of the binary. The first one to  be validated will be selected and returned.
2018-03-28 17:13:11 -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
d3c5997baa
Initial work on Java detection/validation system. 2018-03-28 16:13:57 -04:00
Daniel Scalzi
454964ce0b Initial work on welcome view, upgraded dependencies. 2018-02-19 20:27:42 -05:00
Daniel Scalzi
8ea4ae8ec2 Adding login functionality to login view (connection with authmanager). 2018-01-29 01:23:20 -05:00
Daniel Scalzi
52aea274a7 Adding UI functionality to the login view. 2018-01-28 22:33:18 -05:00
Daniel Scalzi
d50b3d2d41 Improving styles for error spans. 2018-01-27 22:51:12 -05:00
Daniel Scalzi
1284c54525 Continuing work on login view, still a ways off from completion. 2018-01-27 22:29:15 -05:00
Daniel Scalzi
a3e7dfc570 Added styles for active elements on the login view. Made the frame buttons unfocusable by tabbing. Changed the login form from a form to a div, the form element is not what we want to use. 2018-01-24 17:35:06 -05:00
Daniel Scalzi
69f9d297d0 Begining to transition over to electron-builder for building the app. Currently in a testing phase for this, gradually refining the build options. Once electron-builder has been fully implemented, the electron-packager scripts will be removed. Also updated electron to address a security issue. 2018-01-24 01:08:29 -05:00
Daniel Scalzi
d7aa79f7d3 Unpacked Avenir.ttc to its several ttf components due to compatibility issues on older operating systems. 2018-01-23 21:16:10 -05:00
Daniel Scalzi
2e4a2be8b4 Adding focus and hover elements to the login view, minor change to svg style locations. 2018-01-23 18:07:18 -05:00
Daniel Scalzi
45997c17f5 Fixed transition error with login arrow button. 2018-01-23 15:41:01 -05:00
Daniel Scalzi
e236a38757 Cleaning up login code a bit, next stage is completing login responsiveness. 2018-01-23 02:41:46 -05:00
Daniel Scalzi
e555dd747f Initial work on login UI. Will continue to experiment with the layout and tweak colors and sizing. 2018-01-22 19:51:14 -05:00
Daniel Scalzi
965b56c6bd Switched to correct news icon. 2018-01-22 15:30:51 -05:00
Daniel Scalzi
d96766528e Added an edit overlay to the user avatar. 2018-01-22 01:17:56 -05:00
Daniel Scalzi
aee8f016bf Updated instagram logo, removed incorrect news logo (the one on the UI is temporary until the correct one is obtained), add responsiveness to the social media icons. 2018-01-21 23:26:51 -05:00
Daniel Scalzi
a6184c81d5 Added social media icons (tweaking/changes still needed). Initial work on organization of main css file. 2018-01-21 20:30:55 -05:00
Daniel Scalzi
e7785fa603 Updating dependencies. 2018-01-19 00:33:05 -05:00
Daniel Scalzi
d4d7be7c47 Rewrote frontend download download function to make use of forked processes. This means that the download runs in full async (essentially in a separate thread). Updated the discord wrapper to be more dynamic. Updated auth manager to use async/await. 2018-01-18 23:45:50 -05: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
6d6d876aa5 Changed devtools keybind from 'wcdev' in sequence to 'ctrl + shift + i'. 2018-01-18 23:37:59 -05:00
Daniel Scalzi
45998a2239 Bug fixes for discord rich presence.. all appears to work now. 2017-12-03 08:54:10 -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