HMCL-dev / HMCL

A Minecraft Launcher which is multi-functional, cross-platform and popular
https://hmcl.huangyuhui.net
GNU General Public License v3.0
6.89k stars 676 forks source link

[功能请求] 直接通过forge官网获取最新forge版本 #2039

Open zyxkad opened 1 year ago

zyxkad commented 1 year ago

启动器版本 Launcher Version

3.5.3.228

平台 Platform

Mac OS

问题描述 Problem Description

启动器无法安装最近更新的curseforge/modinch整合包,因为BMCLAPI不存在最新的forge版本,需要等待至少一天才能安装 建议增加一个选项可以直接从forge官网拉取最新forge版本

Java

N/A

游戏版本 Game Version

1.19.2

对游戏所做的修改 Modifications Made to the Game

Forge

游戏崩溃报告 Game Crash Report

N/A

启动器崩溃报告 Launcher Crash Report

N/A

启动器日志文件 Launcher Log File

[08:48:19] [org.jackhuang.hmcl.task.AsyncTaskExecutor.lambda$executeNormalTask$31/FINE] Task failed: org.jackhuang.hmcl.task.Task$StagesHintTask
java.io.IOException: Remote library forge has no version 43.2.4
    at org.jackhuang.hmcl.download.DefaultDependencyManager.lambda$null$6(DefaultDependencyManager.java:152)
    at java.util.Optional.orElseThrow(Optional.java:290)
    at org.jackhuang.hmcl.download.DefaultDependencyManager.lambda$installLibraryAsync$7(DefaultDependencyManager.java:152)
    at org.jackhuang.hmcl.task.Task$UniCompose.lambda$new$0(Task.java:1062)
    at org.jackhuang.hmcl.task.Task$UniCompose.execute(Task.java:1082)
    at org.jackhuang.hmcl.task.AsyncTaskExecutor.lambda$null$22(AsyncTaskExecutor.java:245)
    at org.jackhuang.hmcl.util.Lang.lambda$wrap$2(Lang.java:279)
    at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
    at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1632)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)

如下图,实际存在43.2.4版本

Screen Shot 2023-01-26 at 9 08 02 AM
zkitefly commented 1 year ago

https://github.com/huanghongxun/HMCL/issues/517

forge不允许(

你要不等几天?或者去 论坛发帖催?

由于Forge团队收入不足,关闭了与Forge自动安装相关的接口,因此HMCL无法自动安装1.13.2Forge。

8MiYile commented 1 year ago

啥时候Forge那边允许启动器在安装Forge的时候要先看广告才会返回下载地址的时候 就能自动下载了

zyxkad commented 1 year ago

forge不允许(

不知道是不是可以嵌入一个爬虫到HMCL里把forge官网爬一遍(

8MiYile commented 1 year ago

@zyxkad 不如启动器作者联手请求forge团队出个带广告的api接口 然后通过这个接口弹出广告 用户的流程就是安装游戏版本 若包含forge 点击安装 弹出提示说

若要安装forge 请在接下来弹出的窗口中等待5秒并点击 Skip AD或跳过广告
(广告由forge团队提供,与本启动器无关)

确认 取消

点击确定 则弹出forge的广告接口返回的广告 点击跳过即可自动安装的那种 这不两全其美

zkitefly commented 1 year ago

目前国外的 multimc 是自己爬取 Forge 的自动安装 json 的,原来的自动安装 json 已经不复存在了

Forge 不允许这么做 multimc 却偏要这么做(

现在的 BMCLAPI 的自动安装 json 是为了兼容,自己转换的

https://www.bangbang93.com/topic/209/1-19-2forge%E4%BC%BC%E4%B9%8E%E5%BE%88%E4%B9%85%E6%B2%A1%E5%90%8C%E6%AD%A5%E8%BF%87%E4%BA%86

zkitefly commented 1 year ago

image 相关同步状况请查看:https://t.me/s/bmclapi 注:要“七个木棍”

LJS08 commented 1 year ago

forge官网给出的带有广告的下载链接后面就是下载直链,只不过这样会让forge损失广告收入。

其实在国内adfoc无法访问或者无法加载出skip按钮

zyxkad commented 1 year ago

forge 版本列表可以在这里找到 https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml @zkitefly

zyxkad commented 1 year ago

maven-metadata似乎没加验证,不知道是忘了还是什么原因,反正可以用 并且经验证是实时更新的。两个小时之前更新的1.19.4 loader可以在其中找到

Screenshot 2023-04-03 at 6 10 06 PM Screenshot 2023-04-03 at 6 09 45 PM
zyxkad commented 1 year ago

@zyxkad 不如启动器作者联手请求forge团队出个带广告的api接口 然后通过这个接口弹出广告 用户的流程就是安装游戏版本 若包含forge 点击安装 弹出提示说

若要安装forge 请在接下来弹出的窗口中等待5秒并点击 Skip AD或跳过广告
(广告由forge团队提供,与本启动器无关)

确认 取消

点击确定 则弹出forge的广告接口返回的广告 点击跳过即可自动安装的那种 这不两全其美

当然如果为了forge收入,广告仍然可以做,我不介意(

zyxkad commented 1 year ago

~其实在国内adfoc无法访问或者无法加载出skip按钮~

实际上在国外广告内容也加载不出来 :|

8MiYile commented 1 year ago

@zyxkad 还有一种 就是如果是用bmclapi的话,如果bmclapi没有广告接口只有赞赏接口的话 可以在下载进度页面底下插入bmclapi的广告或者赞赏码啥的,类似感谢页面

zyxkad commented 1 year ago

forge 版本列表可以在这里找到 https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml @zkitefly

获取版本列表参考实现: https://github.com/kmcsr/server-installer/blob/main/forge_installer.go#L138 https://github.com/kmcsr/server-installer/blob/main/maven.go

zyxkad commented 1 year ago

@zyxkad 还有一种 就是如果是用bmclapi的话,如果bmclapi没有广告接口只有赞赏接口的话 可以在下载进度页面底下插入bmclapi的广告或者赞赏码啥的,类似感谢页面

跑题了。目前讨论的问题是由于bmclapi会有一段时间的延迟,所以需要直接通过forge官网获取列表,而不是广告问题(

8MiYile commented 1 year ago

@zyxkad 我知道,获取好像问题不大(除非他们连只获取地址都表示不满的话)

burningtnt commented 1 year ago

…… 你要是通过 Forge 官网直接更新,你的下载速度可能就 2KB/s 不作考虑

zyxkad commented 1 year ago

…… 你要是通过 Forge 官网直接更新,你的下载速度可能就 2KB/s 不作考虑

人在国外,官网下载速度还是很快的

zyxkad commented 1 year ago

另外HMCL也提供了minecraft游戏本体的官网下载,如果同时也能提供其他部分的官网下载可能会更好

burningtnt commented 8 months ago

https://github.com/HMCL-dev/HMCL/issues/2820#issuecomment-1949613154

https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml 定时同步到一个仓库,HMCL 从这个仓库的 GitHub Pages 获取

我认为是一个不错的注意。反正能直连 Forge Maven 的也大概率能直连 GitHub Pages

zkitefly commented 8 months ago

#2820 (comment)

https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml 定时同步到一个仓库,HMCL 从这个仓库的 GitHub Pages 获取

我认为是一个不错的注意。反正能直连 Forge Maven 的也大概率能直连 GitHub Pages

https://github.com/zkitefly/forge-maven-metadata

hejiehao commented 8 months ago

#2820 (comment)

https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml 定时同步到一个仓库,HMCL 从这个仓库的 GitHub Pages 获取

我认为是一个不错的注意。反正能直连 Forge Maven 的也大概率能直连 GitHub Pages

https://github.com/zkitefly/forge-maven-metadata

有点像 AI 写的(