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
215b7871e7
Add FUNDING.yml
2021-09-03 09:09:04 +01:00
Henry Le Grys
7c783189dd
Add support for Forge 1.17 processors
2021-09-02 06:56:57 +01:00
Henry Le Grys
eda5ad2a90
Bump launcher version to 4.6
2021-09-02 03:25:36 +01:00
Henry Le Grys
6b2bcea5d7
Add menu item for pack manager for editing instance settings
2021-09-02 02:47:35 +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
1219ff5cbc
Add donation links to README
2021-03-14 21:53:52 +00:00
Henry Le Grys
831ecfd392
Make gradle clean
trigger a clean of all subprojects
2021-03-14 18:36:00 +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
johnfriedrich
e2fde95c25
Style Account Select Dialog
2021-02-19 22:58:50 +01:00
Henry Le Grys
daa955fac6
Remove packed check from launcher self-updater
2021-02-19 03:18:24 +00:00
Henry
dd3f4e7290
Add User-Agent to news page HTTP requests ( #401 )
2021-02-19 03:09:22 +00:00
Henry Le Grys
ef1572fd1b
Remove packed check from bootstrapper
...
Introducing that packed flag was a mistake tbh
2021-02-19 03:07:29 +00:00
David Lohle
4703b0dede
Add User-Agent to news page HTTP requests
...
Cloudflare, and some other MITM proxies consider the default Java HttpURLConnection
from Java 1.8 to be an invalid, unsafe request and reject it. This leads to CF returning a
403 on request. This commit adds the same User-Agent that's applied to the other calls, so
that those that front their SKMC launcher news page with Cloudflare can have successful
page loads.
2021-02-18 21:36:03 -05:00
Henry Le Grys
660fb40c44
Fix weird Lists import from internal jcommander package
2021-02-18 23:30:14 +00:00
Henry Le Grys
5d5a462387
Switch to using Minecraft services as skin provider
...
We do some local processing to draw the head of the skin in 32px
resolution.
2021-02-18 22:39:51 +00:00
Henry Le Grys
fd78863697
Make skin service return null on error
2021-02-18 21:22:58 +00:00
Henry
4177c15675
Redesign login dialogs & support new Microsoft logins ( #398 )
2021-02-17 01:15:39 +00:00
Henry Le Grys
c8bc7f68c6
Bump launcher version to 4.5
2021-02-16 22:20:10 +00:00
Henry Le Grys
8eb66d4c67
Clean up error reporting for Minecraft API authentication
2021-02-16 22:16:42 +00:00
Henry Le Grys
ff12d154c8
Convert avatarImage fields to type byte[]
2021-02-16 17:39:54 +00:00
Henry Le Grys
a7dcd2c7fb
Prompt Microsoft's OAuth to allow account selection on sign-in
...
Since signing in via browser should be a rare event (thanks to our
automatic refreshing) it's not so bad that this increases login
friction.
2021-02-16 17:23:25 +00:00
Henry Le Grys
5cf38207ae
Fix XSTS error codes being missed due to Jackson weirdness
2021-02-16 17:19:11 +00:00
Henry Le Grys
fec1eaacf4
Fix an NPE due to unfinished getLoginService method
2021-02-16 16:51:45 +00:00
Henry Le Grys
df6415eea4
Show XSTS error messages if non-empty
2021-02-15 21:24:39 +00:00
Henry Le Grys
832dab329a
Fix unknown Xbox error formatting
2021-02-15 16:27:31 +00:00
Henry Le Grys
7803242ffa
Issue a warning when reformatting URLs fails
2021-02-13 02:58:09 +00:00
Henry Le Grys
b979eb33c9
Set account dialog selection colors correctly
2021-02-13 01:51:53 +00:00
Henry Le Grys
571d1769a2
Remove Pack200 from bootstrapper & default to normal .jar filename
2021-02-12 22:41:04 +00:00
Henry Le Grys
8d3a172ee9
Improve progress messaging during long Microsoft login dance
2021-02-11 18:16:10 +00:00
Henry Le Grys
93c3f04cbb
Handle cancelled OAuth requests
2021-02-11 18:01:13 +00:00
Henry Le Grys
1d4e46214b
Report Xbox authentication errors
2021-02-11 17:40:59 +00:00