Commit Graph

183 Commits

Author SHA1 Message Date
Petr Mrázek
0cb8ff40b2 Finish preliminary offline support
* ProgressProvider now has an abort() call
* Abort button support added to the progress dialog
* YggdrasilTask and MojangAccount adapted to support abort

YggdrasilTask will time out after 10 seconds of no network activity, or when the user pushes the Play Offline button.
In offline mode, all instance update tasks are skipped! This will need further work.
2013-12-08 17:34:45 +01:00
Sky
2fe27fd0da More work on new assets system. Works given a properly constructed assets folder, no downloading yet 2013-12-08 06:12:53 +00:00
Sky
6d438b2ef3 Work on new assets system. Working legacy assets importer, disabled assets downloading for now 2013-12-08 02:58:44 +00:00
robotbrainify
4548930e34 Open the url direectly. 2013-12-06 17:17:32 -05:00
robotbrainify
e2728317e7 Fixes to pasting 2013-12-06 17:13:09 -05:00
robotbrainify
5ad95134dc work on pasting instance logs
blame clang for formatting changes
2013-12-06 16:24:55 -05:00
Andrew
6ac94ddcb6 Finish implementing update installation.
Also add the option to update on exit.
2013-12-06 12:59:58 -06:00
Andrew
e90f1a2756 Implement update installer 2013-12-05 20:32:52 -06:00
Andrew
48ec8e67b8 Implement DownloadUpdateTask
Installing updates is not implemented yet. That's next.
2013-12-05 13:52:55 -06:00
Petr Mrázek
f028aa76bc Offline mode support, part 1
Refactor MojangAccount so it exposes a less generic interface and supports login. Hide the ugly details.
Yggdrasil tasks are now only used from MojangAccount.
2013-12-05 02:39:52 +01:00
Andrew
bf94aaea75 Rework the update checking system 2013-12-04 12:34:12 -06:00
Jan Dalheimer
4435016fae Fix some bugs that surfaced 2013-12-02 12:02:37 +01:00
Jan Dalheimer
0a6399b52c Unit testing 2013-12-02 11:09:56 +01:00
Petr Mrázek
6aa9bd0f77 Renew the updater branch
Now with some actual consensus on what the updater will do!
2013-12-02 00:55:24 +01:00
Petr Mrázek
f56eff04ef Fix (hopefully) library dependency resolution.
Installing libs is now enabled, hardcoded.
Enable -Wall for all builds.
Fix many warnings and latent bugs.
2013-12-01 16:34:51 +01:00
Petr Mrázek
a3fbf05c7b Fix private info censor 2013-12-01 02:14:32 +01:00
Petr Mrázek
f27a6c39ea Fix login and startup logging issues
Auth uses the refresh endpoint instead of validate. This means less password entering.
Console will now only autoscroll when already scrolled all the way down.
Better conformance with the Yggdrasil auth protocol (not complete yet, but Mojang launcher isn't complete either).
Fix bug that prevented saving the account data (uninitialized variable).
Accounts can now trigger account list saving, this is used for the refresh endpoint.
2013-12-01 02:00:42 +01:00
Jan Dalheimer
8334b6a09f Fix crash when no instances are available 2013-11-30 12:28:35 +01:00
Jan Dalheimer
8831856172 Remember the last selected instance and select it on startup 2013-11-30 12:28:20 +01:00
Andrew
0395474a0c Nuke dead code 2013-11-28 22:05:58 -06:00
Andrew
bfc9e1e5d5 Verify access tokens before launching Minecraft
Kind of an important thing to do... Heh...
2013-11-28 20:45:52 -06:00
Andrew
f7b64a551b Add icon for when no default account is selected
Also fixed a bug where the icon on the accounts button wouldn't change
when the user checked the "Use as default" checkbox in the account
selection dialog.
2013-11-28 15:46:04 -06:00
Petr Mrázek
60e325b8af Merge https://github.com/brainiac744/MultiMC5 into develop 2013-11-28 21:28:57 +01:00
Anthony Parrott
c0c7037e18 Could reach end of rulesFromJsonV4 method without returning a QList
It was possible for execution to reach the end of the rulesFromJsonV4
method without returning. This was causing a crash on OS X when parsing
rules inside an instance.
2013-11-28 14:50:04 -05:00
Sky
191e850cf1 Add support for "no default account" 2013-11-27 23:39:36 +00:00
Andrew
a4c5f0135e Allow setting no default account
This allows the user to select an account to use every time they launch
an instance.
2013-11-27 16:14:18 -06:00
Sky
38732636d3 Nuke skins.json, use nice yggdrasil implementation instead. Grabs all Mojang account skins on addition, active on startup 2013-11-27 18:45:29 +00:00
Sky
7d7579d7f0 Move "manage accounts" to right, use player skin when available 2013-11-27 16:56:15 +00:00
Petr Mrázek
7024e5a83e Fix for latest snapshot ``changes'' 2013-11-27 01:50:38 +01:00
Petr Mrázek
d6b09f7c13 Add java checker to the instance settings 2013-11-25 01:14:30 +01:00
Petr Mrázek
088b039cf7 Detect java bitness on launch, use appropriate libraries
Fixes problems with latest snapshot
2013-11-25 00:46:52 +01:00
Petr Mrázek
82225a21e1 Merge branch 'feature_yggdrasil' into develop
Conflicts:
	gui/MainWindow.cpp
	logic/OneSixInstance.h

Fix missing session id functionality for legacy and old onesix.
2013-11-24 18:41:35 +01:00
Petr Mrázek
ca297fca79 Prepare for rework of instance launch/update
Added missing licenses
Added a Java functionality checker (detects 32/64bit java)
Refactor of *Update - no longer based on BaseUpdate, but Task directly
Fixed runner script to not derp up on 32bit linux. Could add more detection and error reporting there.
Resources are now split into graphics and generated. Generated resources are placed in the build tree and included from there.
Used the Java checker in the main settings dialog (TODO: instance settings).
Partial support for ${arch}-using libraries - both 32 and 64 variants of ${arch} are downloaded.
2013-11-24 06:36:16 +01:00
Petr Mrázek
4124faf474 Fix console window (now not a QDialog)
It now opens and coloses as expected, depending on user
preferences and the status of the various processes involved.
Console window geometry and state are remembered between runs.
2013-11-23 01:41:28 +01:00
Andrew
75e7932607 Properly implement launching and downloading
Also added a system to select an active account to log in with.
2013-11-22 12:47:39 -06:00
Andrew
23bc195b3c Implement removing accounts. 2013-11-22 10:54:52 -06:00
Petr Mrázek
7f5eb5d61a Implement user info stub for newest minecraft snapshot 2013-11-22 01:04:14 +01:00
Andrew
abf8408911 Nuke and pave the old login system
Also, account list now saves profile lists.
2013-11-20 18:31:15 -06:00
Andrew
928e0d0b15 Implement saving account list to file
Currently it only saves when accounts are added or removed. We'll have
to fix this, but we need signals for when account objects change first.
2013-11-19 12:53:30 -06:00
Petr Mrázek
57a9dadb08 Forge XZ downloads now use temp files local to MultiMC, files are removed. 2013-11-19 00:47:59 +01:00
Petr Mrázek
294c2d122f Fix assets URL (expected to change... again) 2013-11-18 20:12:24 +01:00
Andrew
a9a0b65358 Implement loading accounts from list. 2013-11-18 12:58:03 -06:00
Andrew
cdca530139 Implement account list and account list dialog 2013-11-18 12:05:35 -06:00
Petr Mrázek
210629e274 Use the forge mirrors for downloading forge libraries
Let's hope we never, ever see a forge download error again.
2013-11-17 11:44:18 +01:00
Petr Mrázek
2a45302dfc Mark forge lib downloads as failed when they fail 2013-11-16 20:36:01 +01:00
Andrew
ad8aeb0b2b Implement auth task's response processing.
The authenticate task can now successfully log a user in.
2013-11-14 14:32:43 -06:00
Andrew
9cfd5ae465 Add test authentication task.
It doesn't actually do anything with the server's reply yet.
2013-11-14 12:17:38 -06:00
Andrew
d84b1a91f4 Add abstract base class for Yggdrasil tasks. 2013-11-13 14:12:31 -06:00
Petr Mrázek
9693a5e6e9 Fix signal derp from previous commit
Console should now properly close/not close based on minecraft return code/signal.
2013-11-13 00:24:49 +01:00
Petr Mrázek
fdc58bb913 Fix console not staying open on minecraft crash 2013-11-12 09:23:39 +01:00
Andrew
962639aa6d Added data structures for Mojang Account. 2013-11-11 12:59:59 -06:00
Petr Mrázek
e611aef0e7 Recover from the bin folder of converted legacy instance being deleted.
Use the new vanilla jar as the base jar if mcbackup.jar is missing.
2013-11-11 04:45:31 +01:00
Petr Mrázek
b097d2f744 Use the right LWJGL path while creating an instance 2013-11-11 03:47:14 +01:00
Petr Mrázek
452cc1849f Fix Sourceforge lwjgl version index download. 2013-11-06 20:59:44 +01:00
Sky
605423b8e4 Read mcmod.info first, forgeversion.properties second 2013-11-05 23:46:06 +00:00
Petr Mrázek
bb7e8985f6 Reformat and (slightly) decruft all the things. 2013-11-04 02:53:05 +01:00
Petr Mrázek
d6e4fb2971 Implement instance sorting options. 2013-11-04 00:11:20 +01:00
Petr Mrázek
4466929074 Add instance copying, fix instance creation (with identical names) 2013-11-03 21:28:04 +01:00
Sky
ab21b6977d Catch assets index failure 2013-11-03 16:02:59 +00:00
Sky
bade253a1a Added NagUtils, nag people about trying to override JVM memory options 2013-11-03 15:20:26 +00:00
Petr Mrázek
f39a83edc6 Hack for Intel graphics drivers on Windows. 2013-10-31 01:39:37 +01:00
Petr Mrázek
6ecb833dbf Fix problem with instance list not using the instance folder path 2013-10-28 20:55:12 +01:00
Petr Mrázek
9233477295 S3 bucket listing support and network code refactors.
* Adds support for listing all objects in an S3 bucket.
* Renames a bunch of network related classes (Download->Action)
* Net actions now have static constructors
2013-10-26 19:55:48 +02:00
Sky
0430a2a38f Add assets download status to status bar. 2013-10-26 02:31:58 +01:00
Petr Mrázek
c8b84257ae Actually use QJson for Yggdrasil requests 2013-10-23 02:08:39 +02:00
Sky
c65bab6efe Respect console options (opening a console at all, automatically closing) 2013-10-22 18:25:10 +01:00
Petr Mrázek
32ce5c5c02 Local libs that won't get replaced/redownloaded 2013-10-20 23:18:40 +02:00
Petr Mrázek
205570be32 Support version format 9, fix version-related segfault, (maybe) fix forge lists. 2013-10-18 01:00:46 +02:00
Sky
a600286e33 Use Yggdrasil error response when available, or fall back to legacy HTTP error codes 2013-10-17 00:46:25 +01:00
Sky
c700b7be2e Un-copy-pasta the login response handler using std::function magic 2013-10-17 00:02:56 +01:00
Sky
0a715a7b78 Improve error message for invalid login details using yggdrasil, add debug log for unknown codes 2013-10-15 03:11:10 +01:00
Sky
7aacf93c7c Fix non-Windows derp 2013-10-15 00:30:33 +01:00
Sky
40a2456646 Huge Java detection refactor, version dialogs on first run (no JavaPath set) and "auto detect" button 2013-10-14 03:00:06 +01:00
Petr Mrázek
f8b4c2c0b2 Fix auth for 13w41a 2013-10-11 16:13:01 +02:00
Petr Mrázek
541c044d52 Meh 2013-10-10 03:05:21 +02:00
Petr Mrázek
73f8bc5c92 Version changing removes any existing version json. 2013-10-10 01:47:48 +02:00
Petr Mrázek
eaf0cbeafc Fix MMC-15
``mod does not delete from jar''
2013-10-09 23:16:10 +02:00
Sky
60e7e019fe Start mcmod.info panel. Needs to be its own widget and included in legacy mod edit window, text labels need eliding 2013-10-08 17:07:54 +01:00
Petr Mrázek
05e2da51d8 Add mod website button thing feature widget. It is super effective. 2013-10-08 01:38:26 +02:00
Petr Mrázek
a58912eaf7 Basic version changing (OneSix only for now) 2013-10-08 01:38:26 +02:00
Sky
b30a97d4c9 Make starting window size set properly on 1.6 instances 2013-10-07 14:56:14 +01:00
Sky
8450807c06 Fix non-Windows naming derp 2013-10-06 22:05:16 +01:00
Sky
17c98655f8 First draft of multiple Java installation detection on Windows 2013-10-06 19:54:52 +01:00
Petr Mrázek
d5e4802ade Don't use SSL for lib downloads 2013-10-06 10:37:39 +02:00
Petr Mrázek
651bed91a0 Log failure reasons of cache downloads 2013-10-06 03:47:41 +02:00
Petr Mrázek
77d5ea36ae Log java util stuff using the new logging method 2013-10-06 03:20:19 +02:00
Petr Mrázek
8b18af0515 Get rid of junky timestamps, along with some select pointless log messages 2013-10-06 03:07:57 +02:00
Sky
7aeea14a02 Merge branch 'develop' of https://github.com/MultiMC/MultiMC5 into develop 2013-10-06 01:13:20 +01:00
Petr Mrázek
f83119ce7e Added file logger 2013-10-06 01:13:40 +02:00
Sky
1dee4bb60d Add naive Windows Java detection - JavaUtils for finding it on other systems (incomplete) 2013-10-05 01:08:13 +01:00
Petr Mrázek
eba9b3d759 Add user agent header to most MultiMC download requests. 2013-10-02 23:35:45 +02:00
Petr Mrázek
751c532175 Add missing include 2013-10-01 09:05:58 +02:00
Petr Mrázek
8b0f8b9e59 ``Working'' forge unpackers. Needs a lot of hardening but good for alpha. 2013-09-30 02:34:46 +02:00
Petr Mrázek
2c8dc0b855 Compression algo dependencies, still need hackery... 2013-09-26 02:59:56 +02:00
Petr Mrázek
984c36e571 Implement basic yggdrasil auth.
No fancy login token saving involved.
2013-09-23 00:29:40 +02:00
Petr Mrázek
9d03a9c1e3 Cache forge version list (it's huge) 2013-09-22 14:00:37 +02:00
Petr Mrázek
ceca6959d2 Working 1.6 modding (currently only forge) 2013-09-22 04:21:36 +02:00
Petr Mrázek
c2c7293083 Things... and stuff... with 1.6 modding. Maybe. 2013-09-20 01:21:48 +02:00
Petr Mrázek
b979d0ce5d Implement legacy forge button!
Many refactors of the task system.
Progress dialog now accepts generic ProgressProvider objects
2013-09-18 00:00:35 +02:00
Petr Mrázek
d38b90530b Forge version list implementation. Needs integration and testing. 2013-09-16 00:54:39 +02:00