Commit Graph

258 Commits

Author SHA1 Message Date
Sefa Eyeoglu
a4ef0940ed
chore: add license headers 2022-06-12 13:50:58 +02:00
Sefa Eyeoglu
2ff0aa09e3
fix: remove updater if it is not used 2022-06-12 13:39:47 +02:00
Sefa Eyeoglu
32217a774f
fix(tests): wait until ModFolderModel has updated 2022-06-12 13:33:17 +02:00
Sefa Eyeoglu
8856c8cd62
refactor(test): fix loading mod metadata setting 2022-06-12 13:33:17 +02:00
Sefa Eyeoglu
51258ab28c
Merge pull request #709 from Scrumplex/fix-instancetypes
Always store InstanceType
2022-06-11 19:29:46 +02:00
flow
c2a43c6f40
fix: hide .index folder on Windows 2022-06-04 11:02:59 -03:00
Sefa Eyeoglu
778baa6dbe
fix: always store InstanceType 2022-06-04 11:59:12 +02:00
flow
2fc1b99911
chore: add license headers
Prevents a massive inload of Scrumplex ditto's :)

I didn't add it to every file modified in this PR because the other
changes are pretty minor, and would explode the diff of the PR. I hope
that's not a problem O_O
2022-05-23 14:58:14 -03:00
flow
3a923060ce
fix: use correct hash_type when creating metadata
also fix: wrong parameter name in LocalModUpdateTask's constructor
also fix: correct hash_format in CF
2022-05-23 14:58:14 -03:00
flow
67e0214fa5
fix: don't try to delete mods multiple times
Shows a more helpful message if there's a parsing error when reading the
index file.

Also fixes a clazy warning with using the `.data()` method in a
temporary QByteArray object.
2022-05-23 14:43:10 -03:00
flow
e17b6804a7
fix: implement PR suggestions
Some stylistic changes, and get hashes from the mod providers when
building the metadata.
2022-05-23 14:43:09 -03:00
flow
96e36f0604
refactor: make mod metadata presence (or lack of) easier to find out 2022-05-23 14:43:09 -03:00
flow
ba50765c30
tidy: apply clang-tidy to some files
Mostly the ones created in this PR + Mod.h / Mod.cpp / ModDetails.h
2022-05-23 14:42:28 -03:00
flow
d7f6b36990
test+fix: add basic tests and fix issues with it 2022-05-23 14:42:28 -03:00
flow
4439666e67
feat: allow disabling mod metadata usage 2022-05-23 14:42:28 -03:00
flow
23febc6d94
feat: cache metadata in ModDetails
Allows for more easy access to the metadata by outside entities
2022-05-23 14:42:28 -03:00
flow
fab4a7a602
refactor: abstract metadata handling and clarify names 2022-05-23 14:42:28 -03:00
flow
e9fb566c07
refactor: remove unused mod info and organize some stuff 2022-05-23 14:42:27 -03:00
flow
5a34e8fd7c
refactor: move mod tasks to their own subfolder
Makes the launcher/minecraft/mod/ folder a little more organized.
2022-05-23 14:42:27 -03:00
flow
fcfb2cfc3d
feat: use mod metadata for getting mod information
For now this doesn't mean much, but it will help when we need data
exclusive from the metadata, such as addon id and mod provider.

Also removes the metadata when the mod is deleted, and make the Mod.h
file a little more pleasing to look at :)
2022-05-23 14:42:27 -03:00
flow
e93b9560b5
feat: add method to delete mod metadata
Also moves indexDir setting from LocalModUpdateTask -> ModFolderModel
2022-05-23 14:42:27 -03:00
flow
b30b88716e
feat: add very early mod.toml packwiz support
Also use it as a on-disk format for storing mod metadata. This will be
used later on to make better mod managment.
2022-05-23 14:42:22 -03:00
Sefa Eyeoglu
29ef1e2c4b
Merge pull request #597 from Scrumplex/refactor-modloader-modapi 2022-05-22 13:17:53 +02:00
Sefa Eyeoglu
b4707f46ad
Merge pull request #500 from flowln/net_refactor
Refactor a little the code in `launcher/net/` files
2022-05-21 12:06:34 +02:00
Jamie Mansfield
96f16069a9
Launch: Apply the Minecraft version correctly
It was previously using a deprecated field.
2022-05-20 18:47:11 +01:00
Jamie Mansfield
188c5aaa35
Launch: Match Vanilla launcher version string behaviour
This removes a means of profiling users.
2022-05-20 18:43:47 +01:00
Sefa Eyeoglu
943090db98
refactor: allow tracking multiple mod loaders 2022-05-19 08:49:27 +02:00
Sefa Eyeoglu
77caaca50d
fix: only consider enabled mod loaders 2022-05-19 08:09:37 +02:00
Sefa Eyeoglu
f66e0fa0e8
fix: support split natives
Mojang introduced a new structure for natives, notably for LWJGL.
Now instead of using the `natives` structure of the version format, Mojang
chose to create a seperate library entry for each platform, which uses
the `rules` structure to specify the platform. These new split natives
carry the same groupId and artifactId, as the main library, but have an
additional classifier, like `natives-linux`.

When comparing GradleSpecifiers we don't look at the classifier, so when
the launcher sees an artifact called `org.lwjgl:lwjgl:3.3.1` and right
after that an artifact called `org.lwjgl:lwjgl:3.3.1:natives-linux`, it
will treat it as "already added" and forget it.

This change will include the classifier in that comparison.
2022-05-18 22:51:15 +02:00
DioEgizio
127dfadc6c
fix(quilt) always prefer qmj over fmj
this fixes Quilt-only mods like ok zoomer showing wrong metadata
2022-05-18 14:33:58 +02:00
flow
ff9f3cb31f
fix conflicts with develop 2022-05-17 18:25:08 -03:00
Sefa Eyeoglu
1012912272
Merge pull request #567 from Scrumplex/quilt-metadata
Support `quilt.mod.json` metadata
2022-05-17 16:08:59 +02:00
Sefa Eyeoglu
edbd90a4e6
fix: update links for Quilt metadata format 2022-05-17 15:17:20 +02:00
Sefa Eyeoglu
a110d445ac
feat: support quilt.mod.json metadata 2022-05-15 23:00:09 +02:00
flow
dd2b324d8f
chore: add license header to remaining files
Also remove some unused imports
2022-05-12 18:11:55 -03:00
flow
8c8eabf7ac
refactor: organize a little more the code in launcher/net/
This also reduces some code duplication by using some Task logic in
NetAction.
2022-05-12 18:11:49 -03:00
Kenneth Chew
046f1e6e58
Add instance overrides for miscellaneous settings 2022-05-12 17:08:06 -04:00
timoreo22
546d394868
Merge pull request #475 from Scrumplex/fix-hide-all-tokens
Hide all tokens for non-Debug builds for log and logfiles
2022-05-02 10:45:58 +02:00
TheCodex6824
1ff459d995
Use suggested error handling 2022-04-25 14:08:27 -04:00
TheCodex6824
a0bafa4952
Re-add base64 decode option for Qt versions that support it 2022-04-23 11:11:55 -04:00
TheCodex6824
e56f0db11b
Remove base64 decode option that was added in Qt 5.15 2022-04-23 10:32:52 -04:00
TheCodex6824
8bcbe07c87
Fix Mojang auth failing due to Mojang rejecting requests to the profile endpoint 2022-04-22 23:39:38 -04:00
Sefa Eyeoglu
b3e1691c01
fix: hide LauncherLoginStep tokens for non-Debug builds 2022-04-20 18:33:33 +02:00
dada513
3c3ce71214
Merge pull request #467 from PolyMC/revert-429-develop
Revert "better FreeBSD support"
2022-04-20 08:17:19 +02:00
Sefa Eyeoglu
4c5f701b05
Revert "better FreeBSD support" 2022-04-19 21:49:54 +02:00
Sefa Eyeoglu
27c72935f8
fix: use size in bytes to sort by world size 2022-04-19 15:07:14 +02:00
Irgendwer01
ecad388846
Merge branch 'PolyMC:develop' into develop 2022-04-15 13:04:25 +02:00
Irgendwer01
9a120f43c8
Update MinecraftInstance.cpp 2022-04-15 13:03:48 +02:00
Sefa Eyeoglu
4ff1306e0c
Merge pull request #185 from Scrumplex/quilt
Quilt support
2022-04-15 11:38:50 +02:00
Irgendwer01
06d9821b2c
Update MinecraftInstance.cpp 2022-04-15 01:51:28 +02:00
Irgendwer01
abb20c65e3
better FreeBSD support 2022-04-15 01:40:25 +02:00
Sefa Eyeoglu
9fb5674233
refactor: cleanup ModLoaderType 2022-04-14 21:55:03 +02:00
Sefa Eyeoglu
14a0e85862
fix: remove unused code 2022-04-14 16:50:04 +02:00
Sefa Eyeoglu
89125fde22
refactor: switch Quilt mappings to hashed MojMap 2022-04-09 14:56:07 +02:00
Sefa Eyeoglu
35cfb41a9c
fix: check for Quilt as Fabric-compatible loader 2022-04-07 18:46:09 +02:00
Sefa Eyeoglu
9349232bd4
refactor: dynamically get best version for intermediary mappings 2022-04-07 18:46:00 +02:00
Petr Mrázek
e6564aa69f NOISSUE fix error string for Xbox authorization failures 2022-04-07 18:29:10 +02:00
Sefa Eyeoglu
9eb9ddc668
feat: initial Quilt support 2022-04-07 18:11:40 +02:00
Una
dc6340bf38
Allow components to specify Java agents and JVM arguments (#175) 2022-04-06 08:22:24 +02:00
Sefa Eyeoglu
5fb096d7b9
Merge pull request #345 from Scrumplex/handle-incompatible-java 2022-04-04 21:01:49 +02:00
Sefa Eyeoglu
41d7b27d43
fix: calculate world sizes individually 2022-04-02 13:29:37 +02:00
Sefa Eyeoglu
9180c751d8
fix(launch/VerifyJava): reword log output 2022-04-02 00:54:48 +02:00
Sefa Eyeoglu
e8697068fb
fix: codestyle 2022-04-01 15:00:05 +02:00
Sefa Eyeoglu
c389a711ed
fix: remove redundant include 2022-04-01 13:14:04 +02:00
Sefa Eyeoglu
64ca96f470
feat: track and display world size 2022-03-31 18:45:17 +02:00
Sefa Eyeoglu
ea60e48d9d
chore: add license header
chore: add license header
2022-03-27 20:59:56 +02:00
Sefa Eyeoglu
85f3fc9944
fix: remove "PolyMC" from strings 2022-03-27 20:59:51 +02:00
dada513
b1af689546
Add quit launcher after game stops option (Steam Deck)
lecense
2022-03-27 14:50:47 +02:00
Sefa Eyeoglu
e02369ba6b
chore: add license header 2022-03-24 16:10:43 +01:00
Sefa Eyeoglu
82c35f2746
feat: block launch if Java is incompatible
Keep track of compatible Java versions from meta. Launch-step
VerifyJavaInstall will check if current instance's Java version is
compatible.
Also add override option both globally and per-instance in-case the user
doesn't care about the requirement.
2022-03-24 16:10:39 +01:00
Sefa Eyeoglu
062fc79286
Merge pull request #298 from Scrumplex/fix-i18n
Fix translatable strings
2022-03-21 14:21:06 +01:00
Sefa Eyeoglu
a160bd0062
chore: add license header to files I modified 2022-03-19 12:46:56 +01:00
Sefa Eyeoglu
48c2146a42
fix(i18n): fix translatable strings 2022-03-19 12:29:46 +01:00
Ezekiel Smith
ccc27d1b7c
Merge pull request #192 from Scrumplex/refactor-remove-legacy-instances
Drop legacy instances
2022-02-26 01:54:15 +11:00
Sefa Eyeoglu
a70d1f1a91
refactor: drop LegacyInstance 2022-02-21 22:30:44 +01:00
Sefa Eyeoglu
3059f13011
refactor: drop migration for pre-component instances 2022-02-21 22:11:10 +01:00
Sefa Eyeoglu
c5d9944993
feat(accounts): interrupt MSAStep when client ID doesn't match 2022-02-18 12:32:24 +01:00
Sefa Eyeoglu
14717396eb
feat(accounts): save client id in MSAStep 2022-02-18 12:32:24 +01:00
Sefa Eyeoglu
9c71f364d2
feat(accounts): add disabled account state 2022-02-18 12:32:24 +01:00
Sefa Eyeoglu
be910374dc
feat(accounts): support msa-client-id value 2022-02-18 12:32:24 +01:00
Sefa Eyeoglu
0854e83ce4
feat: implement MSA client id override
Closes #11
2022-02-12 21:27:32 +01:00
swirl
076efc4cb2
Merge branch 'update-quazip' of git://github.com/Scrumplex/PolyMC into develop 2022-02-03 14:14:12 -05:00
swirl
2177aa2a6b
Merge branch 'offline-mode-accounts' of git://github.com/NyaomiDEV/PolyMC into feature/offline_mode 2022-02-03 13:54:27 -05:00
swirl
3d3f9a8609
make closeAfterLaunch good 2022-02-03 12:50:24 -05:00
Sefa Eyeoglu
0442b80a2c
refactor: simpler includes for quazip 2022-01-31 21:40:59 +01:00
Sefa Eyeoglu
81c72c2038
refactor: bring back methods that need to be reimplemented 2022-01-31 21:40:59 +01:00
Sefa Eyeoglu
3aa809b8c0
refactor: add in-tree QuaZip 2022-01-31 21:40:59 +01:00
Sefa Eyeoglu
efa414c442
refactor: initial migration to QuaZip 1.2
Let's move off our custom QuaZip. In the olden times we needed the
custom version of QuaZip, as it was basically unmaintained and on
SourceForge (eww). But nowadays it's maintained and on GitHub. See
new GitHub page: https://github.com/stachenov/quazip
2022-01-31 21:40:59 +01:00
bexnoss
9d23ac562f Add offline mode support 2022-01-30 02:35:56 +01:00
swirl
0065a29901
Close after Launch setting 2022-01-29 19:04:44 -05:00
Stypox
0235eb5c28
Fix error message
The code is trying to get a string from a json object, and if that fails it should log "is not a string", not "is not a timestamp".
2022-01-24 11:44:47 +01:00
Petr Mrázek
8804b035b2
NOISSUE log server response when failing to fetch profile 2022-01-24 11:44:47 +01:00
Petr Mrázek
54e3438e37
NOISSUE correctly set http status code in auth reply 2022-01-24 11:44:47 +01:00
Petr Mrázek
70c04745ee
NOISSUE add some logging to profile fetching failures 2022-01-24 11:44:47 +01:00
Lenny McLennington
55597b458c
Revert "Merge pull request #50 from bexnoss/offline-mode"
This reverts commit b4f750e7db, reversing
changes made to b19e315615.
2022-01-17 03:45:47 +00:00
Lenny McLennington
f55297eca9
Revert "Merge pull request #81 from bexnoss/fix-msa-account-refresh"
This reverts commit 0bc8baf117, reversing
changes made to 81fe41a038.
2022-01-17 03:45:33 +00:00
bexnoss
5f9270ed4b Fix MSA account refresh 2022-01-16 23:30:17 +01:00
bexnoss
46a3b4de6e Remove unnecessary semicolon 2022-01-12 18:41:33 +01:00
bexnoss
a1ff3b1ee3 Add offline mode support 2022-01-12 14:26:02 +01:00
swirl
1d8196e11a
More rebranding
Closes: #39

Mostly done with rebranding now. We just need to translate some services
to PolyMC.
2022-01-10 12:47:35 -05:00
dada513
fa98ed3ccd
Merge remote-tracking branch 'upstream/develop' into upstream_update 2021-12-31 18:05:40 +01:00
Petr Mrázek
9579231ccc NOISSUE fix build and change how NetJob is used
Feed it network upfront...
2021-12-31 05:27:59 +01:00
Petr Mrázek
9cc168c526 NOISSUE fix some OS ifdefs 2021-12-31 00:36:25 +01:00
Petr Mrázek
94fdf13f4a NOISSUE proper fix for missing profile + demo mode 2021-12-30 21:26:29 +01:00
Petr Mrázek
3efcccf334
Merge pull request #4345 from graemeg/freebsd-support
Adds FreeBSD support to MultiMC
2021-12-30 20:00:45 +01:00
Petr Mrázek
a6e59cb4f4 NOISSUE detect when user loses entitlements 2021-12-30 17:19:41 +01:00
Graeme Geldenhuys
f42c3a953c Restore getNativePath() to its original form. 2021-12-28 21:59:24 +00:00
Lenny McLennington
e6246a9306
Move MSA Client ID to the same place as the others
MSA Client ID has been moved to CMakeLists.txt, and defaults to the
Client ID for the PolyMC application.

Removed secrets/notsecrets library, replace with (temporary?)
program_info subdirectory.
2021-12-20 02:57:13 +00:00
Petr Mrázek
7d047f9223 NOISSE add a shortcut to the loaders mods to main window 2021-12-12 22:39:25 +01:00
Graeme Geldenhuys
fce98f5e16 Fixes compilation error expanding from macro 'major'. 2021-12-12 11:45:58 +00:00
Graeme Geldenhuys
7179e75e70 Changes required to support FreeBSD 2021-12-12 11:39:36 +00:00
Petr Mrázek
dba4c452e0 NOISSUE account tweaks 2021-12-08 01:22:57 +01:00
Petr Mrázek
825ef52dd5 NOISSUE fix up some corner cases around migrating accounts 2021-12-06 20:16:13 +01:00
Petr Mrázek
c8ca6acc15 NOISSUE fix some error mappings for Mojang accounts 2021-12-05 03:48:07 +01:00
Petr Mrázek
d37003b1de NOISSUE fix builds, make account refresh queue user friendly 2021-12-04 02:10:14 +01:00
Petr Mrázek
db6431d9e0 NOISSUE add missing chrono include 2021-12-04 01:27:58 +01:00
Petr Mrázek
3c46d8a412 GH-4071 Heavily refactor and rearchitect account system
This makes the account system much more modular
and makes it treat errors as something recoverable,
unless they come directly from the MSA refresh token
becoming invalid.
2021-12-04 01:18:05 +01:00
Petr Mrázek
285188ea53 GH-4071 handle network errors when logging in with MSA as 'soft'
This makes the tokens not expire when such errors happen.

Only applies to MSA, not the XBox and Mojang steps afterwards.
Further testing and improvements are still needed.
2021-11-28 18:42:01 +01:00
Petr Mrázek
b49987e876 NOISSUE fix fix fix the accounts again 2021-11-23 01:25:24 +01:00
Petr Mrázek
b258eac215 NOISSUE continue reshuffling the codebase 2021-11-22 03:55:16 +01:00
Petr Mrázek
9fc677c2a4 NOISSUE more refactoring 2021-11-21 23:36:55 +01:00
Petr Mrázek
69213b1206 NOISSUE continue refactoring things to make tests pass 2021-11-21 23:21:12 +01:00
Petr Mrázek
0c861db7a2 NOISSUE Some happy little refactors 2021-11-20 16:22:22 +01:00
Petr Mrázek
eafeb64dec NOISSUE qnam -> network 2021-11-17 13:20:50 +01:00
Jamie Mansfield
014e65220e
NOISSUE Error on launch when launching 1.18 with < Java 17 2021-11-16 18:25:16 +00:00
Petr Mrázek
6c82883206 NOISSUE fix account re-adding not updating current account 2021-11-16 02:21:59 +01:00
Petr Mrázek
25fbeb265a NOISSUE fix build some more 2021-11-10 03:16:04 +01:00
Petr Mrázek
30d5a7ab48 NOISSUE fix build 2021-11-10 03:12:01 +01:00
Petr Mrázek
475d949a1e GH-4217 Add support for GamePass accounts and MC profile setup
- We now use the new endpoint for loggiong in via XBox tokens (/launcher/login)
- We now check game entitlements instead of only relying on MC profile presence
- Accounts can now be added even when they do not have a profile
- The launcher will guide you through selecting a Minecraft name if you don't have one yet
2021-11-10 03:02:51 +01:00
Janrupf
0423464b88 GH-4227 Don't blindly trust mods.toml to be valid 2021-11-06 22:43:16 +01:00
Petr Mrázek
27f276ef13 GH-1795 add terminal launch option to use a specific Minecraft profile
Used like this:
```
./MultiMC --launch 1.17.1 --profile MultiMCTest --server mc.hypixel.net
```
2021-10-31 21:43:33 +01:00
Petr Mrázek
6f6c9c6f68 NOISSUE fix debranding changes affecting version file format 2021-10-24 12:25:44 +02:00
Jamie Mansfield
7cbca6ab20
NOISSUE Use common duration format for global and instances 2021-10-24 00:09:21 +01:00
Petr Mrázek
5b3dffce62 NOISSUE continue debranding... 2021-10-21 00:47:53 +02:00
Petr Mrázek
441ab7eedc NOISSUE debranding for real, initial work
This is probably very broken on macOS and Windows and will need a lot of work to complete fully.
2021-10-21 00:47:53 +02:00
Petr Mrázek
8c4fb86ba0
Merge pull request #4103 from tobfos2611/develop
Fix underaged account that isn't linked to a family help link.
2021-10-03 21:59:46 +02:00
Petr Mrázek
668d31b79e
Merge pull request #4143 from phit/patch-1
NOISSUE Remove outdated SSL docs
2021-10-03 21:52:13 +02:00
Petr Mrázek
3138e58c75 NOISSUE fix typo in FMLLibrariesTask.cpp 2021-10-03 21:46:10 +02:00
Philip T
0b312956db NOISSUE Remove outdated SSL docs
the link is dead and the equivalent newer page is useless, https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn265983(v=ws.11)?redirectedfrom=MSDN#related-content
2021-10-03 13:43:43 +02:00
Petr Mrázek
0f3cf0595b NOISSUE add shader pack page for instances
Only theme with an icon is simple colored, rest is TBD
2021-09-23 21:26:56 +02:00
Petr Mrázek
a5956194df NOISSUE Remove Requestor, it is unused 2021-09-21 22:02:12 +02:00
tobfos
28d7c5d309
Removed unnecessary text in link.
Thanks @RDKRACZ.
2021-09-15 20:46:07 +10:00
Toby Foster
7229ebbb08 Fix underaged account that isn't linked to a family help link. 2021-09-15 18:10:00 +10:00
Petr Mrázek
e2355eb276 NOISSUE enable listing symlinks in mod/world lists 2021-09-09 00:27:46 +02:00
Petr Mrázek
878c4fb810 NOISSUE Provide dummy implementation for the secrets library 2021-09-05 18:23:49 +02:00
Petr Mrázek
938f896bfa GH-4014 change updater to recognize new Qt 5.15.2 builds 2021-09-04 21:27:09 +02:00
Petr Mrázek
23442442d8 GH-3392 fix a bunch of bugs and implement STS error states 2021-08-31 01:11:52 +02:00
Petr Mrázek
3171014301 GH-3392 checking for migration status and refresh button in accounts list 2021-08-29 22:55:33 +02:00
Petr Mrázek
7239502675 GH-3392 Add recognition of already migrated Mojang accounts 2021-08-29 19:59:18 +02:00
Petr Mrázek
b2c1100b1c NOISSUE introduce the concept of secrets static library 2021-08-27 22:35:17 +02:00