Voxelum / x-minecraft-launcher

An Open Source Minecraft Launcher with Modern UX. Provide a Disk Efficient way to manage all your Mods!
https://xmcl.app/
MIT License
671 stars 99 forks source link

mod dipendency cheks #719

Open ShinobuKocho9906 opened 1 month ago

ShinobuKocho9906 commented 1 month ago

Is there an existing issue for this?

Launcher Version

0.45.2

Operating System

Windows

Architecture

x64

Current Behavior

when using "dipendency check" not all dipendences are found

image

Expected Behavior

dipendency chesk have to found that user have to install "mod menu 11.0.0" (like notificated in fabric loader Error)

Steps To Reproduce

Enviroment:

  1. check dipendencies
  2. the option will not found enything
  3. start minecraft
  4. see fabric loader Error

(video here: https://github.com/user-attachments/assets/7ce92ae8-0766-46df-b43a-861752e7bcec)

Anything else?

I think a solution: use "built in mod dipendency check" (the line under all mods image ) instead of dipendency in curseforge/modrinth description on the right (image

fabric Error:

image

anter manualy installing required dipendencies from fabric:

image
ci010 commented 1 month ago

This behavior is expected for current version. We only respect the modrinth/curseforge dependencies list.

Even though we can parse the dependencies list from mod files, we cannot map, for example, a mod with modid="modmenu" to the actual mod menu modrinth project.

In the future, we might be able to mitigate this situation by using collected the mod metadata mapped with modrinth/curseforge info.

ShinobuKocho9906 commented 1 month ago

what is the list under all mods?

ci010 commented 1 month ago

what is the list under all mods?

The mod jar file, will declare its dependenies in it mod metadata file. In the metadata file, it will use "modId" and "version" to describe its dependencies. Currently, we cannot map the "modId" and "version" to the actual modrinth/curseforge project, but in the future, it's possible as we are collecting the mapping data.

ShinobuKocho9906 commented 1 month ago

i mean to possibility to check dipendencies from mod metadatas (because we can read them, the check could recursively check the data being read and check if the mod is installed) and modrinth/curseforge instead using modrinth/curseforge dipendencies data only

ci010 commented 1 month ago

i see. I may add a view for strict dependencies check according to the metadata. Even though the launcher cannot do downloads from it, it could still hint user that such mods are missing.