HMCL icon indicating copy to clipboard operation
HMCL copied to clipboard

[Feature] 为模组管理增加一个依赖分析功能

Open TheWhiteDog9487 opened this issue 1 year ago • 3 comments

描述 | Description

就是类似于apt那种,对文件夹里的模组在后台自动进行依赖分析。 可以通过一些方式把依赖关系显示出来,比如哪些依赖于A,哪些依赖于B,这种树状结构?

实现的话,至少fabric应该难度不大,模组的fabric.mod.json里面都写了的

"depends": {
    "fabricloader": "\u003e\u003d0.15.0",
    "fabric-api": "\u003e\u003d0.95.3",
    "puzzleslib": "\u003e\u003d20.4.18",
    "minecraft": "1.20.4",
    "java": "\u003e\u003d17"
  },

这个是EffectDescriptions的

原因 | Reason

就不说大型整合包,只算我自己平时用的Fabric的模组列表。 前期我还能够记得起来大致的依赖关系,后面数量一起来就完全搞不清楚谁是谁了。具体的例子的话,我至少能找两种:

  1. 比如今天模组更新之后崩溃,我看日志觉得可能和sodium有关系,我就给他禁用了进行测试,一启动游戏fabric loader直接报告三四个依赖于sodium的模组不能工作,我还要去挨个找到你是谁你是谁每个都关掉。
  2. 我之前用过Music Player,这家伙依赖于U Team Core,后来不用了,我就把Music Player给禁用了。U Team Core被我忘在一边了,等我想起来的时候我已经不记得这个模组是谁的前置依赖项了。所以我想说能不能有一个类似于apt autoremove的东西。

TheWhiteDog9487 avatar May 25 '24 10:05 TheWhiteDog9487

https://github.com/HMCL-dev/HMCL/issues/3025 https://github.com/HMCL-dev/HMCL/issues/2598

类似这个?

zkitefly avatar May 25 '24 11:05 zkitefly

#3025

类似这个?

3025这个描述的是A依赖B,但没有安装B导致的启动崩溃,加个按钮扫描一下有没有这种问题。 应该说属于一个类型,但和我描述的两个场景都不一样

我期望的是:

  1. 很多模组依赖A,我把A禁用的时候弹一个窗,说明如果关掉A那么有哪些模组不能工作,会导致崩溃,是否要同步禁用掉这些模组。
  2. 自动检查有哪些模组作为依赖项,但是并没有任何模组依赖它。这种lib模组可以安全地被禁用(优化游戏性能和加载时间),可以做成一个按钮或者别的机制?

TheWhiteDog9487 avatar May 25 '24 11:05 TheWhiteDog9487

#3025 #2598

类似这个?

2598这个也不是同一个东西,虽然都可以归类于模组兼容性。

TheWhiteDog9487 avatar May 25 '24 13:05 TheWhiteDog9487