1
0
mirror of https://github.com/SKCraft/Launcher.git synced 2024-11-30 13:13:58 +01:00
Commit Graph

171 Commits

Author SHA1 Message Date
Henry Le Grys
2fe96e4435 Fix NPE when manifests don't contain JVM arguments
Jackson upgrade exposed/introduced a bug where the JVM half of Minecraft
arguments could end up missing in some cases. Not exactly sure if the
field was null on the serializing side or just an empty array, but we
just fix it by always initializing the fields.
2022-04-27 02:08:37 +01:00
Henry Le Grys
0a5abee956 Make the build output one jar file per subproject again 2022-04-27 01:53:14 +01:00
Henry Le Grys
868426498f Upgrade dependencies & fix deprecations 2022-04-26 23:05:44 +01:00
Henry Le Grys
54c05d1f9b Upgrade to Gradle 7 2022-04-26 22:42:15 +01:00
Henry Le Grys
8e1337d603 Disregard Java runtimes that don't have a bin folder 2022-04-23 19:49:04 +01:00
Henry Le Grys
3c4c38ea84 Improve Java runtime finder resiliency
Found some more edge cases in the wild - though to be honest this entire
thing is edge cases. Sometimes /release exists, but the actual binaries
are in /jre/bin; this commit changes behaviour to look for the two
things independently.
2022-04-22 01:10:06 +01:00
Henry Le Grys
79b1289aff Check for launcher updates when the game closes 2022-04-22 00:47:49 +01:00
Henry Le Grys
bad4363bed Remove broken skin fetching for Yggdrasil auth
"mandatory migration" my ass
2022-04-18 22:38:13 +01:00
Henry Le Grys
53ba054c2c Change Java runtime selector to show "unknown" instead of "null" 2022-04-18 22:38:13 +01:00
Magi1053
288da94249
Fix pastebin uploader 2022-01-22 19:37:10 -06:00
Henry Le Grys
291f62a4dc Allow Microsoft authentication to use xdg-open on Linux 2022-01-04 00:41:53 +00:00
Henry Le Grys
28017e8103 Fix edge case in logging config handling
If the user cancelled the install process after the temp logging config
file was created, but before the installer executes, the pack would fail
to install on relaunch. Fix by allowing overwriting of the temp file.
2022-01-01 04:34:15 +00:00
Henry Le Grys
725f747f63 Ensure installer temporary directory exists when installing 2021-12-31 22:20:16 +00:00
Henry Le Grys
6f7624a66d Add embedded logging configs
Minecraft's default logging configs output XML to stdout, because the
modern launcher parses it to provide a "nicer" console. We don't do
that, so this commit adds embedded versions of the logging configs which
just output log lines normally.
2021-12-31 21:12:51 +00:00
Henry Le Grys
94ae835b42 Add support for opening URLs with xdg-open on Linux
In environments without GTK, the Swing toolkit isn't available, so
desktop calls don't work. If that's the case, fall back to xdg-open
2021-12-12 02:20:42 +00:00
Henry Le Grys
08335637f9 Refactor JavaRuntimeFinder into subclasses & clean up
The getAvailableRuntimes function is now parseable, & the new
PlatformRuntimeFinder interface makes it clear what each stage does.
2021-12-12 02:02:46 +00:00
Magi1053
ff4707e7ea Assume architecture is x64 unless specified in release file 2021-12-11 18:24:00 -06:00
Magi1053
398d8f655e Refactor java runtime finder to work cross platform with the new minecraft launcher 2021-12-11 18:22:04 -06:00
Magi1053
ac116af788 Add java runtime finder for mac os 2021-12-11 16:30:03 -06:00
Henry Le Grys
5fbf5598b4 Support downloading logging config files from the version manifest
This update is required to mitigate the log4j2 vulnerability
2021-12-10 13:55:23 +00:00
Henry Le Grys
cd88effb59 Add a check for Java runtime version before setting permgen flag
Some newer GraalVM versions appear to be throwing a hard error when the
PermGen flag is specified; this commit changes the behaviour so the flag
is only passed when the Java version is unknown or older than 1.8
2021-12-05 23:43:10 +00:00
Henry Le Grys
8612b951e1 GH-443 Switch to using JNA Platform for Windows registry access 2021-12-05 21:38:18 +00:00
Henry Le Grys
15cbc5ac03 GH-443 Fix the undetected runtime file chooser dialog opening early 2021-12-05 20:35:59 +00:00
Magi1053
b3cbba2709
Fix not checking all registry keys for jvm if the previous key did not exist in the registry. 2021-11-14 19:19:16 -06:00
Henry Le Grys
8271c83162 GH-443 Add logging on registry read failures & fix default search path
Fixes the default launcher path used when reading the registry fails
somehow.
2021-11-03 19:45:46 +00:00
Henry Le Grys
4dad66a83e Attempt to solve Windows Java finding failing to find MC folder 2021-10-27 01:56:52 +01:00
Henry Le Grys
932ef97be6 GH-440 Fix NPE generated by config dialog when no runtime is configured 2021-10-25 20:09:54 +01:00
Henry Le Grys
d1184c32b2 Add option to Java selection dropdowns to choose a runtime from path
Bit of an experiment, but this commit allows users to manually find
a Java runtime on the filesystem and save it to config
2021-10-16 00:44:40 +01:00
Henry Le Grys
cd063304fb Fix Java version parser to tolerate missing minor version
Some (all?) Java 17 release files don't have the minor version present,
so a previous assumption no longer holds.
2021-09-27 22:16:34 +01:00
Henry Le Grys
9bd7df4d3c Tolerate missing terminating newlines in Java release files
Had a report out in the wild of a release file that doesn't end in a
terminating newline, which was causing the parser to blow up.
This commit relaxes the parsing to tolerate EOFs while parsing values.
2021-09-27 21:21:46 +01:00
Henry Le Grys
1c663e1c04 Fix java runtime finder breaking when encountering a bad release file
Rather than blowing up when a release file can't be parsed, log it and
move on. Hopefully a better runtime comes along.
2021-09-27 21:10:32 +01:00
Henry Le Grys
5c3768f1cf Always use proper local libraries folder path
There were a couple places where I relied on the manifest to have
the default libraries location of "libraries"; this commit fixes those
instances. Without this fix it would be possible for a custom libraries
URL path to leak into the local filesystem, which might've mucked
something up.
2021-09-04 00:34:09 +01:00
Henry Le Grys
7c783189dd Add support for Forge 1.17 processors 2021-09-02 06:56:57 +01:00
Henry Le Grys
faa1bc9a38 Add instance settings dialog 2021-09-02 01:59:15 +01:00
Henry Le Grys
e12eec29b5 Update launcher settings dialog with new runtime selection dropdown 2021-06-19 23:04:56 +01:00
Henry Le Grys
2ff147fc10 Start implementing per-instance settings & better Java runtime selection 2021-06-15 04:44:52 +01:00
Henry Le Grys
5b742bc1a1 Fix hidden error if request was never even started
If a HTTP request failed to even connect, then the logic determining
whether to retry a partial download would inadvertently throw an error
before it could re-throw the causing error, which resulted in a
confusing error dialog.
2021-05-29 17:38:24 +01:00
Henry Le Grys
b7be91bc9c Automatically show login dialog when session expires
Previously it just gave an unhelpful error message; now it pops up
the login dialog again. Also, the duplicated accounts bug should be
fixed!
2021-05-24 13:17:11 +01:00
Henry Le Grys
f23d387609 Fix bad logic surrounding download resuming
An oversight in the implementation of partial download resumption led
to cross-contamination in the presence of multiple request URLs, where
an `Accept-Ranges` header from one server would cause a `Range` header
to be supplied to the next. Compounded with a bad ternary expression
in `HttpRequest` which couldn't handle non-200 success codes, this
was causing cryptic "Stream closed" errors on library downloads.
2021-03-31 22:22:00 +01:00
Henry Le Grys
f7bbe82dfb Fix potential NPE with partial redownloads if connection never completes 2021-03-31 19:14:17 +01:00
Henry Le Grys
c3b1e51a51 Fix bad URL decoding & reformatting in HttpRequest 2021-03-28 03:22:44 +01:00
Henry Le Grys
9b1bae32d9 Add some comments to launcher.properties 2021-03-26 19:17:11 +00:00
Henry Le Grys
cdb32a3fe7 Fix NPE in HttpDownloader if server does not send Accept-Ranges header 2021-03-10 13:17:55 +00:00
Henry Le Grys
cf7e12b4d1 Only append to partially downloaded files if HTTP response is a 206 2021-03-10 01:31:31 +00:00
Henry Le Grys
4552b76465 Fix Updater to only download additional loader files once
Previously the launcher was downloading these files once for every
processor due to code architecture limitations. By moving the download
queueing step into BaseUpdater we ensure they are only downloaded once.
2021-03-10 01:13:27 +00:00
Henry Le Grys
ae6fb109e5 Add support for continuing partial downloads
If the server offers byte-range requests & the request fails, we retry
with a Range header to continue the download where it was interrupted.
2021-03-10 00:01:16 +00:00
Henry Le Grys
4da80dfae0 Throw an error if HTTP file transfers are cleanly closed early
It seems that some HTTP servers can silently close the connection before
the file has finished transferring. Since we count the transferred bytes
anyway, throw an exception if we didn't get the number of bytes the
server previously told us to expect.
2021-03-09 20:14:16 +00:00
Henry Le Grys
8a2b566b18 Make button widths equal in account selection dialog 2021-02-28 02:47:01 +00:00
Henry
3a93e9f39a
Style Account Select dialog (#402) 2021-02-28 02:33:45 +00:00
Henry Le Grys
3fdfb3cf70 Ignore unknown properties when deserializing LatestVersionInfo 2021-02-27 22:57:08 +00:00