使用HMCL自动更新服务器客户端

阅读本文前,请先阅读HMCL官方文章:https://hmcl.huangyuhui.net/help/launcher/serverpack.html

本文是HMCL官方文章的一些补充,以及Nginx静态资源示例。

配置静态资源网站

这里有两种解决方案:

  1. 使用GitHub来当静态资源网站,好处是可以白嫖,坏处是国内访问GitHub处于量子叠加态时好时坏,本来是可以使用Gitee的,但是现在Gitee倒了,开源仓库需要审核。
  2. 自行搭建静态资源网站,其实对于各位腐竹来说这个选择也不错,因为本身就有服务器,只需要搭建一下静态资源服务器就可以使用。

对于以上两种解决方案各位自行选择。
这里提供参考资料:

  1. 使用GitHub第三方静态资源网站教程:https://www.bilibili.com/video/BV1hu411C7BZ
  2. 自行搭建静态资源服务器,参考我之前的文章:Nginx静态资源服务器使用 https://buggzd.github.io/2023/01/11/Nginx%E9%9D%99%E6%80%81%E8%B5%84%E6%BA%90%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%BF%E7%94%A8/

本篇将以Nginx做静态资源服务器为例,所以请看第二篇Nginx静态资源服务器使用

导出整合包

image.png
选择服务器自动更新整合包
image.png
整合包下载链接前缀:填静态资源服务器的地址。
我们从Nginx静态资源服务器使用这篇文章继续,我们需要先去静态资源文件夹下新建一个modepack文件夹(也就是/MinecraftClientStatic/modepack),然后整合包下载链接前缀这里填写http://minecraft.buggzd.com/modepack
image.png

上传整合包到静态资源服务器

假设我们刚刚打包的整合包名称为client1.0.zip
我们把client1.0.zip通过ftp上传到服务器中,然后使用解压命令将这个整合包解压到/MinecraftClientStatic/modepack文件夹中。

1
2
3
# 假设我们把client1.0.zip上传到了/home/ftp文件夹中
# 把 /home/ftp/client1.0.zip 解压到 /minecraftClientStatic/modepack
unzip /home/ftp/client1.0.zip -d /minecraftClientStatic/modepack

解压完以后我们查看一下

1
ls /minecraftClientStatic/modepack

服务器返回:

overrides server-manifest.json

其中overrides是一个文件夹,server-manifest.json是整合包配置文件。

客户端初始化

第一次使用客户端需要在一个空文件夹中放一个hmcl启动器,打开hmcl导入刚刚做好的client1.0.zip
然后就可以把这个文件夹打包成一个zip发给玩家了,以后玩家每次打开hmcl登录时,hmcl就会自动向静态资源服务器中查询整合包配置信息,当发现更新时会自动下载。
当缺少mod时会自动下载静态资源服务器上的mod
image.png

更新客户端

目前HMCL版本更新的步骤是这样的:

  1. hmcl对比本地的mod和服务器的mod名称,发现服务器上存在本地不存在的mod,把不存在的mod下载。
  2. 对比名称相同的mod,当对比的mod存在名称相同时,对比其MD5哈希值,如果哈希值不匹配则重新下载服务器上的mod。
  3. 在获得更新的时候对比一次本地的文件,如果以前版本的模组在新的版本没有了,hmcl会自动将本地的这个模组删除

当想要添加新的mod,添加后需要重新导出整合包,导出的整合包版本++,然后重新上传整合包到静态资源服务器,玩家打开hmcl点击启动后,HMCL就会检测到版本更新,自动更新mod。

参考资料:
HMCL官方文章:https://hmcl.huangyuhui.net/help/launcher/serverpack.html
使用Gitee作为静态资源服务器:https://www.kdocs.cn/l/ck0hwms5llq8
Nginx配置静态资源服务器:https://buggzd.github.io/2023/01/11/Nginx%E9%9D%99%E6%80%81%E8%B5%84%E6%BA%90%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%BF%E7%94%A8/

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2023 Junto
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信