flow
e3f8d99087
refactor(Inst. Import): use m_* for member variables in MR components
...
Makes it clearer what is being changed when.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-17 12:41:10 -03:00
flow
22aebc2215
fix(Inst. Import): correctly set component versions when updating
...
This makes it so that the later call to parse the old manifest doesn't
change the class data, so that the new data con continue there and be
reflected on the component list later.
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-17 12:38:58 -03:00
flow
5450e0edf3
fix(Inst.Import): don't set managed pack info from imported ZIPs
...
This prevents the Managed Pack page from showing up even though there's
no way for it to work correctly.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-13 13:43:27 -03:00
flow
4a13d72997
Merge pull request #32 from flowln/modpack_update_page
...
Closes https://github.com/PrismLauncher/PrismLauncher/issues/180
Closes https://github.com/PrismLauncher/PrismLauncher/issues/170
2022-12-10 06:34:18 -08:00
Rachel Powers
0f48e0fc06
fix(blockedmods): Track and use targetFolder for blocked files
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-08 18:42:51 -07:00
flow
34230bfcf4
fix: don't try updating Flame instance names when updating versions
...
Since the exact version string is only available in the manifest,
there's no easy way of getting it before commiting to the update, so
there's not much of a good way of showing the updated name in the UI,
and using the displayName is weird and gives some buggy behavior.
We may want to re-enable it in the future if we find a reliable way of
showing the correct info on the UI before starting the update.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-07 18:05:46 -03:00
flow
bb386a1162
fix(ManagedPackPage): only update the current instance exactly
...
Also carry on the original ID to avoid updating the wrong instance.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
968366c2ae
feat+fix: allow forwarding extra info to InstanceImportTask
...
This allows us to pass to the creation instances their actual pack ID
and version ID, that in Flame's case, are only available before starting
to create an instance.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:32 -03:00
flow
82699cc297
feat: allow skipping the update confirmation dialog
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:32 -03:00
flow
08d008a5aa
refactor: abstract away update confirmation dialog
...
... so that we can avoid code duplication.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:29 -03:00
flow
cba2608c1c
feat: add logic for the modrinth instance modpack page
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 16:54:54 -03:00
Sefa Eyeoglu
c8c3fe1023
chore: add license headers
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-06 13:18:50 +01:00
Sefa Eyeoglu
85bddbed86
chore: reformat code
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-06 13:16:27 +01:00
Sefa Eyeoglu
07359865c6
fix: don't allocate BlockedsModsDialog
...
Fixes temporary memory leak!
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-05 21:39:26 +01:00
flow
386fb28a35
fix(FileResolvingTask): Fail instead of crash when there's API errors
...
Also remove non-used variable (rip).
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-01 15:33:35 -03:00
Rachel Powers
9af1b00df5
feat: add list of watched folders
...
move explanation text into dialog class and it's own label
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-11 18:05:19 -07:00
Rachel Powers
3f6cc17818
properly handle a currently running hashing task
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-11 15:45:40 -07:00
Rachel Powers
5909af9878
drag&drop + add folder to watch
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-11 14:17:33 -07:00
flow
64576f4c4c
Merge pull request #304 from Ryex/move-downloads
...
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/222
2022-11-11 12:48:53 -08:00
Rachel Powers
2f10fa8b61
add some extra debug logs for CF blocked mods
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-11 05:41:32 -07:00
Sefa Eyeoglu
392452d422
Merge pull request #397 from flowln/windows_mod_updater_fixes_maybe
...
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/226
2022-11-10 14:34:15 +01:00
flow
589d160515
fix: use cross-platform toStdString in FlameHasher
...
Almost the same issue from toml++ :p
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-07 14:04:48 -03:00
Sefa Eyeoglu
5e9b26dbef
Merge pull request #366 from TheLastRar/MSVC-Build
2022-11-04 23:49:54 +01:00
flow
d35c2db41e
fix: separate types of std::string in Packwiz
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-04 16:53:25 -03:00
TheLastRar
e29259cd55
Fix: Resolve ambiguous overload errors
...
Clang-cl fails to select the correct function and instead errors
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-04 18:11:39 +00:00
TheLastRar
c993209b76
Fix: Explicitly specify Version.h path
...
MSVC uses a different search mechanism that ends up picking the mete Version.h
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-03 21:35:27 +00:00
flow
7956e6f04e
fix: don't use forward-declared Ptr types in meta/
...
This would cause ODR violations when those headers were included in
other places that also included stuff like "Version.h" (note the
"meta/Version.h"), which can cause problems, especially in LTO.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-01 19:48:26 -03:00
Rachel Powers
209a1650e4
clang_format and code cleanup
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 07:06:36 -07:00
Rachel Powers
6010ce0dc5
chore(remove FS::copyFile):
...
Now that #333 is merged and FS::copy works on non directory copyFile can be removed.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:28:57 -07:00
Rachel Powers
a7a331a26e
ensure FS::copyFile is marked for removal
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:24:11 -07:00
Rachel Powers
fda2c116be
code quality cleanup
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:24:11 -07:00
Rachel Powers
e9d4793b1e
minor clean up and add some docs
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:24:11 -07:00
Rachel Powers
13c7efa058
copy found mods to instance (FTB and Flame)
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:24:11 -07:00
Rachel Powers
1598d65824
watch filesystem, compute and match hashes
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:24:11 -07:00
Rachel Powers
028e086960
send blocked mod info to dialog & prototype UI
...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-11-01 04:24:11 -07:00
flow
e6e92f2b0e
fix: only allow workarounds for blocked mods from MR when 100% safe
...
If a version on Modrinth has more than a single mod loader associated,
it means that it's possible we might get the wrong file for download,
since individual files don't really have this kind of metadata in the
API response.
So, in such cases, it's best to let the user take care of it instead.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-28 13:31:21 -03:00
Sefa Eyeoglu
93894f62ff
fix: avoid segfault for unexpected API reponse
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-10-28 00:08:15 +02:00
flow
b638a6ae95
fix: retry mod search job after aborting it
...
This way, we don't get stuck with an aborted job in our way! :o
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-24 09:09:24 -03:00
Sefa Eyeoglu
24e4db676a
Merge pull request #224 from jamierocks/atl-abort-close-optional-mods-dialog
2022-10-22 15:31:53 +02:00
Sefa Eyeoglu
970e4b020e
fix: fix segfault when resolving Flame resources
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-10-22 14:11:51 +02:00
Jamie Mansfield
a6b13487f0
ATLauncher: Abort install if optional mods dialog is closed
...
This matches the behaviour of ATLauncher.
2022-10-22 12:35:34 +01:00
flow
01b90809e8
fix: memory leak when finishing blocked mods job
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-20 16:55:22 -03:00
flow
c90a88b6b6
fix: correct ftb legacy too
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-14 12:18:06 -03:00
flow
dfa220ef02
fix: issues with aborts (again)
...
i hate it
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-13 15:10:35 -03:00
flow
83654a193e
refactor+fix: Make FTB install task similar to other install tasks
...
In particular, this changes the order so that the instance gets created
before downloading the mods (like other install tasks), and the mod download
directly puts the files in the staging folder (like the others), instead
of that weird makeCached and copy stuff.
This fixes some issues with modpack downloads from FTB, like creating an
instance with no mods in it.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-13 13:27:52 -03:00
Sefa Eyeoglu
0dca9cb6b8
Merge pull request #1162 from Trial97/feature/Replace-toml-library
2022-09-30 19:44:45 +02:00
timoreo
dd6f670dec
fix: Fixed memory leak
...
Signed-off-by: timoreo <contact@timoreo.fr>
2022-09-26 11:50:55 +02:00
timoreo
9ff364b0d3
huge nit: added const refs, everywhere
...
Signed-off-by: timoreo <contact@timoreo.fr>
2022-09-26 11:50:31 +02:00
Trial97
600c49f7f0
Replaced tomlc99 with tomlplusplus
...
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2022-09-24 00:10:27 +03:00
flow
06019f01e3
feat: add dialog to ask whether to chaneg instance's name
...
This prevents custom names from being lost when updating, by only
changing the name if the old instance name constains the old version,
so that we can update it if the user whishes to.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:10 -03:00
flow
ddde885084
fix: show warning in case there's no old index when updating
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:10 -03:00
flow
be8c6f218c
refactor: setAbortStatus -> setAbortable
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:10 -03:00
flow
d2fdbec41d
fix: move file deletion to the end of the instance update
...
This makes it harder for problems in the updating process to affect the
current instance. Network issues, for instance, will no longer put the
instance in an invalid state.
Still, a possible improvement to this would be passing that logic to
InstanceStaging instead, to be handled with the instance commiting
directly. However, as it is now, the code would become very spaguetti-y,
and given that the override operation in the commiting could also put
the instance into an invalid state, it seems to me that, in order to
fully error-proof this, we would need to do a copy operation on the
whole instance, in order to modify the copy, and only in the end
override everything an once with a rename. That also has the possibility
of corrupting the instance if done without super care, however, so I
think we may need to instead create an automatic backup system, with an
undo command of sorts, or something like that. This doesn't seem very
trivial though, so it'll probably need to wait until another PR. In the
meantime, the user is advised to always backup their instances before
doing this kind of action, as always.
What a long commit message o.O
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:09 -03:00
flow
2dd372600c
fix: some abort-related issues
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:09 -03:00
flow
eda6cf11ef
feat(ui): improve info dialog before updating an instance
...
Adds a 'Cancel' option, and add a note about doing a backup before
updating.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:09 -03:00
flow
87002fb8f8
fix: hook up setAbortStatus in instance import tasks
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:09 -03:00
flow
6541570969
fix: simplify abort handling and add missing emits
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:09 -03:00
flow
4b0ceea894
fix: correctly set managed pack fields in CF pack
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:09 -03:00
flow
8c0816c166
feat: add override awareness to CF modpack updating
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
be769d07f1
fix: correctly set all managed pack fields in Modrinth pack
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
3a9d58e31c
feat: add override handling in modrinth pack update
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
7024acac06
feat: add override helper functions
...
These help us keep track of relevant metadata information about
overrides, so that we know what they are when we update a pack.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
6131346e2f
refactor: change the way instance names are handled
...
While working on pack updating, instance naming always gets in the way,
since we need both way of respecting the user's name choice, and a
standarized way of getting the original pack name / version.
This tries to circunvent such problems by abstracting away the naming
schema into it's own struct, holding both the original name / version,
and the user-defined name, so that everyone can be happy and world peace
can be achieved! (at least that's what i'd hope :c).
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
795d6f35ee
feat: add curseforge modpack updating
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
ebd46705d5
refactor: move creation of CF file download task to a separate function
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
72d2ca234e
refactor: move flame modpack import to separate file
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:07 -03:00
flow
2246c3359b
refactor: add throw_on_blocked
arg to Flame file parse
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:07 -03:00
flow
242fb156a2
feat: add 'getFiles' by fileIds route in Flame API
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:07 -03:00
flow
208ed73e59
feat: add early modrinth pack updating
...
Still some FIXMEs and TODOs to consider, but the general thing is here!
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:06 -03:00
flow
4441b37338
refactor: move modrinth modpack import to separate file
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:32:36 -03:00
Sefa Eyeoglu
4c7d3a103c
refactor: restructure tests
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-11 22:29:01 +02:00
flow
1b0ca47682
Merge pull request #939 from flowln/mod_downloader_improve
...
Some more UI / UX improvements to the mod downloader!
2022-09-07 08:27:11 -03:00
timoreo
4817f0312d
Fixed up a warning
...
Signed-off-by: timoreo <contact@timoreo.fr>
2022-09-06 14:32:19 +02:00
flow
2186b134a4
fix: Mod type enum -> Resource type enum
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-28 14:47:52 -03:00
Sefa Eyeoglu
f371ec210c
Merge pull request #1052 from flowln/resource_model
2022-08-28 16:52:53 +02:00
Sefa Eyeoglu
afcd669d2f
Merge pull request #965 from flowln/fat_files_in_memory
...
Refactor a bit EnsureMetadataTask and calculate hashes in a incremental manner
2022-08-28 11:03:12 +02:00
flow
3225f514f6
refactor: move general info from Mod to Resource
...
This allows us to create other resources that are not Mods, but can
still share a significant portion of code.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:41:59 -03:00
Sefa Eyeoglu
70a8f6743a
Merge pull request #919 from kumquat-ir/download-all-blocked
2022-08-20 12:50:01 +02:00
timoreo
c375e7b4df
Merge pull request #897 from jamierocks/atl-updating-initial
2022-08-11 08:50:05 +02:00
flow
7b27f200b1
fix: don't mutate QHash while iterating over it
...
Even though it was using a QMutableHashIterator, sometimes it didn't
work quite well, so this is a bit better.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-05 16:30:12 -03:00
flow
f4b207220c
fix: add some more nullptr checks / protection
...
die sigsegv 🔫
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-05 15:10:44 -03:00
flow
6aaf1f4f21
feat: lazy-load CF mod descriptions
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
368a0ddd44
feat: add mod descriptions to CF mods
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
6f052baa94
refactor: use function cb instead of class cb in getVersions
...
I've discovered even more functional programming! :^)
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
74c6c5cfbc
refactor: use function cb instead of class cb in getModInfo
...
I've discovered functional programming :^)
This makes this route more fit for general use.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
6e9a27f40f
feat: display the 'body' of a MR mod on the mod downloader
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:29 -03:00
kumquat-ir
9c105914f0
use BlockedModsDialog for ftb packs as well
...
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2022-07-31 15:05:47 -04:00
LennyMcLennington
94a63e3859
Merge pull request #941 from Scrumplex/bump-cxx-standard
...
Bump to C++17
2022-07-30 17:10:59 +01:00
flow
fbf1901d86
refactor: shuffle some things around to improve readability
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-26 20:33:33 +02:00
flow
0382f33c46
fix(ui): pump events to show "Copying modpack files..." text
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-26 20:33:33 +02:00
flow
13372f3f99
chore: clean up FTBPackInstallTask a bit and connect missing signals
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-26 20:33:33 +02:00
flow
e741cb7f0a
fix: add abort handlign in Flame's FileResolvingTask
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-26 20:33:33 +02:00
Sefa Eyeoglu
fb289c6b17
chore: add license headers
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-26 20:33:29 +02:00
Sefa Eyeoglu
75a7ea55d4
feat: implement mod resolving for FTB
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-26 20:33:10 +02:00
flow
e6f2a3893a
refactor+feat: improve code separation in ensure metadata
...
... and avoid calculating the same hash multiple times
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:54 -03:00
flow
631a93bcd8
refactor: add a HashUtils place for hashing stuff
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:54 -03:00
flow
b1763353ea
feat: do incremental calculation of CF's hash
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:53 -03:00
flow
15ec1abb6a
feat: use QIODevice for calcuating the JAR hash on Modrinth
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:53 -03:00
flow
cfda8dbb2b
refactor: use QIODevice instead of a whole QByteArray for hash calc.
...
This allows Qt to do its thing and optimize the data gathering from the
JAR.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:53 -03:00
Sefa Eyeoglu
c666c3e251
refactor!: bump to C++17 and C17
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-20 14:22:10 +02:00
Sefa Eyeoglu
28ae5d710e
fix: fix translations for mod updater
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-19 18:03:45 +02:00
flow
6bb8332b4b
fix: bogus returns in EnsureMetadataTask
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:43:12 -03:00
flow
de9e304236
fix: std::list -> QList
...
Qt6 removed Qlist::toStdList() 😭
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:45 -03:00
flow
001bbef9ee
fix: don't use shared_ptr for a background task T_T
...
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:44 -03:00
flow
c4316e81e6
change: make Mod a QObject used as a pointer
...
Prevents problems when copying it around!
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:44 -03:00
flow
5f75e531e6
fix: handling around disabled mods
...
Don't update disabled mods to prevent mod duplication. Also, chop
filename in the metadata with a '.disabled'.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
a7648d60ce
fix: don't require non-essential items in mod index
...
Also adds slug field.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
52c45c2d32
feat: add some mod api calls
...
- Get Project: Already existed but required a specific caller type. This
is more general.
- Get Projects: A single call to multiple of the above
Both providers support these calls.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
fd6755c93f
change: mod metadata improvements
...
- Use slug instead of name
- Keep temporary status before having local details
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
4e6978ff6f
feat: improve metadata gen. networking and performance
...
This makes the metadata generation code a lot messier and harder to use,
but there's not really much else that can be done about it while
preserving all it's capabilities :(
At least we now have speed
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
91a5c4bdcb
feat: add metadata get/delete via mod id
...
This is, in many cases, more reliable than name comparisons, so it's
useful specially in cases where a mod changes name between versions
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
6e2869834f
feat: add mod update dialog
...
This subclasses the Review mods dialog to make a "Update review" one.
Also, all the necessary components built until now are put together in a
coherent unity that checks and generates metadata on-the-fly and checks for
mod updates, while giving and receiving feedback to the user.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
b8b71c7dd2
feat: add mod update check tasks
...
Those tasks take a list of mods and check on the mod providers for
updates. They assume that the mods have metadata already.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
c3f6c3dd82
feat: add changelog to mod providers
...
The Modrinth changelog is fairly straight-forward, as it's given to us
directly with the API call we already did. Flame, on the other hand,
requires us to do another call to get the changelog, so it can introduce
quite a heavy performance impact. This way, we make it optional to get
such changelog.
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
844b245776
feat: add EnsureMetadataTask
...
This task is responsible for checking if the mod has metadata for a
specific provider, and create it if it doesn't.
In the context of the mod updater, this is not the best architecture,
since we do a single task for each mod. However, this way of structuring
it allows us to use it later on in more diverse scenarios.
This way we decouple this task from the mod updater, trading off some performance
(though that will be mitigated when we have a way of running arbitrary tasks
concurrently).
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
4bcf8e6975
feat: add api call to flame
...
Call added:
- Get Fingerprints Matches
- Get Mod File Changelog
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
0e52112016
feat: add some api calls to modrinth
...
Calls added:
- Get version from hash
- Get versions from hashes
- Latest version of a project from a hash, loader(s), and game version(s)
- Latest versions of multiple project from hashes, loader(s), and game version(s)
Some of those are not used yet, but may be of use later on, so we have
it if we need it :)
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:41 -03:00
Sefa Eyeoglu
3b4539de79
chore: update license headers
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00
Sefa Eyeoglu
c363423718
refactor: fix deprecation up to Qt 6
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00
Sefa Eyeoglu
ff2cd50bfa
refactor: replace QRegExp with QRegularExpression
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:17:52 +02:00
Sefa Eyeoglu
984692dc62
refactor: fix deprecation up to Qt 5.15
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:17:52 +02:00
Jamie Mansfield
a7fc23dd96
ATLauncher: Reset existing directory if required
2022-07-10 11:15:48 +01:00
txtsd
c1bcbf8c63
Merge pull request #880 from Scrumplex/fix-loader-importance
...
Make loader components not important
2022-07-10 15:44:17 +05:30
Jamie Mansfield
9e69b8fe1b
ATLauncher: Parse keeps and deletes from pack manifests
2022-07-10 11:05:11 +01:00
Jamie Mansfield
e0ae631d59
ATLauncher: Add modes to install task and display appropriate message
...
This will display the update/reinstall message for the installation
method currently in use..
2022-07-10 10:55:05 +01:00
Sefa Eyeoglu
e6fe701727
Merge pull request #808 from Scrumplex/fix-lgtm-warnings
2022-07-09 01:10:59 +02:00
flow
998271414e
Merge pull request #890 from Scrumplex/fix-technic-forge
...
Fix Technic instances using Forge
2022-07-08 16:18:59 -03:00
Sefa Eyeoglu
4ab0e70a9a
fix(technic): map loader libraries to components properly
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-08 17:28:06 +02:00
Sefa Eyeoglu
301b811310
fix: make loader components not important
...
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-07 09:58:03 +02:00
flow
4bfc445cf8
fix: add progress indicator on Flame mod resolution dialog
...
This code is super :pofat: omg
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:43:04 -03:00
flow
fb75c23f4e
Merge pull request #784 from Scrumplex/refactor-cmake
...
Refactor tests
2022-07-02 17:50:08 -03:00
Sefa Eyeoglu
9ec260619b
fix: fix warnings reported by LGTM.com
2022-06-17 16:34:32 +02:00
DioEgizio
1f6cef6f8a
fix https://github.com/PolyMC/PolyMC/issues/798
2022-06-15 09:11:23 +02:00
Ezekiel Smith
3e8d450741
Merge pull request #665 from jamierocks/h-managed-packs
...
PackPlatforms: Record where packs come from
2022-06-14 23:54:44 +10:00
Ezekiel Smith
27239b2dde
Merge pull request #634 from flowln/donate_links
...
More links for CF / Modrinth mods / modpacks
2022-06-14 23:52:00 +10:00
Sefa Eyeoglu
effe46db86
refactor: move away from UnitTest.cmake
2022-06-14 14:44:49 +02:00
Sefa Eyeoglu
a4ef0940ed
chore: add license headers
2022-06-12 13:50:58 +02:00
flow
e843b8e188
fix(test): fix packwiz test
2022-06-12 13:33:17 +02:00
flow
b3c8f9d508
revert: don't check modrinth whitelisted hosts
...
people didn't seem to like it, and its not required
2022-06-09 19:57:51 -03:00
flow
1b878030aa
fix: enable using more than one download url in mrpacks
...
Kinda, it's ugly and hackish, since we don't have the facilities to
do this properly (yet!)
2022-06-09 19:54:50 -03:00
flow
8966364648
Merge pull request #685 from kthchew/fix/technic-quilt
...
Add Quilt support for Technic modpacks
2022-06-06 18:03:05 -03:00
Sefa Eyeoglu
1ab00ca8b2
Merge pull request #426 from flowln/mod_perma
...
Add on-disk mod metadata information
2022-06-04 13:23:38 +02:00
Kenneth Chew
7ac16ed073
Use QStringList
instead of QSet<QString>
...
Co-authored-by: flow <flowlnlnln@gmail.com>
2022-05-30 14:40:20 -04:00
Kenneth Chew
3585e4764b
Add Quilt support for Technic modpacks
2022-05-30 14:14:03 -04:00
timoreo
2746251dcd
Fix modrinth search filters
2022-05-29 18:23:34 +02:00
Jamie Mansfield
80da1f1bb9
ATLauncher: Use ATLauncher rather than FTB in error messages
2022-05-29 00:04:28 +01:00
Jamie Mansfield
febdb85f96
ModpacksCH: Use ModpacksCH rather than FTB in error messages
2022-05-29 00:04:28 +01:00
Jamie Mansfield
96b76c8f5c
ModpacksCH: Make packs managed when installing
2022-05-29 00:04:27 +01:00
Jamie Mansfield
411bf3be03
ATLauncher: Make packs managed when installing
2022-05-29 00:04:27 +01:00
Jamie Mansfield
a98b6663e1
ATLauncher: Pass the full pack name through to the install task
2022-05-29 00:04:27 +01:00
Lenny McLennington
abd240468e
clean up validateDownloadUrl
2022-05-28 17:11:55 -03:00
flow
b5e00027d1
change: add 'gitlab.com' to whitelisted Modrinth modpack urls
2022-05-28 17:01:58 -03:00
flow
f4604bbf79
change: update whitelisted hosts in Modrinth modpacks
2022-05-28 17:01:52 -03:00
timoreo22
699ad316f0
Rework curseforge download ( #611 )
...
* Use the bulk endpoint on mod resolution for faster download
* Search on modrinth for api blocked mods
* Display a dialog for manually downloading blocked mods
2022-05-28 21:53:12 +02:00
Sefa Eyeoglu
938cae1130
revert: remove CurseForge workaround for packs too
...
Partial revert. Handles missing download URLs.
2022-05-25 23:14:13 +02:00
flow
e644380160
feat: add links to curseforge modpacks
2022-05-24 12:27:32 -03:00
flow
c5eb6fe6fb
feat: add links for curseforge mods
...
NOT DOWNLOAD LINKS! (someone would ask it i'm sure :p)
2022-05-24 12:14:08 -03:00
flow
ae2ef324f2
feat: add remaining links to modrinth mods
2022-05-24 11:58:11 -03:00
flow
d0337da8ea
feat: add remaining links to modrinth modpacks
2022-05-24 11:52:27 -03:00
flow
22e0527502
feat: add donate info to modrinth modpacks
2022-05-24 09:46:58 -03:00
flow
ca3c6c5e8a
feat: add donate links for modrinth mods
2022-05-24 09:38:48 -03:00
Jamie Mansfield
4ee5264e24
ATLauncher: Delete files from configs if they conflict with a mod
2022-05-23 21:44:01 +01:00
Jamie Mansfield
101ca60b2b
ATLauncher: Handle extra arguments depends
2022-05-23 20:57:15 +01:00
Jamie Mansfield
f28a0aa666
ATLauncher: Handle main class depends
2022-05-23 20:57:14 +01:00
flow
5a1de15332
fix: use a more robust method of finding metadata indexes
...
Often times, mods can have their name in different forms, changing one
letter to caps or the other way (e.g. JourneyMaps -> Journeymaps).
This makes it possible to find those as well, which is not perfect by
any means, but should suffice for the majority of cases.
2022-05-23 14:58:15 -03:00
flow
42f8ec5b14
fix: do modrinth changes on flame too
...
Also fix a dumb moment
2022-05-23 14:58:14 -03: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
0985adfd74
change: support newest changes with packwiz regarding CF
2022-05-23 14:58:08 -03:00
flow
59d628208b
feat: allow trying to use multiple hash types
2022-05-23 14:43:31 -03:00
flow
5c5699bba5
refactor: move individual pack version parsing to its own function
2022-05-23 14:43:31 -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
a99858c64d
refactor: move code out of ModIndex.h
...
Now it's in ModIndex.cpp
2022-05-23 14:43:07 -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
fab4a7a602
refactor: abstract metadata handling and clarify names
2022-05-23 14:42:28 -03:00
flow
092d2f8917
feat: add support for converting builtin -> packwiz mod formats
...
Also adds more documentation.
2022-05-23 14:42:28 -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
8e4438b375
feat: add parser for current impl of packwiz mod.toml
...
This reads a local mod.toml file and extract information from it. Using
C libs in C++ is kind of a pain tho :(
2022-05-23 14:42:27 -03:00
flow
eaa5ce4467
feat(ui): adapt SequentialTask to nested SequentialTasks
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
dca4ea5cea
Merge pull request #621 from Scrumplex/remove-curseforge-workarounds
2022-05-23 10:47:30 +02:00
flow
ac4497a1f2
Merge pull request #605 from jamierocks/h-atl-improv
...
ATLauncher: Various work to improve the platform support
2022-05-22 20:09:13 -03:00
Sefa Eyeoglu
cb69869836
revert: remove CurseForge workaround
...
We have been asked by CurseForge to remove this workaround as it
violates their terms of service. This is just a partial revert, as the
UI changes were otherwise unrelated.
This reverts commit 92e8aaf36f
, reversing
changes made to 88a93945d4
.
2022-05-22 22:07:03 +02:00
Sefa Eyeoglu
29ef1e2c4b
Merge pull request #597 from Scrumplex/refactor-modloader-modapi
2022-05-22 13:17:53 +02:00
Jamie Mansfield
b84d52be3d
ATLauncher: Display warnings when selecting optional mods
2022-05-21 15:20:38 +01:00
Jamie Mansfield
305973c0e7
ATLauncher: Display install messages if applicable
2022-05-21 15:19:55 +01:00
Jamie Mansfield
7c251efc47
ATLauncher: Display mod colours in optional mod dialog
2022-05-21 15:18:50 +01:00
timoreo
c04adf7452
Do the url trick on initial modpack download too
2022-05-21 08:31:07 +02:00
timoreo
6542f5f15a
Apply suggestions
2022-05-20 22:06:36 +02:00
timoreo
30b56dbcbd
Port temp fix to mods too
2022-05-20 22:00:38 +02:00
timoreo
6afe59e76b
Very Temporary Fix for curseforge
2022-05-20 21:19:19 +02:00
Jamie Mansfield
f5f59203a2
ATLauncher: Reduce boilerplate code for fetching versions
2022-05-20 18:05:58 +01:00
Jamie Mansfield
c329730de8
ATLauncher: Install LiteLoader as a component where possible
2022-05-20 18:03:32 +01:00
Jamie Mansfield
97a83c9b7a
ATLauncher: Avoid downloading Forge twice for older packs
...
This resolves a quirk where Forge would still be downloaded for use as
a jarmod, even when we detected Forge as a component.
2022-05-20 17:58:00 +01:00
Sefa Eyeoglu
36045a8b0a
chore: improve readability
...
Co-authored-by: flow <thiagodonato300@gmail.com>
2022-05-19 12:37:20 +02:00
Sefa Eyeoglu
943090db98
refactor: allow tracking multiple mod loaders
2022-05-19 08:49:27 +02:00
flow
441075f610
fix: version field in technic pack manifest being null
...
Sometimes, the version field, that is supposed to be a string, was a
null instead. Inspecting other entries, seems like the default for not
having a version should be "", so I made it like that in case the
version was null.
I hope this fixes the issue :^)
2022-05-18 17:17:16 -03:00
Sefa Eyeoglu
cc13310083
Merge pull request #565 from Scrumplex/modrinth-packs
...
Initial Modrinth modpack support
2022-05-17 16:09:22 +02:00
flow
887246a66b
fix: typo and useless code
2022-05-16 17:09:14 -03:00
dada513
3070565fa3
Merge pull request #545 from DioEgizio/patch-4
2022-05-15 21:42:51 +02:00
flow
7194bb1b81
fix: validate whitelisted download urls
2022-05-15 16:06:49 -03:00
flow
5f2398fe59
chore: license headers 2
2022-05-15 08:26:34 -03:00
Sefa Eyeoglu
3abf466632
chore: add/update license headers
2022-05-15 13:20:05 +02:00
flow
4bb429a0fb
change: use build variables for the modrinth API URLs
...
Make it more consistent with the others
2022-05-15 07:43:02 -03:00
flow
4a0e4fdb85
fix: add author page url
2022-05-15 07:15:56 -03:00
Sefa Eyeoglu
9731e06728
fix: fix build on Qt 5.12
2022-05-15 11:49:27 +02:00
flow
4745ed2818
fix: choose valid download url even if it's not the primary one
...
It seems to be possible to have modpack versions that have to primary
file. In those cases, we pick a valid one "at random".
2022-05-14 22:50:04 -03:00
flow
9899a0e098
fix: Have the URL be the project URL itself
...
(I think, doesn't seem to work for the waffle though, probably because
of the staging API :/)
2022-05-14 21:47:35 -03:00
flow
4fda35b466
feat: add modrinth pack downloading
...
Things that don't work / work poorly (there's more for sure but those
are the evident ones):
- Icons are broken in the import dialog
- No way to search for private packs
- Icons are not downloaded when downloading a mod
- No support for multiple download URLs
- Probably a lot more...
2022-05-14 20:19:26 -03:00
kb1000
db03846358
Add support for importing Modrinth packs from files
2022-05-14 20:01:09 +02:00
timoreo22
649b8ac7c6
Merge pull request #537 from PolyMC/stable
...
Merge stable into develop
2022-05-09 18:06:56 +02:00
DioEgizio
96b2758169
fix websiteurl in curseforge modpacks
2022-05-09 17:42:17 +02:00
Sefa Eyeoglu
c4549a5375
Update launcher/modplatform/flame/FlameModIndex.cpp
...
Co-authored-by: flow <thiagodonato300@gmail.com>
2022-05-08 16:25:51 +02:00
Sefa Eyeoglu
e9b3140d12
Update launcher/modplatform/flame/FlameModIndex.cpp
2022-05-08 16:25:45 +02:00
Ryan Cao
22f5128e39
adopt changes from #497 remapped
2022-05-08 15:22:50 +08:00
Jamie Mansfield
45783c1661
ATLauncher: Support using share codes
2022-04-22 20:37:55 +01:00
Sefa Eyeoglu
fcdc7a1a35
fix: fix Modrinth query when Quilt is in use
2022-04-19 10:22:50 +02:00
Sefa Eyeoglu
cab9afa45f
fix: query for Fabric mods if Quilt is in use
...
Right now we want to include Fabric mods in our searches where possible.
Modrinth allows definining multiple loaders, while Flame only allows a
single value.
As a compromise we ask for Fabric mods only on Flame and for both Fabric
and Quilt mods on Modrinth.
2022-04-16 23:40:10 +02:00
flow
76dfb7825a
fix: 'All' filter working and get around CF API capabilities
2022-04-15 08:49:43 -03:00
flow
5cb0e75093
fix(ui): Refresh mod list when changing filtering options
2022-04-15 08:49:41 -03:00
flow
c730fd6e5f
feat: Use version filter when searching mods
2022-04-15 08:45:30 -03:00
Sefa Eyeoglu
9fb5674233
refactor: cleanup ModLoaderType
2022-04-14 21:55:03 +02:00
Sefa Eyeoglu
35cfb41a9c
fix: check for Quilt as Fabric-compatible loader
2022-04-07 18:46:09 +02:00
Sefa Eyeoglu
99d569ed0e
Merge pull request #384 from jamierocks/technic-improvements
2022-04-06 10:52:27 +02:00
Harry Peach
bd8b61651a
Check for empty slug before setting pack url
2022-04-03 23:12:46 +01:00
Jamie Mansfield
7f2615b2a5
Technic: Verify checksums for pack build mods
2022-04-02 13:53:44 +01:00
Jamie Mansfield
a232c2d509
Technic: Display available versions for Solder packs
2022-04-02 13:53:44 +01:00
Jamie Mansfield
c8205fda9f
Technic: Replace inline parsing code with API models
2022-04-02 13:53:44 +01:00
Jamie Mansfield
8df88e7fbb
Technic: Add API models for Solder packs
2022-04-02 13:53:44 +01:00
dada513
48a6380e31
Fix modrinth usable URL in mod downloader
2022-03-31 20:39:10 +02:00
flow
d00c320c00
optimize: Improve mod versions request to Modrinth
...
This uses more arguments in the GET request for mod versions on the
Modrinth API, filtering what versions can be returned, decreasing load
on Modrinth servers and improving a little the time it takes for the versions to be
available to the user.
This also removes the now unneeded check on correct modloaders in
ModrinthPackIndex, since it is now filtered by the Modrinth server.
Lastly, this adds a couple of helper functions in ModModel.
2022-03-24 19:31:11 -03:00
flow
e13ca94061
chore: resolve conflicts and merge upstream
2022-03-24 18:24:51 -03:00
flow
f3a244e90a
fix: fix skipping one on file counting in mod version parse
2022-03-22 19:45:31 -03:00
Sefa Eyeoglu
48c2146a42
fix(i18n): fix translatable strings
2022-03-19 12:29:46 +01:00
flow
fa5fa53592
fix: Use primary file for mod download on Modrinth
2022-03-18 10:52:47 -03:00
flow
8409aa2571
tidy: Fix clang-tidy issues on files changed in this PR
...
The checks used are roughly the same as the ones proposed in the
clang-tidy PR (except perhaps that I used modernize-* instead of listing
them individually,though I don't think this caused any readability
detriments).
In ModrinthModel.cpp and FlameModModel.cpp I ignored the
modernize-avoid-c-arrays one, mostly because making the sorts array an
std::array would most likely increase the code complexity because of the
virtual function. Aside from that, the static_cast warning from
Application.h was not dealt with, since it's not in this PR's scope.
2022-03-14 17:43:36 -03:00
flow
b3c2a56ece
fix: delete semicolons at the end of .cpp file's functions
...
my lsp is weird sometimes
2022-03-07 19:55:20 -03:00
flow
16bfafa29e
refactor: de-duplicate common code in network mod APIs
2022-03-07 17:45:28 -03:00
flow
f714adf6d2
refactor: move NetJob away from ModModel to ModAPI
...
This is done so that 1. ModAPI behaves more like an actual API instead
of just a helper, and 2. Allows for more easily creating other mod
providers that may or may not use network tasks (foreshadowing lol)
2022-03-07 16:22:57 -03:00
flow
39bd04f06f
refactor: use Enum instead of raw int for ModLoaderType
2022-03-06 16:45:39 -03:00
flow
2d68308d49
refactor: move url creation for mods to modplatform/
...
Moves all things related to creating the URLs of the mod platforms
that go to network tasks to a single place, so that:
1. Maintaining and fixing eventual issues is more straightforward.
2. Makes it possible to factor out more common code between the
different modplatform pages
2022-03-02 23:13:04 -03:00
flow
881b2f2b38
refactor: Use a single indexed pack for mods
...
Since there's little difference between them, let's remove duplication
and merge them.
2022-03-02 18:49:19 -03:00
flow
4e8f075ff3
fix: Do not loop when its not a fabric mod on Flame version validation
...
Since there's no validation for forge mods since the start, we were just
looping with no porpuse in this situation.
2022-02-27 22:02:43 -03:00
flow
075d900d45
fix: Always tell Flame API which modloader we are using
...
Fixes #206 partially. Although we don't list mods that have no
compatibility with the mod loader we are using, mods that have support
for both loaders still show up, and the versions for both the loaders
are still shown.
Also simplifies a little the logic in
FlameModIndex::loadIndexedPackVersions
2022-02-27 16:07:45 -03:00
Sefa Eyeoglu
624ab25cd4
refactor: set default InstanceType to OneSix
2022-02-21 22:59:07 +01:00
swirl
076efc4cb2
Merge branch 'update-quazip' of git://github.com/Scrumplex/PolyMC into develop
2022-02-03 14:14:12 -05:00
timoreo22
11841c47e6
Double braindead combo
2022-02-01 22:23:34 +01:00
timoreo
71b1ac9f34
Fix braindead moments
2022-02-01 21:56:52 +01:00