Hex-Dragon / PCL2

Plain Craft Launcher(我的世界启动器 PCL)的源代码,为支持社区研究而公开。
https://afdian.com/a/LTCat
Other
2.35k stars 178 forks source link

整合包安装信息存在问题:未将对象引用设置到对象的实例 #4277

Closed goumo closed 1 month ago

goumo commented 1 month ago

检查项

描述

在最新版本中安装附件中的整合包时提示 整合包安装信息存在问题:未将对象引用设置到对象的实例 ,但是在旧版本 PCL 或 HMCL 中可以正常安装

(.minecraft 文件夹内为模组文件和整合包图标,我认为和报错无关所以没有上传)

重现步骤

1、将压缩包拖进启动器安装

日志与附件

整合包安装信息.zip 日志.zip

3gf8jv4dv commented 1 month ago

The modpack you provided is missing the instance.cfg file.

goumo commented 1 month ago

The modpack you provided is missing the instance.cfg file.

That's all the files, and it's can be installed when using older versions of PCL

3gf8jv4dv commented 1 month ago

That's all the files, and it's can be installed when using older versions of PCL

I noticed that what you are trying to import is a MultiMC modpack. mmc-pack.json and instance.cfg are selected by default when exporting a modpack in MultiMC or Prism Launcher, somehow the latter is not included in the archive you uploaded.

I just did some testing and code review a while ago, and the latest PCL (whether from LTCatt or the build on GitHub) will try to read mmc-pack.json and instance.cfg when it detects the MultiMC modpack. I encountered the same situation as you when the latter was not included in the modpack.

https://github.com/Hex-Dragon/PCL2/blob/5bd8ac3870170b0acd4d81934227829f8e79ca84/Plain%20Craft%20Launcher%202/Modules/Minecraft/ModModpack.vb#L612-L621

I tried creating an empty file and named it instance.cfg, and put it in the modpack you provided, and PCL will display the pop-up window for the player to enter the instance name normally.

You said that earlier versions of PCL did not encounter similar problems. Could you provide a rough version range?

Regards.

goumo commented 1 month ago

Could you provide a rough version range?

around February

I don't know where to get the historical version, but at the time this modpack was installed without problems

3gf8jv4dv commented 1 month ago

around February

I don't know where to get the historical version, but at the time this modpack was installed without problems

LTCatt uploaded 最新正式版.zip in GitHub repo. You can find the stable version provided by LTCatt through the commit history. I will try several versions later.

3gf8jv4dv commented 1 month ago

I tested several versions and found that 2.7.4 worked fine, but 2.8.2 started to have the same problem as the author.

I further tested the versions within this range, 2.8.1 worked fine, but 2.8.2 started to have problems.

Not sure if this is related to the fix for #4194. Can be confirmed.

lactobionicAcid commented 1 month ago

HMCL 读取该整合包时似乎直接跳过了 mmc-pack.json 文件... 也就是说, HMCL 根本就没把这玩意作为 MultiMC 整合包读取。

~说明 PCL 对于整合包类型的检测还不够完善...?~

3gf8jv4dv commented 1 month ago

HMCL 读取该整合包时似乎直接跳过了 mmc-pack.json 文件...
也就是说, HMCL 根本就没把这玩意作为 MultiMC 整合包读取。

说明 PCL 对于整合包类型的检测还不够完善...?

The modpack provided by the author was originally considered as a CurseForge modpack by PCL. However, due to the code logic change in 2.8.2, the modpack was considered as a MultiMC modpack instead. The modpack happened to lack instance.cfg, so an error occurred in the PCL.

According to the information you provided, it seems that HMCL follows the previous logic of PCL. I tested HMCL, if only mmc-pack.json is retained without retaining other files, HMCL also cannot recognize modpack; it can be recognized normally when both mmc-pack.json and instance.cfg exist.

goumo commented 1 month ago

另一个 issue 也是冬季救援整合包,这也太巧了

我刚才试了下即使是 mmc 也不能导入,也就是说 instance.cfg 是必须的,由于发布时误删导致新版本 PCL 无法正确读取整合包,所以不应该由 PCL 背这口锅(