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.13k stars 47 forks source link

Specific version overrides #421

Closed Rerented closed 1 month ago

Rerented commented 3 months ago

The Problem

There should be a way to specify a specific version override for mods, as mods like Lithium or Indium depend on specific Sodium versions and they aren't always compatible when a new version of Sodium is released for the relevant version of Minecraft.

Steps to reproduce

  1. Find a mod that has a dependency for an older version of another mod.
  2. Add both mods to the profile.
  3. Install the profile and launch the game.
  4. The game will crash as the mods' latest versions aren't compatible.

Your Solution(s)

I suggest to fix this, a new optional mod version override parameter should be added that tells ferium to always install a specific version of the mod and not upgrade past it. Essentially allowing us to lock the version of a mod at a specific version until its dependent(s) gets updated to support the latest version of it.

On Modrinth, this can work using the version number property as it is listed on the website. e.g. ferium add sodium --version "mc1.20.1-0.5.10" e.g. ferium add soundsbegone --version "1.2.4"

On CurseForge, there is no concept of individual mod versions yet, so the file name property could used instead (or perhaps the version name, although I'm not sure if the version name is enforced to be unique). e.g. ferium add 394468 --version "sodium-fabric-0.5.10+mc1.20.1.jar" e.g. ferium add 874633 --version "soundsbegone-1.2.4.jar"

Rerented commented 3 months ago

I've just realised this is a duplicate of #82. My solution might provide some insight into how the feature could be implemented though.

theRookieCoder commented 1 month ago

Duplicate of #82