refactor: reorganize files
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-05-04 23:58:35 +08:00
parent 07c67a215b
commit 069b524c17
23 changed files with 169 additions and 22 deletions
+86
View File
@@ -0,0 +1,86 @@
---
title: "整合包自带 Java 教程"
permalink: /modpack/bundled-java.html
date: 2021-10-09 23:18:02 +0800
categories: 整合包
toc: true
---
# 整合包自带 Java 教程
## 背景
想必有些服务器主为此头疼了许久。由于玩家的电脑环境多变,甚至可能仍然有安装着 Java 7 的电脑而无法启动 1.12.2 以上的游戏、或者 Mod 客户端。因此服务器主希望能在整合包中自带一个 Java 运行时(或者叫 JRE),从而取代电脑自带的 JVM。接下来本文将介绍两种方法。
# 方法一:使用 HMCL-3.2.122 或以上版本
**HMCL-3.2.122** 或更新的版本的 Windows 版本**(必须是 Windows 版本,或者说 exe 文件)**会直接检查同级文件夹下的 `jre-x64``jre-x86` 文件夹。
如果玩家电脑的操作系统是 32 位的,那么将优先使用 `jre-x86` 内的 Java 运行时启动游戏。如果是 64 位的,将优先选择 `jre-x64` 文件夹内的 Java 运行时启动游戏(但不会选择 `jre-x86`)。
如果你放弃 32 位操作系统的玩家,那么你的整合包内只需要携带 `jre-x64` 即可。文件夹结构如下:
![](assets/img/docs/modpack-in-java/1-1.png)
## 方法二:创建快捷方式
对于低于 HMCL 3.2.119 的版本,需要采用方法一。
### 目录结构
首先我们假设整合包根文件夹是 `tutorial`(这个文件夹名字可以取别的),该文件夹内应该包含如下的文件:
![](assets/img/docs/modpack-in-java/2-1.png)
其中,`.minecraft` 是 Minecraft 文件夹,`jre-x64` 是你的 Java 运行时,我们分别来看看这两个文件夹的内容:
![](assets/img/docs/modpack-in-java/2-2.png)
上图是 `.minecraft` 文件夹的内容,里面包含着 `assets``libraries``versions` 等传统的文件夹。以及 `HMCL.jar`,这个文件是 HMCL 启动器的 `jar` 文件,可以在 https://hmcl.huangyuhui.net/download 里面下载 macOS 或者 Linux 版本(这两个版本的文件后缀名都是 `jar`,实际上是完全一样的东西,**也可以在 Windows 系统上双击运行**,没有平台限制)。
这个启动器文件我们接下来会使用到,借助整合包自带的 Java 运行时启动 HMCL。
**注意:HMCL 本体文件 HMCL.jar 请务必保持该文件名,HMCL-3.2.117.jar 等带有版本号的文件名是不可以的**
![](assets/img/docs/modpack-in-java/2-3.png)
上图是 `jre-x64` 文件夹的内容,一看就是一个 JRE 的文件夹。
### 创建快捷方式
接下来我们创建一个快捷方式来使得 HMCL 通过 `jre-x64` 文件夹里的 Java 运行时启动,并使得 Minecraft 也通过该 Java 运行时启动。
![](assets/img/docs/modpack-in-java/2-4.png)
`tutorial` 文件夹内右击空白区域打开快捷菜单,创建快捷方式。
![](assets/img/docs/modpack-in-java/2-5.png)
在弹出的窗口中(如上图所示),在输入框内输入:`cmd /c start .\jre-x64\bin\javaw.exe -jar .\.minecraft\HMCL.jar`,其中 `jre-x64``.minecraft\HMCL.jar` 根据实际情况修改,`jre-x64` 是你的 Java 运行时的路径,`.minecraft\HMCL.jar` 是 HMCL 本体文件。
![](assets/img/docs/modpack-in-java/2-6.png)
接着给快捷方式取个名字就好了(如上图所示,`开始游戏` 是我取的名字)。
生成好快捷方式后我们还要编辑一下属性,右键 `开始游戏` 这个新创建的快捷方式(如果你取了别的名字请选中那个文件编辑其属性),在弹出的快捷菜单中选择属性,会打开快捷方式的属性窗口如下图所示:
![](assets/img/docs/modpack-in-java/2-7.png)
将起始位置内的文字删除干净,留空即可。保存退出该窗口。
### 完成
现在这个开始游戏的快捷方式就可以直接使用的,你可以双击该快捷方式打开 HMCL,HMCL 在启动游戏的时候也会直接使用你指定的 Java 运行时。
## 一些疑问
1Q:jre-x64 文件夹中具体该放些什么,直接复制就行了吗?
1A:是的,复制 jre 内的所有东西就行
——————————————————————————————————————————————————
2Q:去哪里找Java
2A:有很多的Java提供选择,如[Liberica JDK](https://bell-sw.com/pages/downloads/?os=Windows&package=jdk-full) 、[Microsoft JDK](https://docs.microsoft.com/zh-cn/java/openjdk/download)、[Oracle JDK](https://www.oracle.com/java/technologies/downloads/#jdk17-windows)和[Oracle openJDK](http://jdk.java.net/)
只需要在下载时下载**.zip的压缩包文件**,且将压缩包内的所有内容放入`jre-x64``jre-x86`即可
+49
View File
@@ -0,0 +1,49 @@
---
title: "服务端自动更新整合包制作教程"
permalink: /modpack/serverpack.html
date: 2021-08-22 23:18:02 +0800
categories: 整合包
toc: true
---
> 本文由 huanghongxun 编写。
HMCL 允许服务器管理员借助服务端自动更新整合包来实现自动分发整合包更新,这将大大方便有需要频繁更新游戏客户端 Mod、配置等信息的服务器管理员。
HMCL 需要服务器管理员额外提供一个 HTTP 服务器(只需要能提供静态文件服务,比如 Apache 和 Nginx 皆可)来提供检查整合包更新并允许 HMCL 下载更新文件。
## 第一步:导出整合包
在 HMCL 中右键做好的客户端版本,选择导出整合包:
![](/assets/img/docs/serverpack/1.png)
选择导出为服务器自动更新整合包:
![](/assets/img/docs/serverpack/1-1.png)
填写整合包信息,整合包下载链接前缀如何填写请看下文,你也可以先填别的(必须是个链接,比如 http://www.baidu.com),该项在整合包导出后可以修改
![](/assets/img/docs/serverpack/1-2.png)
选择需要包含在整合包内的文件后将产生整合包压缩文件
## 第二步:导入整合包
接着创建一个全新的空文件夹,将启动器复制进去
![](/assets/img/docs/serverpack/1-3.png)
运行启动器,并导入刚才导出的整合包,导入完成后,这个文件夹(这里叫“新整合包”)可以打包发给玩家。
## 第三步,部署整合包更新服务器
你可以借助 Apache、Nginx 等支持静态文件的 HTTP 服务器软件提供文件。首先,决定好整合包下载链接前缀,比如我希望 HMCL 从远程服务器的 http://www.site.com/modpack 目录下存放整合包的更新信息,则在之前导出整合包的整合包下载前缀中填写 http://www.site.com/modpack。
![](/assets/img/docs/serverpack/1-4.png)
上图为导出的服务器自动更新整合包压缩文件的内容,你需要将这个整合包解压到 http://www.site.com/modpack 下。也就是说,从 http://www.site.com/modpack/server-manifest.json 这个链接下载下来的文件必须和上图中整合包压缩文件中的 server-manifest.json 文件一致,并且,http://www.site.com/modpack/overrides 是一个文件夹,里面存放了整合包文件,比如:
![](/assets/img/docs/serverpack/1-6.png)
整合包压缩文件 test.zip/overrides/mods/Advancement_Book-1.12-1.0.3.jar 文件必须可以从 http://www.site.com/modpack/overrides/mods/Advancement_Book-1.12-1.0.3.jar 该目录下载下来,且文件内容一致。那么至此更新服务器就部署完成了。
## 第四步,更新整合包
如果你需要更新整合包,那么将新的整合包经过第一步导出新的整合包压缩文件,并解压到类似 http://www.site.com/modpack 文件夹下即可完成新整合包的部署。
+147
View File
@@ -0,0 +1,147 @@
---
title: "使用HMCL启动器配置服务器客户端自动更新"
permalink: /modpack/serverpack2.html
date: 2021-08-22 23:18:02 +0800
categories: 整合包
toc: true
---
# **使用HMCL启动器配置服务器客户端自动更新**
## 备注
- **文章原作者:[hy黑影](https://www.mcbbs.net/home.php?mod=space&uid=3051111)**
- **转载:Zkitfly**
- **部分内容进行了稍作打磨**
- **本教程转载至https://www.mcbbs.net/thread-1103864-1-1.html?action=printable**
- **标题: [综合]使用HMCL配置服务器客户端自动更新——再也不用担心玩家不会更新客户端了**
## **前言**
- 我自己开设的服务器有很多不同的子服,每个子服的客户端版本呢都不相同,我又希望能整合到一个客户端里面;找了一圈发现那些辅助更新程序只能更新单个客户端版本,而且界面不太美观;甚至一度想自己开发启动器.........
- 这篇帖子的灵感来自于 **HMCL** 启动器的一个功能 **导出服务器自动更新整合包**,我觉得可以利用这个功能来代替一些自动更新的辅助程序。
- 整个功能的实现需要:**一台有公网IP的服务器、一个客户端整合包、HMCL启动器**;如果你都没有,那就换成RMB10元
- 本篇教程默认读者为 萌新,即**没有接触过HTTP服务器,网络应用开发,不懂linux系统,惧怕控制台程序**
## **教程**
### **第一步-租服务器(▲如果你有公网IP的服务器,请跳过这一步)**
- 百度搜索 [腾讯云学生机](https://cloud.tencent.com/act/campus?from=11821) 或 [阿里云学生机](https://promotion.aliyun.com/ntms/act/campus2018.html)
- 可以看到有10元/月 的套餐,如果是阿里云的话选**轻量型应用服务器**,腾讯云就只有一个套餐
- 系统请选择**CentOS 8.0 64位**,其他保持默认即可
- 再次确认是否是十元,是的话直接购买;不是的话可能是你已经买过学生套餐
- 第一次购买可能需要**实名认证**,按照提示操作即可,不需要担心安全问题,都是可靠的大公司
### 第二步-安装宝塔面板——CentOS 8.0系统
- 以腾讯云举例,阿里云同理
- 打开控制台面板,找到刚才租的学生机
![](/assets/img/docs/serverpack2/2.1.jpg)
- 选择重置密码
![](/assets/img/docs/serverpack2/2.2.jpg)
- 点击右侧**登入**按钮,按照说明填写你刚刚重置的密码;之后应该会看到类似这样的提示
![](/assets/img/docs/serverpack2/2.3.jpg)
- **不要慌,冷静。如果下面的部分教程失效请去[宝塔面板官网](https://www.bt.cn/),点击Linux->立即安装**
![](/assets/img/docs/serverpack2/2.4.jpg)
- 回到控制台面板,我们需要开放一些通道让面板通过,选择**安全组**
![](/assets/img/docs/serverpack2/2.5.jpg)
- 点击**修改规则**,再点击**添加规则**
- 图1
![](/assets/img/docs/serverpack2/2.6.jpg)
- 图2
![](/assets/img/docs/serverpack2/2.7.jpg)
- **按照图中所写添加,想要安全的话按照图1,懒的话按照图2**
- 回到那个黑黑的界面里输入 `yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh` ,按下回车
- 这时会刷一大片大的英文,等他停下来的时候仔细看,最后一行在问你要不要安装(就是最后显示y/n),输入y并按下回车
- 耐心等待五分钟左右,直到出现这个字样
![](/assets/img/docs/serverpack2/2.8.jpg)
- 复制**外网面板地址**,在打开的页面中,用户名输入username后面的内容,密码输入password后面的内容
- 点击登入,到此为止面板按照完成
### **第三步-搭建HTTP静态文件服务器**
- 打开刚刚的宝塔面板,一般都会有提示安装套件,选择**nginx套装**安装
- 等待安装完成后,选择**网站**,点击**添加网站**
![](/assets/img/docs/serverpack2/3.1.jpg)
- 在弹出的页面填写网站IP,就是地址栏里面的那个;比如:我的是 http://233.88.233.44:8888/site ,那么我就填233.88.233.44
- 另外,**租vps的同学请找服务商索要ip地址和开放的端口**,比如我要到的是123.21.123.21:6666,那我就把这个填上去
![](/assets/img/docs/serverpack2/3.2.jpg)
- **其他保持不变,到此为止你已经搭建好了HTTP静态文件服务器✔**
### **第四步-制作整合包**
- 使用HMCL打开你的MC客户端
- 选择你的游戏版本,点击**导出整合包**
![](/assets/img/docs/serverpack2/4.1.jpg)
- 选择**服务器自动更新整合包**
- 填写相关信息:
![](/assets/img/docs/serverpack2/4.2.jpg)
- 整合包下载链接前缀:比如我刚刚在【[第三步-搭建HTTP静态文件服务器](###第三步-搭建HTTP静态文件服务器)】宝塔里填的是233.88.233.44,我希望能有版本区分,这个版本代号是a;那么我就填http://233.88.233.44/a **vps注意,端口号也要写▲**
- 版本号写1.0 ,以后更新就写2.0以此类推
- 点击**下一步**,导出完成
### **第五步-上传整合包**
- 打开宝塔面板,选择**文件**,找到相应的目录,在相应IP目录下新建文件夹;比如我刚刚写的版本代号是a,那我就新建a这个文件夹
![](/assets/img/docs/serverpack2/5.1.jpg)
- 在新建的文件夹里上传刚刚导出的整合包,并解压;成功后如下图
![](/assets/img/docs/serverpack2/5.2.jpg)
- 要是更新整合包,请在解压时将该【a】这个文件夹内的文件覆盖处理
### **第六步-分发整合包**
- **大公告成,现在可以把刚刚导出的这个整合包上传分享给玩家了!**
### **第七步-检测整合包**
- **为了防止一些手滑现象导致整合包可能会出现一些问题,你可以在分发整合包前先测试一下要准备分发的整合包**
## **后续**
- 以后每次更新客户端只要重复[**第四步**](###第四步-制作整合包)**和**[**第五步**](###第五步-上传整合包),**玩家重启客户端后就会自动接收更新**
- 版本号要记得更新
- 默认的更新方式不会删除玩家自己加入的模组,但会下载玩家删除的模组
- 更新覆盖的是整合包导出时的所有数据
- **每次更新会从整合包提供的链接下载 server-manifest.json 来校验玩家本地的整合包。若校验到整合包里没有匹配这个名字的文件或整合包里这个文件匹配名字但哈希值不匹配,就会下载该文件,不会下载匹配名字且哈希值匹配的文件**
- 出网带宽1MB我觉得够用了,除非你想让玩家自己下载全部内容(就是将整合包分发给他人前删除所有模组,玩家启动时就会开始下载回来,这样的好处是可见的整合包大小变小了)