[Bug] For mods that contain multiple loader metadata files at the same time, `Check for Updates` may result in mismatched releases
平台 | Platform
Windows 11
问题描述 | Problem Description
Using release-3.5.8 (release).
- Install a 1.20.6 Fabric instance
- Install relatively old versions of CreativeCore and AmbientSounds
- Trigger
Check for Updates - You will find that the former matches the correct release, and the latter matches the release for NeoForge
According to my comment at https://github.com/HMCL-dev/HMCL/issues/3048#issuecomment-2132564398, the problem should be strange behavior of developers during the build process. The former only contains the metadata files for the corresponding modloader, while the latter contains both. I tried Prism Launcher, which contains similar functionality, and it matched the corresponding releases correctly.
Can we follow https://github.com/HMCL-dev/HMCL/pull/3089 and revise the corresponding code logic?
Preview
Thanks to TheWhiteDog9487 for discovering and mentioning this issue.
启动器崩溃报告 / 启动器日志文件 | Launcher Crash Report / Launcher Log File
N/A
If the latest version support both Fabric and NeoForge, why can't HMCL update the mod to this version?
If the latest version support both Fabric and NeoForge, why can't HMCL update the mod to this version?
No, it is not supported. The developers released it in two files (Fabric and NeoForge).
I suddenly remembered that there are indeed developers who have implemented a release file to support multiple modloaders at the same time (such as the Serilum series and Zume), but this situation will not be discussed here, only traditional mods (the support of different modloaders reflects into a different file).
@burningtnt
Any ideas on this issue?
It's strange that HMCL seems not to have checked the mod loader type. It will take longer time.
Could you provide a screenshot on the local mod list page for mod AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar?
Could you provide a screenshot on the local mod list page for mod AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar?
@burningtnt
HMCL-dev@e0ecd5e, HMCL-dev/HMCL/actions/runs/9547498968
Preview
Could you provide a screenshot on the local mod list page for mod AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar?
@burningtnt
HMCL-dev@
e0ecd5e, HMCL-dev/HMCL/actions/runs/9547498968Preview Image
Could you provide a screenshot of the zip root directory after opening AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar this mod with a zip file viewer?
It's strange that HMCL consider this mod as a NeoForge mod.
@burningtnt
Preview
By the way, if the reply includes pictures, it is not recommended to quote them.
@burningtnt
Preview Image
I suppose this bug is because AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar supports both Fabric and NeoForge. And HMCL only consider whether is support NeoForge.
I suppose this bug is because AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar supports both Fabric and NeoForge. And HMCL only consider whether is support NeoForge.
There is a reason why the mod’s developer marked FABRIC in the filename, and @TheWhiteDog9487 also proved this in https://github.com/HMCL-dev/HMCL/issues/3048#issuecomment-2132535344. I just tested this as well, the game does not launch on a NeoForge instance using AmbientSounds_FABRIC_v6.0.2_mc1.20.6.jar. Strictly speaking, this is a problem for the developers of the mod. Maybe I'll consider giving him/her/them feedback.
But having said that, some mods do support multiple modloaders in a single jar, and for such mods this issue is not a big deal, like the Zume and Serilum series. But showing them as mods from another modloader in one modloader’s instance does not sound like a good idea.
Yes, I agree with you. We will provide support for mods with multiple modloaders. But that maybe another task.
@burningtnt
Regarding the issues with AmbientSounds, I have reported them to its developers.
https://github.com/CreativeMD/AmbientSounds/issues/236
Sorry, but AmbientSound has one codebase for both versions. CreativeCore deals with the loading on different sides. All I could is to delete the files inside the jar when compiling them. But i also do not understand why the launcher needs to the stuff in that way anyway. I mean the launcher should know if a given instance is forge or fabric, right?
@Glavo 最近的 commit 有解决这个问题么?
#4621 应当在一定程度上解决了该问题,烦请社区帮助测试
就本 issue 提到的模组来说,经测试已经可以正确匹配更新。 I've tested the mods mentioned in this issue and confirmed they now correctly match updates.
CC @Glavo @burningtnt @TheWhiteDog9487