Commit Graph

406 Commits

Author SHA1 Message Date
Sefa Eyeoglu
1a35fec134
Merge pull request #696 from Ryex/import-all-the-things
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/581
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/700
2023-01-16 10:04:09 +01:00
Sefa Eyeoglu
cd893e18d2
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-14 17:21:52 +01:00
flow
cf022524d1
Merge pull request #743 from flowln/fix_mods_with_wrong_modListVersion 2023-01-14 12:19:12 -03:00
flow
ebb0596c1a
fix: don't fail mod parsing when encountering invalid modListVersion
The spec (admitely a very old one) states that this entry should always
have the value "2". However, some mods do not follow this convention,
causing issues.

One notable example is the 1.6 version of Aether II for 1.7.10, that has
this value set at "5" for whatever reason.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 21:15:10 -03:00
flow
6a18079953
refactor: generalize mod models and APIs to resources
Firstly, this abstract away behavior in the mod download models that can
also be applied to other types of resources into a superclass, allowing
other resource types to be implemented without so much code duplication.

For that, this also generalizes the APIs used (currently, ModrinthAPI
and FlameAPI) to be able to make requests to other types of resources.

It also does a general cleanup of both of those. In particular, this
makes use of std::optional instead of invalid values for errors and,
well, optional values :p

This is a squash of some commits that were becoming too interlaced
together to be cleanly separated.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:00 -03:00
Aaron Sonin
b2f48eaeb8
Merge branch 'PrismLauncher:develop' into instance-accounts 2023-01-12 20:11:46 -08:00
Sefa Eyeoglu
fff52cb247
feat: add button to import component JSONs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-11 13:50:57 +01:00
Rachel Powers
574af2c795 chore: cleanup review suggestions
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-09 17:18:08 -07:00
Rachel Powers
03b75bf2a9 feat: Import all the things!
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-07 15:04:22 -07:00
Sefa Eyeoglu
f3f628410d
Merge pull request #576 from Ryex/identify-zip-packs
fix https://github.com/PrismLauncher/PrismLauncher/issues/349
2023-01-07 17:33:34 +01:00
Aaron Sonin
e0e3d4d8fe
Merge branch 'PrismLauncher:develop' into instance-accounts 2023-01-02 11:59:29 -07:00
Aaron
7e2d78bab5 Allow selecting a default account to use with an instance
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Rachel Powers
0ebf04a021
fix newlines
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-30 10:21:49 -07:00
flow
d55f47077a
Merge pull request #626 from leo78913/mods-provider-column
closes https://github.com/PrismLauncher/PrismLauncher/issues/402
2022-12-30 11:39:03 -03:00
Rachel Powers
7f438425aa refactor: add an identify function to make easy to reuse
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-29 19:47:19 -07:00
flow
257970c27d
refactor(Mods): make provider() return a std::optional
This makes it easier to check if a mod has a provider or not, without
having to do a string comparison.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-29 13:21:49 -03:00
Sefa Eyeoglu
c8d8046412
refactor: add logging category for credentials
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-27 17:04:42 +01:00
Rachel Powers
3691f3a296 fix: cleanup and suggested changes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-26 14:50:15 -07:00
Sefa Eyeoglu
6ea1234a3b
Merge pull request #618 from TheKodeToad/safer-destructive-actions
Fixes https://github.com/PolyMC/PolyMC/issues/948
2022-12-26 17:48:43 +01:00
Rachel Powers
8422e3ac01 feat: zip resource validation check for flame
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:17 -07:00
Rachel Powers
cfce54fe46 fix: update parse tests
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:17 -07:00
Rachel Powers
a7c9b2f172 feat: validate world saves
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:17 -07:00
Rachel Powers
eb31a951a1 feat: worldSave parsing and validation
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:01 -07:00
Rachel Powers
ccfe605920 feat: add shaderpack validation
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 15:55:10 -07:00
Rachel Powers
878614ff68 feat: add a ModUtils::validate
moves the reading of mod files into `ModUtils` namespace

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 09:42:02 -07:00
Rachel Powers
64c51a70a3 feat: add initial support for parseing datapacks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 09:42:02 -07:00
leo78913
aa3633d2d7
fix: translate unknown mod provider
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-16 11:13:54 -03:00
flow
c440f33122
fix(ResourceModel): use a single ConcurrentTask for parsing tasks
This avoids creating a bunch of threads that fills up the maximum amount
allowed by QThreadPool, and causes a deadlock between the helper threads
and the main thread (main thread tries to create threads in painting
code, but isn't able to, so it keeps waiting for a thread to free up,
but all the threads are waiting on the main thread to process some
events).

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-15 13:51:07 -03:00
leo78913
4ee29b388d feat: add a provider column to the mods page
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-15 12:02:08 -03:00
Sefa Eyeoglu
849b92665e
Merge branch 'develop' into remove-updater 2022-12-14 23:22:27 +01:00
TheKodeToad
127b094c41 Improve handling of destructive actions
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-14 15:20:42 +00:00
Una
822c5a530e
Not all libraries are from Mojang
Signed-off-by: Una <me@unascribed.com>
2022-12-11 16:11:32 -08:00
Sefa Eyeoglu
7cc42269a9
Merge pull request #569 from Jan200101/PR/fix-mangohud 2022-12-11 18:31:05 +01:00
flow
5622bcc563
Merge pull request #461 from flowln/fix_big_resource_pack_imgs
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/360
2022-12-11 04:16:21 -08:00
Jan200101
deb9c98630
chore: replace naive mangohud preload with vklayer detection
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2022-12-11 11:01:34 +01:00
Jan200101
514e7ae6a0
fix: re-add LD_LIBARY_PATH to mangohud
Upstream officially supports the use of $LIB/mangohud/

Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2022-12-08 23:09:14 +01:00
flow
ab23f542c6
Merge pull request #423 from TheKodeToad/addagent
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/414
2022-12-02 06:40:18 -08:00
flow
fa98bf1ee7
Merge pull request #481 from ryanccn/import-resource-pack-dialog-uwu 2022-12-02 06:39:54 -08:00
TheKodeToad
31dc82b1a6 Make requested changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-11-29 09:43:08 +00:00
flow
4e27e132a0
fix: don't disable interaction on non-mod models when inst. is running
It is still useful for mods though, since we don't wnt to allow
disabling mods when the instance is running, as that wouldn't affect the
running instance, possibly causing confusion

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-28 12:02:38 -03:00
Sefa Eyeoglu
8cac61f0be
fix: check resource pack validity solely using pack format
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-27 18:41:52 +01:00
TheKodeToad
96e8217b00 Button to add agent
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-11-23 09:46:55 +00:00
Ryan Cao
f916ce8752
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import-resource-pack-dialog-uwu 2022-11-21 23:19:50 +08:00
Sefa Eyeoglu
fdbd8d9d2b
refactor: remove old updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-21 16:18:05 +01:00
flow
f55fc51e9b
fix: remove commented-out assertions
They may not hold true at all times, and that's fine.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-20 11:11:08 -03:00
flow
df0f9259c0
refactor: move RP/TP validation to their respective utils
This makes it easier to validate individual resources, and allows the
logic to be used in other places in the future, if we need to.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-20 11:10:26 -03:00
Sefa Eyeoglu
30607c34a1
Merge pull request #291 from TheKodeToad/betterjavalauncher 2022-11-19 18:45:15 +01:00
Ryan Cao
1f6b8f9d2b
fix instance IDs and resource pack imports
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-11-19 23:59:30 +08:00
Ryan Cao
a33b804923
fix: add resource pack format for 1.19.3
Co-authored-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-11-19 23:47:47 +08:00
Ryan Cao
f527958cb3
fix: check if packFormat is valid for resourcepack parsing
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-11-19 23:42:56 +08:00
Ryan Cao
b1bdc6f745
fix resource packs and add support for texture packs
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-11-19 23:38:05 +08:00
Sefa Eyeoglu
ce958f4ffd
refactor: use isEmpty instead of size for lists
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-16 23:20:47 +01:00
Sefa Eyeoglu
40970a1a87
fix: serialize metadata extensions
Prism has introduced a few extensions to the meta component version
format, which were not exported as JSON in the launcher. This caused the
`Customize` button on the version page to not write these new properties
to the custom component file.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-16 18:11:18 +01:00
Sefa Eyeoglu
8aae652be1
fix: remove unnecessary condition
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-16 18:10:54 +01:00
flow
c4c1e75de8
fix: use QPixmapCache only from the main thread
It's a required condition.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-15 18:14:03 -03:00
flow
7705f290ca
fix: don't retry to load RP images that can't fit in the cache
Avoids an infinite loop when the image is too big.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-15 12:07:11 -03:00
flow
cedc7754d9
Merge pull request #428 from DioEgizio/fixes-to-CI 2022-11-14 14:16:01 -08:00
TheLastRar
aef5349aee Pass index.parent() as parent parameter for rowCount
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-14 19:05:57 +00:00
TheLastRar
ac993aa31f Use Q_UNUSED instead of [[maybe_unused]] in onParseFailed
Qt5 on Ubuntu cannot handle [[maybe_unused]] in this function

Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-14 19:05:57 +00:00
TheLastRar
fce323b945 Check parent in rowCount/columnCount/canFetchMore
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-14 19:05:57 +00:00
TheLastRar
5558f3d2cc Mark paramaters of dropMimeData as unused
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-14 19:05:57 +00:00
TheLastRar
08f8623cb7 Mark paramaters of onParseFailed as unused
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-14 19:05:56 +00:00
TheLastRar
3cba359d38 Mark paramater runtimeContext as unused
Base class uses variable, but ImplicitRule does not

Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-14 19:05:56 +00:00
txtsd
0a04c3a2a7 fix: Fix the error that CodeQL caught
Signed-off-by: txtsd <code@ihavea.quest>
2022-11-13 18:54:55 +01: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
TheKodeToad
32c2ad2bbd A lot more cleanup
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-11-08 17:51:18 +00:00
TheKodeToad
9931c9a286 Remove arguments being passed twice
Passing the classpath into stdin has no effect. Java is already provided the classpath with -cp, which pretty much takes up the largest part of the arguments anyway, which leads me to wonder, what's the point of stdin arguments at all?

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-11-08 16:37:00 +00:00
TheKodeToad
e68dcea6bc Various tweaks to the Java component of the launcher
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-11-08 16:24:55 +00:00
flow
353b51f11e
refactor: move MMCStrings -> StringUtils
General utilities can go in here >:)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-04 16:53:24 -03:00
flow
76050880f1
fix: use unicode variant for marking '.index' hidden
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-04 16:53:21 -03:00
txtsd
8f045af867
Merge pull request #374 from flowln/fix_lto 2022-11-04 15:39:41 +05:30
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
Ryan Cao
8467daa0ec
oop
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-10-31 14:58:38 +08:00
Ryan Cao
27dfe30fe6
Update VerifyJavaInstall.cpp
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-10-31 14:44:11 +08:00
Ryan Cao
19a8d51bf3
fix: more user friendly Java warning text
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-10-30 11:56:43 +08:00
Samisafool
8201d1df02
Rename
Signed-off-by: Samisafool <thenerdiestguy@gmail.com>
2022-10-19 15:02:43 +05:30
Sefa Eyeoglu
3ac398ac49
fix: use display name in code
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-10-18 09:50:27 +02:00
Sefa Eyeoglu
fafc9cf9ca
Merge pull request #1033 from Scrumplex/multi-arch-support 2022-10-08 20:12:40 +02:00
Sefa Eyeoglu
3111e6a721
chore: add missing license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-10-08 20:12:07 +02:00
Sefa Eyeoglu
0dca9cb6b8
Merge pull request #1162 from Trial97/feature/Replace-toml-library 2022-09-30 19:44:45 +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
Alexandru Ionut Tripon
ed261f0af9
Update launcher/minecraft/mod/tasks/LocalModParseTask.cpp
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2022-09-25 20:38:55 +03:00
Trial97
600c49f7f0
Replaced tomlc99 with tomlplusplus
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2022-09-24 00:10:27 +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
941d75824a
refactor: add instance creation abstraction and move vanilla
This is so that 1. Code is more cleanly separated, and 2. Allows to more
easily add instance updating :)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:32:36 -03:00
Sefa Eyeoglu
7bd8bd13fe
feat: support multiarch system classifiers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 16:01:06 +02:00
Sefa Eyeoglu
09e85e948c
refactor: introduce RuntimeContext
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 15:59:43 +02:00
Sefa Eyeoglu
9ec1c00887
fix: register JavaRealArchitecture for MinecraftInstance
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 15:58:56 +02:00
Sefa Eyeoglu
a24d589845
fix: ensure all resource folders exist
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:39:05 +02:00
Sefa Eyeoglu
23fc453fae
fix: comments and naming of texture pack stuff
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:26:15 +02:00
Sefa Eyeoglu
aad6f74db6
fix: tests
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:26:15 +02:00
Sefa Eyeoglu
07dcefabcb
feat: add texture pack parsing
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:26:15 +02:00
txtsd
40c68595d7
Merge pull request #1150 from flowln/fix_crash_on_game_quit 2022-09-20 09:41:59 +05:30
flow
0873b8d304
fix: prevent container detaching in ResourceFolderModel
and use const accessors whenever we can!

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-16 20:12:31 -03:00
flow
c9eb584ac8
fix: prevent deletes by shared pointer accidental creation
This fixes the launcher crashing when opening the game :iea:

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-16 20:12:30 -03:00
flow
10493bd44a
fix: move newly allocated resources to the main thread
This avoids them getting deleted when the worker thread exits, due to
thread affinity on the created thread.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-16 20:12:30 -03:00
flow
9e35230467
fix: memory leak when getting mods from the mods folder
friendly reminder to always delete your news.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-16 20:12:30 -03:00
flow
81e326571b
fix: enable demo launch only on supported instances
e.g. >= 1.3.1 instances

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-15 19:27:42 -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
333dbca01e
Merge pull request #1105 from flowln/better_resource_packs
Add basic resource pack parsing and fix issues
2022-09-07 08:30:36 -03:00