Hex-Dragon/PCL2

支持导入嵌套多层文件夹的压缩文件包

Closed this issue · 3 comments

检查项

  • 我已在 Issues 页面常见&难检反馈及问题列表 中搜索,确认了这一提案未被提交过。
  • 我已查看 功能投票页面,确认了这一提案未在投票列表中。
  • 我知晓还没做的新功能真的太多了,忙不过来,所以新功能提案几乎不会被处理,也不建议再提交新功能提案 qwq……

描述

大部分流传于玩家间的整合包都不是标准整合包格式,而是自带mc启动器 及 所有模组资源文件的完整游戏目录(.minecraft) 的压缩包。

当检测到玩家导入此类整合包时,弹出弹窗进行提示(或者不需要做检测功能,每次导入整合包失败都弹出弹窗提醒awa)

弹窗内容可以是这样:

导入整合包失败!请尝试手动导入!
请检查此整合包内是否自带mc启动器,如果是,请手动解压该压缩包,随后在“版本选择”中添加游戏目录,选中解压出来的.minecraft文件夹。
或者,请直接使用整合包内的启动器进行游戏!

(当然,可以更详细一点awa)

原因

我需要这个功能来减少萌新问此类问题的次数。很多人都有玩他人自制整合包发现不能导入然后去各种群里问的需求,但如果没有这个功能,就不能让他们知道自己玩的是自带启动器的整合包了。

实际上应当是那些作者没有附加 解压即用 之类字样导致的?
本身这类压缩包不是规范意义(狭义)上的整合包

未见相似反馈,给龙猫看看

PCL 支持检测压缩包中的 MC 文件夹并直接解压,如果有无法处理的样本我可以再优化一下 :D

PCL 支持检测压缩包中的 MC 文件夹并直接解压,如果有无法处理的样本我可以再优化一下 :D

尝试了下,pcl确实能够识别zip中的mc文件夹(我先前不知道QWQ),但仅限于压缩包根目录.zip\.minecraft\的情况,即xx整合包.zip\.minecraft,只有这样pcl才能够识别。
如果压缩包根目录中是.minecraft\的父级文件夹(xx整合包.zip\xx整合包\.minecraft),那么pcl便无法识别。
一些压缩软件在压缩单一文件夹时,会忠诚地把这个文件夹放进压缩包的根中,而不是添加其子文件(夹),这样便造成了上述现象的发生,从而使得pcl无法识别到mc文件夹。

能否为pcl添加识别压缩包多层目录的功能呢?虽然整合包作者们一般都会进行测试,但朋友间互相交换游戏几乎不会二次检查,这样势必会令他们多走数个步骤。

另外,在进行测试时,我发现pcl解压zip的进度显示会停在2%,但实际有在解压。我有进行多次测试,每次都是如此。
pic_unzip

回到写这篇issue的原因,是因为有人在尝试导入整合包时发现整合包无法识别。后来我有空要到了样本,发现他传来的是RAR...

不过还没完,我将他发来的整合包重新打包成了pcl能够识别的zip格式,导入成功...成功了一半 :|
出现了以下报错:
pic_ERROR

不过仅仅只是报错而已,版本选择列表能够正确加载,游戏也能成功启动(流程视频见最后)。
pic_gameIsOK

而后我尝试解压整合包,在pcl添加其mc文件夹,整个流程无任何报错,游戏也当然是能够成功启动。
不知道是我个人的原因还是整合包的问题,抑或是pcl的问题(不过我有尝试将自己平常玩的版本打包导入,无任何报错)。

报错视频与整合包
https://www.123865.com/s/Vj4qVv-fyDov

OvO