gorilla-devs / ferium

Fast and multi-source CLI program for managing Minecraft mods and modpacks from Modrinth, CurseForge, and GitHub Releases
Mozilla Public License 2.0
1.14k stars 49 forks source link

Allow third-party restricted mods to be downloaded using a browser #149

Open theRookieCoder opened 2 years ago

theRookieCoder commented 2 years ago

The problem

Currently, it is not possible to add restricted mods, or download them for modpacks. However, some launchers have added the ability to open browser pages with the download link (the one with ads of course). This will be implemented for regular profile mods, and mods from modpacks that have the restriction.

My solutions

The solution was initially described here

I'm planning to add support for opening browser tabs (using webbrowser) with the download page of unsupported mods, then listening on the downloads folder (with notify) and moving the files in to the output directory. This is what GDLauncher and ATLauncher are currently doing, I believe. This way you will be able to add restricted mods too, and download them semi-automatically.

arlyon commented 2 years ago

Can I add as an additional request that we change the workflow slightly? Currently I have to download unsupported mods and place them into my user folder, but that isn't managed by ferium. I would much rather be able to place them inside my .config/ferium/.cache folder which acts as a backup repository, such that ferium is capable of managing manually sourced mods without user intervention. Thoughts?

theRookieCoder commented 2 years ago

ferium is capable of managing manually sourced mods

What exactly does that mean?

arlyon commented 2 years ago

It is similar to yarn's caching mechanism. They download and store all packages in a local cache on your disk (https://yarnpkg.com/features/offline-cache) by default at ~/.yarn/berry/cache which it uses to look up packages before fetching them. We could conceivably have a workflow where packages that cannot be sourced automatically can be placed in a global cache folder instead of the user folder (.cache/ferium/mods) and then when running upgrade, files that already exist in the cache will be used instead of attempting to download them. That way once you manually download a non-automated file, it will continue to exist in your machine's cache forever.

theRookieCoder commented 2 years ago

That feature would fall under #109