Commit Graph

675 Commits

Author SHA1 Message Date
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
Petr Mrázek
7721c57e5e Split OneSixVersion into parts. 2013-09-11 23:43:17 +02:00
Petr Mrázek
108a5a677c Progress works for null downloads (header checks) 2013-09-10 00:34:34 +02:00
Petr Mrázek
91a3e650e9 Fix download progress (bars) 2013-09-10 00:29:25 +02:00
Petr Mrázek
8062b73074 Fix one more legacy update bug 2013-09-08 20:16:38 +02:00
Petr Mrázek
cffdc4e045 Fix legacy instance update segfault 2013-09-08 19:35:36 +02:00
Stiepen22
31e5a0fe6d Changed all strings displayed to end user to use qts localization system 2013-09-08 18:13:09 +02:00
Petr Mrázek
cbf3238f0e Fix build 2013-09-08 16:25:02 +02:00
Petr Mrázek
499ee1e365 Merge branch 'master' of https://github.com/Stiepen22/MultiMC5 into develop
Conflicts:
	AppSettings.cpp
	MultiMC.pro
	main.cpp
2013-09-08 16:21:49 +02:00
Petr Mrázek
7e1cf22ce6 Use youtrack for bugs 2013-09-08 15:59:50 +02:00
Stiepen22
dab2bbe4e7 Added console coloring and made the log not contain any usernames/session ids 2013-09-08 15:02:52 +02:00
Petr Mrázek
6bea4ec988 Use HttpMetaCache to minimize network use. 2013-09-08 02:15:20 +02:00
Petr Mrázek
6892c11e9f Move a good chunk of the singleton objects into a new QApplication subclass. 2013-09-07 04:00:58 +02:00
Stiepen22
f897a200e2 Made instace killing actually work 2013-09-06 22:40:50 +02:00
Petr Mrázek
634e22298b Untested ETag cache class.
Yep.
2013-09-06 21:58:51 +02:00
Stiepen22
b44e70d58d started kill instance feature 2013-09-06 18:48:41 +02:00
Petr Mrázek
f8e8414d54 Speed up the downloads. Massively. 2013-09-02 00:25:40 +02:00
Petr Mrázek
78e278c1e3 Misc tweaks
* Do not nuke forge META-INF
* Disable inner DnD in mod lists on linux.
2013-08-28 21:52:19 +02:00
Petr Mrázek
5ff6fbf464 Basic 1.6 mod management (no jar mods) 2013-08-28 04:38:29 +02:00
Petr Mrázek
fcd05ca2f6 Read mod files to get versions... and stuff. 2013-08-27 22:32:41 +02:00
Petr Mrázek
a266e5d0cc Slight refactor of the mod edit dialog constructor
Also some other insignificant refactors
2013-08-27 20:29:27 +02:00
Petr Mrázek
81259ce05e Save icon for the legacy launcher 2013-08-27 12:05:11 +02:00
Petr Mrázek
5573ed52e8 Add/remove/drag&drop for the icon picker. 2013-08-27 05:39:49 +02:00
Petr Mrázek
a63c7340a6 Nuke the old instance model, LONG LIVE THE NEW ONE 2013-08-26 06:30:11 +02:00
Petr Mrázek
392c58c4b0 Ehh... things. 2013-08-26 04:57:09 +02:00
Petr Mrázek
767c3db297 Nuking preprocessor poop... 2013-08-26 04:20:03 +02:00
Petr Mrázek
00742af3a6 OS compatibility and generic cleanup.
Removed bspatch/patchlib
Now builds and runs on Windows
2013-08-26 02:53:29 +02:00
Petr Mrázek
f0990fae4b Many improvements
PermGen can be tweaked from the settings menu
Groups are saved on change/exit
Install target is no longer completely broken
All the deplibs are now static
Added notes dialog
Fixed ini file format support (can save strings with newlines, tabs. UTF-8 is explicitly used!)
Rename button now uses line breaks so it doesn't grow ever wider (Added a custom tool button subclass)
There is now a CAT button. Meow.
2013-08-25 22:48:41 +02:00
Petr Mrázek
d884f849d6 All kinds of incremental improvements
Redone the instance action toolbar:
* Removed all the dead actions
* Change icon and Rename are now morphed into a header
* Added button for opening the config folder
Implemented support for loose files and folders as legacy jar mods
Added texture pack support
2013-08-25 01:32:42 +02:00
Petr Mrázek
e3b55067eb Legacy jar reassembly, base of proper custom jar support 2013-08-24 03:09:46 +02:00
Petr Mrázek
b781231666 Contiguous selection and keyboard input for mod lists.
Tweak console to take up the sides.
You can reorder mods from the keyboard.
2013-08-21 01:07:54 +02:00
Petr Mrázek
bbc47cb8bd Sync, removal of webkit as a dependency, removal of the web windows. 2013-08-20 02:29:36 +02:00
Petr Mrázek
c92ad7dcf8 Drag and Drop, mod management. 2013-08-18 20:52:17 +02:00
Petr Mrázek
253067c782 Move all the things (YES. Move them.)
Also, implemented some basic modlist logic, to be wired up.
2013-08-17 13:40:51 +02:00