Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

添加对整合包可选文件的初步支持 #1771

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

CaveNightingale
Copy link

RT,modrinth和curseforge整合包格式均支持声明可选模组/文件,而HMCL会直接将这些文件当作必选处理
mcbbs的整合包格式我目前找不到文档,故暂不做改动
此次改动会导致CurseForge导入界面因下载文件信息而加载时间变长,对Modrinth无影响

@burningtnt
Copy link
Member

Merge Conflict 了,记得改一改

@zkitefly
Copy link
Member

ping @CaveNightingale
麻烦把这个 PR 更新一下

@burningtnt
Copy link
Member

人已经 9 个月不见了,大概是跑了(

@CaveNightingale
Copy link
Author

ping @CaveNightingale 麻烦把这个 PR 更新一下

好的

@hejiehao
Copy link
Contributor

《跑了》

# Conflicts:
#	HMCL/src/main/java/org/jackhuang/hmcl/ui/download/LocalModpackPage.java
#	HMCL/src/main/java/org/jackhuang/hmcl/ui/download/RemoteModpackPage.java
#	HMCL/src/main/resources/assets/fxml/download/modpack.fxml
@CaveNightingale
Copy link
Author

完成

@zkitefly
Copy link
Member

zkitefly commented Aug 7, 2023

@huanghongxun 这个已经一年没合了

@zkitefly
Copy link
Member

功能请求

要不加个全选(或全不选)按钮?

要不加个全选(或全不选)按钮?

@zkitefly
Copy link
Member

zkitefly commented Dec 31, 2023

Curse 整合包导入测试

正在通过网络获取文件名

加载成功画面

当时未加 CURSEFORGE_API_KEY 时的图片

注:未测试安装

RLCraft 1.12.2 - Release v2.9.3(改造版).zip

HMCL-3.5.SNAPSHOT(需要将zip后缀改为jar).zip

问题:若网络环境不佳,Curse 整合包下面的文件名显示是直接为空白,我觉得这个文件名获取可能会有点问题?

@zkitefly
Copy link
Member

zkitefly commented Dec 31, 2023

Modrinth 整合包导入测试

加载成功画面

注:未测试安装

Cobblemon Modpack [Fabric] 1.4.1(改造版).zip

HMCL-3.5.SNAPSHOT(需要将zip后缀改为jar).zip

建议:我发现下方的文件选择没标题可能会让用户不知道是什么东西,我建议在上面加个标题

@zkitefly
Copy link
Member

Modrinth 整合包安装测试

files 列表:

fancymenu_fabric_2.14.10-2_MC_1.20.1.jar # 可选
lazydfu-0.1.3.jar # 必选
notenoughanimations-fabric-1.6.4-mc1.20.jar # 必选
krypton-0.2.3.jar # 必选
Xaeros_Minimap_23.9.3_Fabric_1.20.jar # 可选
cloth-config-11.1.118-fabric.jar # 可选

导入页面


全选 可选 项目的安装页面

选择全选 可选 项目安装成功后的模组列表页面


全不选 可选 项目的安装页面

选择全选 可选 项目安装成功后的模组列表页面


Cobblemon Modpack [Fabric] 1.4.1(改造+精简).zip

HMCL-3.5.SNAPSHOT(需要将zip后缀改为jar).zip

@burningtnt
Copy link
Member

请将加载整合包文件的 Task 显示至屏幕上,并以并发操作

@zkitefly
Copy link
Member

zkitefly commented Dec 31, 2023

请将加载整合包文件的 Task 显示至屏幕上,并以并发操作

我觉得不太行,可能会影响操作流畅性

@burningtnt
Copy link
Member

请将加载整合包文件的 Task 显示至屏幕上,并以并发操作

我觉得不太行,可能会影响操作流畅性

那就添加一个 Spinner,让用户感知到HMCL 正在加载

@burningtnt
Copy link
Member

此外,建议把下面的仅文件名改为模组下载界面的 UI 风格,即,可以点进去查看详情

@zkitefly
Copy link
Member

@CaveNightingale ping

@CaveNightingale
Copy link
Author

@CaveNightingale ping

@zkitefly
Copy link
Member

zkitefly commented Dec 31, 2023

请将加载整合包文件的 Task 显示至屏幕上,并以并发操作

image

他看错了,所以不需要这样了

@burningtnt
Copy link
Member

burningtnt commented Dec 31, 2023

主要还是这一条:

此外,建议把下面的仅文件名改为模组下载界面的 UI 风格,即,可以点进去查看详情

和:

问题:若网络环境不佳,Curse 整合包下面的文件名显示是直接为空白,我觉得这个文件名获取可能会有点问题?

建议改成:每一个可选模组为一个 TwoLineListItem,可参考模组下载界面,如果失败,则显示“失败,点击重试”

@zkitefly
Copy link
Member

zkitefly commented Dec 31, 2023

我认为并不认同 改为模组下载界面的 UI 风格,就原来这个挺好的

如果有模组名称获取失败就重试几遍(5遍就够了),还是不行就直接贴一个 [加载失败,点击重试] 的一个小按钮

然后这个可选模组页面,加一个全选(全不选)按钮,然后加个 可选模组 标题我觉得就够了

@burningtnt
Copy link
Member

burningtnt commented Dec 31, 2023

我认为并不认同 改为模组下载界面的 UI 风格,就原来这个挺好的

如果用户希望具体查看该可选模组的详细信息,那就需要改为我所提的这种风格了
image
类似这种 ↑

@zkitefly
Copy link
Member

这样会不会增加复杂度啊

@zkitefly
Copy link
Member

#1771
#1771-2

@CaveNightingale
Copy link
Author

此外,建议把下面的仅文件名改为模组下载界面的 UI 风格,即,可以点进去查看详情

我认为并不认同 改为模组下载界面的 UI 风格,就原来这个挺好的

如果用户希望具体查看该可选模组的详细信息,那就需要改为我所提的这种风格了 image 类似这种 ↑

虽然但是,好像整合包文件里本来就没有模组的详细信息啊?

@burningtnt
Copy link
Member

burningtnt commented Dec 31, 2023

这样会不会增加复杂度啊

如果移动到单独界面呢?即:

  • 将原来显示“加载可选模组”哪个地方删除
  • 在安装左侧添加一个加载条,并在加载完毕后变为一个按钮,点击后进入新的界面展示模组列表并供用户勾选

用户只看一个模组的文件名,是无法考虑要还是不要这个模组的,确实需要展示模组详细信息

加油

@burningtnt
Copy link
Member

By the way,请问你这里的 RT 是指?

RT,modrinth和curseforge整合包格式均支持声明可选模组/文件,而HMCL会直接将这些文件当作必选处理

@hejiehao
Copy link
Contributor

此外,建议把下面的仅文件名改为模组下载界面的 UI 风格,即,可以点进去查看详情

我认为并不认同 改为模组下载界面的 UI 风格,就原来这个挺好的

如果用户希望具体查看该可选模组的详细信息,那就需要改为我所提的这种风格了 image 类似这种 ↑

虽然但是,好像整合包文件里本来就没有模组的详细信息啊?

Curse 整合包可以获取

@CaveNightingale
Copy link
Author

虽然但是,好像整合包文件里本来就没有模组的详细信息啊?

你都拿到 Project ID 了,不就啥都有了

https://docs.modrinth.com/modpacks/format
但是隔壁Modrinth只给下载连接

@CaveNightingale
Copy link
Author

By the way,请问你这里的 RT 是指?

RT,modrinth和curseforge整合包格式均支持声明可选模组/文件,而HMCL会直接将这些文件当作必选处理

如题

@hejiehao
Copy link
Contributor

hejiehao commented Dec 31, 2023

虽然但是,好像整合包文件里本来就没有模组的详细信息啊?

你都拿到 Project ID 了,不就啥都有了https://docs.modrinth.com/api-spec#tag/version-files/operation/versionFromHash

https://docs.modrinth.com/modpacks/format 但是隔壁Modrinth只给下载连接

可以通过 hash 获取吗?
https://docs.modrinth.com/api-spec#tag/version-files/operation/versionFromHash
https://docs.modrinth.com/api-spec#tag/version-files/operation/versionsFromHashes

@burningtnt
Copy link
Member

burningtnt commented Dec 31, 2023

但是隔壁Modrinth只给下载连接

…… Modrinth 是想着可以从非 Modrinth 下载模组。你可以这样:

  • CurseForge Modpack 正常获取
  • Modrinth Modpack 通过 hash,再走org.jackhuang.hmcl.mod.modrinth.ModrinthRemoteModRepository#getRemoteVersionByLocalFile 这个 API 的后半句获取模组,如果获取的到,那就显示详细信息,如果获取不到,那就显示“非 Modrinth 模组”,无法获取

可能有点复杂,而且会增加 HMCLCore 和 HMCL 的耦合性。建议给直接把 ModPackProvider 抽象一个方法出来,用来获取模组列表

@zkitefly
Copy link
Member

zkitefly commented Dec 31, 2023

#1771
#1771-2

要不就这样吧,简单一点

@burningtnt
Copy link
Member

我是担心更改之后模组信息变高,导致一个界面太过复杂,所以才考虑着移动到独立的界面

@burningtnt
Copy link
Member

给个建议,你直接把 RemoteModRepository 添加一个一个抽象方法 public Optional<RemoteMod.Version> getRemoteVersionByInputStream(InputStream inputstream) 用于通过 InputStream 获取模组

至于原来的那个 getRemoteVersionByLocalFile,代理过来吧

@CaveNightingale
Copy link
Author

给个建议,你直接把 RemoteModRepository 添加一个一个抽象方法 public Optional<RemoteMod.Version> getRemoteVersionByInputStream(InputStream inputstream) 用于通过 InputStream 获取模组

至于原来的那个 getRemoteVersionByLocalFile,代理过来吧

虽然但是,为啥要通过InputStream,在下载之前我手上只有sha1和sha512啊?

@CaveNightingale
Copy link
Author

大致改成了这样

截图 2024-01-13 13-52-31
截图 2024-01-13 13-52-37
截图 2024-01-13 14-11-55

@zkitefly
Copy link
Member

冲突了

@burningtnt
Copy link
Member

可选文件这里弹出的详情窗口请参照本地模组管理界面点更新后弹出的窗口更改
即,补上模组 Icon 和对应模组主页的链接

@CaveNightingale
Copy link
Author

可选文件这里弹出的详情窗口请参照本地模组管理界面点更新后弹出的窗口更改 即,补上模组 Icon 和对应模组主页的链接

没有办法在不下载的情况下获得模组主页,只能给个到Modrinth/Curseforge的链接。

图标的话我加上了,但我怀疑这样做不值得,因为弹出对话框的加载时间变长了。

@zkitefly
Copy link
Member

zkitefly commented Feb 7, 2024

@Glavo Review ?

@Glavo Glavo changed the base branch from javafx to main February 7, 2024 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants