From 5fd49d819f66010903144250234b5e402068ff54 Mon Sep 17 00:00:00 2001 From: neveler <55753029+neveler@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:25:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=87=8D=E5=AE=9A=E5=90=91=E5=8F=AF=E8=83=BD=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98=20(#285)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _docs/crash-support-group.md | 6 +- _downloads/hmcl-snapshot-update.md | 3 +- _downloads/java.md | 3 +- _downloads/loongnix.md | 3 +- _downloads/macos/arm64.md | 3 +- _downloads/macos/x86_64.md | 3 +- _downloads/windows/arm64.md | 3 +- _downloads/windows/x86.md | 3 +- _downloads/windows/x86_64.md | 3 +- _modpack/serverpack3.md | 378 +++++++++++++++++------------ _multiplayer/feedback.md | 7 +- _multiplayer/help.md | 2 +- _multiplayer/token.md | 2 +- 13 files changed, 246 insertions(+), 173 deletions(-) diff --git a/_docs/crash-support-group.md b/_docs/crash-support-group.md index cc536aa..f9d9337 100644 --- a/_docs/crash-support-group.md +++ b/_docs/crash-support-group.md @@ -40,7 +40,7 @@ document.addEventListener('DOMContentLoaded', function() { position: relative; `; - let timeLeft = 10 ; // 倒计时秒数 + let timeLeft = 10 ; /* 倒计时秒数 */ const closeButton = document.createElement('button'); closeButton.textContent = '我已了解'; closeButton.style.cssText = ` @@ -80,7 +80,7 @@ document.addEventListener('DOMContentLoaded', function() { modal.appendChild(modalContent); document.body.appendChild(modal); - // 倒计时功能 + /* 倒计时功能 */ const countdownInterval = setInterval(() => { timeLeft--; document.getElementById('countdown').textContent = timeLeft; @@ -93,7 +93,7 @@ document.addEventListener('DOMContentLoaded', function() { } }, 1000); - // 添加关闭按钮事件 + /* 添加关闭按钮事件 */ closeButton.addEventListener('click', () => { if (!closeButton.disabled) { document.body.removeChild(modal); diff --git a/_downloads/hmcl-snapshot-update.md b/_downloads/hmcl-snapshot-update.md index da1a082..72a49c9 100644 --- a/_downloads/hmcl-snapshot-update.md +++ b/_downloads/hmcl-snapshot-update.md @@ -15,7 +15,8 @@ No redirect? [Click here](https://hmcl-snapshot-update.netlify.app/) diff --git a/_downloads/java.md b/_downloads/java.md index e5fbc1f..51c2442 100644 --- a/_downloads/java.md +++ b/_downloads/java.md @@ -15,8 +15,9 @@ No redirect? [Click here](https://www.java.com/download) diff --git a/_downloads/loongnix.md b/_downloads/loongnix.md index e09c653..43b7085 100644 --- a/_downloads/loongnix.md +++ b/_downloads/loongnix.md @@ -10,7 +10,8 @@ date: 2022-12-03 17:30:00 +0800 The page has moved to [/downloads/linux/loongarch64](/downloads/linux/loongarch64.html) diff --git a/_downloads/macos/arm64.md b/_downloads/macos/arm64.md index 87de050..e52de71 100644 --- a/_downloads/macos/arm64.md +++ b/_downloads/macos/arm64.md @@ -17,8 +17,9 @@ No redirect? [Click here to start downloading](https://bell-sw.com/pages/downloa diff --git a/_downloads/macos/x86_64.md b/_downloads/macos/x86_64.md index 55a301c..acc4e63 100644 --- a/_downloads/macos/x86_64.md +++ b/_downloads/macos/x86_64.md @@ -17,8 +17,9 @@ No redirect? [Click here to start downloading](https://bell-sw.com/pages/downloa diff --git a/_downloads/windows/arm64.md b/_downloads/windows/arm64.md index 8290206..f054d6a 100644 --- a/_downloads/windows/arm64.md +++ b/_downloads/windows/arm64.md @@ -23,13 +23,14 @@ Can't download? [Click here to download (alternative)](https://alist.8mi.tech/d/ diff --git a/_downloads/windows/x86.md b/_downloads/windows/x86.md index 27952fc..6136c25 100644 --- a/_downloads/windows/x86.md +++ b/_downloads/windows/x86.md @@ -21,8 +21,9 @@ No redirect? [Click here to start downloading](https://bell-sw.com/pages/downloa diff --git a/_downloads/windows/x86_64.md b/_downloads/windows/x86_64.md index 15b9c90..259b989 100644 --- a/_downloads/windows/x86_64.md +++ b/_downloads/windows/x86_64.md @@ -23,12 +23,13 @@ Can't download? [Click here to download (alternative)](https://alist.8mi.tech/d/ diff --git a/_modpack/serverpack3.md b/_modpack/serverpack3.md index 84de441..64ff9dc 100644 --- a/_modpack/serverpack3.md +++ b/_modpack/serverpack3.md @@ -4,20 +4,28 @@ date: 2023-01-11 14:13:45 +0800 author: buggzd --- -> 阅读本文前,请先阅读HMCL官方文章:https://docs.hmcl.net/modpack/serverpack.html +> 阅读本文前,请先阅读[此文章](/modpack/serverpack.html) # 前置知识 -阅读本文你需要具有以下知识储备: -1. 掌握基础本的linux命令操作,比如cd,ls等指令。 -2. 拥有一个linux服务器(好像不算知识) -# Nginx安装 +阅读本文你需要具有以下知识储备: + +1. 掌握基础本的 `linux` 命令操作,比如 `cd` `ls` 等 +2. 拥有一个 `linux` 服务器(好像不算知识) + +# Nginx 安装 + 这里很基础(但是坑比较多)略过,可以看以下参考文档。 + > https://zhuanlan.zhihu.com/p/515069497 + # 新建静态资源文件夹 -我为了省事直接在/根目录下新建了一个` MinecraftClientStatic `文件夹,以后需要作为静态资源的文件都丢这里面。 + +我为了省事直接在/根目录下新建了一个 `MinecraftClientStatic` 文件夹,以后需要作为静态资源的文件都丢这里面。 + 命令: -```bash + +```shell # 到更目录 cd / # 新建文件夹 @@ -33,210 +41,264 @@ chmod 777 helloMC.html # 编辑html内容 vim helloMC.html ``` -这里为了测试静态资源是否配置成功,需要新建一个helloMC.html的静态测试文件。可以在这个文件内随意写两行字。 + +这里为了测试静态资源是否配置成功,需要新建一个 `helloMC.html` 的静态测试文件,可以在这个文件内随意写两行字。 + 例如: + ```html

hello static!

``` + 也可以整点炫的(可选): + ```html + + + MC客户端静态资源 + + + - - - MC客户端静态资源 - - - - - -
-

MinecraftClientStatic

-
- 请使用最新的浏览器 - + +
+

MinecraftClientStatic

+
+ 请使用最新的浏览器 + ``` + # 分配次级域名(可选) + > 如果你没有域名,那么这里可以跳过,后面需要域名的地方直接使用服务器ip地址 -**假设我们的域名是buggzd.com** +**假设我们的域名是** `buggzd.com` + +在域名解析新建一个 `A` 记录(地址为 `ipv6` 时应使用 `AAAA` 记录),此处以 `minecraft.buggzd.com` 为例,配置记录名称为 `minecraft` 配置记录地址为服务器地址,如下图所示。 -在域名解析新建一个记录,取名为minecraft,然后加上服务器ip。 ![image.png](https://s2.loli.net/2023/01/11/8V1thbsZWgd6qxp.png) -这是我们就有了一个子域名minecraft.buggzd.com -添加完成后可以使用cmd去ping一下这个域名(minecraft.buggzd.com),如果返回了正确的ip地址就是已经分配成功了。 -# 配置nginx.conf -查找nginx配置文件目录:(如果这里没有nginx指令,那么说明你nginx安装没有成功) + +这是我们就有了一个子域名 `minecraft.buggzd.com` 添加完成后可以使用 `cmd` 去 `ping` 一下这个域名`minecraft.buggzd.com` 如果返回了正确的ip地址就是已经分配成功了。 + ```shell - $ nginx -t - $ nginx: the configuration file /etc/nginx/nginx.conf syntax is ok +ping minecraft.buggzd.com ``` -这里`/etc/nginx/nginx.conf`就是Nginx的配置文件 -然后cd到nginx配置目录。 -```bash + +# 配置 nginx.conf + +查找 `nginx` 配置文件目录:(如果这里没有 `nginx` 指令,那么说明你 `nginx` 安装没有成功) + +```shell +nginx -t +``` + +输出 + +``` +nginx: the configuration file /etc/nginx/nginx.conf syntax is ok +``` + +这里 `/etc/nginx/nginx.conf` 就是 `Nginx` 配置文件的路径,然后 `cd` 到 `nginx` 配置目录。 + +```shell cd /etc/nginx # 编写配置文件 vim nginx.conf ``` -因为之前配置过博客逆向代理,`nginx.conf`会带有之前的配置记录,不能把他们搞乱。所以**理清层级关系很重要!** -```nginx.conf -# 这是nginx.conf的层级目录 -# 每个nginx.conf配置文件都只有一个http块,所以如果之前配置过nginx -# 就只需要粘贴server块里的内容,把server块放到http块内部。 - http { - server { ... } - server { ... } - server { ... } - } -``` -需要填写的配置: -```nginx.conf - http { - server { - # 需要监听的端口号,可以不动 - listen 80; - # 这里需要把localhost改为上面分配好的域名 - server_name minecraft.buggzd.com; - location /{ - # root后面是对应的静态资源文件夹的位置 - root /MinecraftClientStatic; - # 这里是默认加载的首页html,这里放的是刚刚新建的测试文件 - # 它是从root目录文件夹内开始查找的,所以不要写/MinecraftClientStatic/helloMC.html - index helloMC.html; - } - } -``` -> Q:上面的配置干了什么事? -> A:比如你访问http://minecraft.buggzd.com/test.png时,nginx会访问本地的/MinecraftClientStatic/test.png 然后返回。 -当正确编写完`nginx.conf` ,需要让nginx重新加载一下配置文件。 +因为之前配置过博客反向代理 `nginx.conf` 会带有之前的配置记录不要把他们搞乱,**理清层级关系很重要**! + +```conf +# 这是 nginx.conf 的层级目录 +# 每个 nginx.conf 配置文件都只有一个 http 块,所以如果之前配置过 nginx +# 就只需要粘贴 server 块里的内容,把 server 块放到 http 块内部。 +http { + server { ... } + server { ... } + server { ... } +} +``` + +需要填写的配置: + +```conf +http { + server { + # 需要监听的端口号,可以不动 + listen 80; + # 这里需要把localhost改为上面分配好的域名 + server_name minecraft.buggzd.com; + location / { + # root后面是对应的静态资源文件夹的位置 + root /MinecraftClientStatic; + # 这里是默认加载的首页 html ,这里放的是刚刚新建的测试文件 + # 它是从 root 目录文件夹内开始查找的,所以不要写 /MinecraftClientStatic/helloMC.html + index helloMC.html; + } + } +} +``` + +> Q:上面的配置干了什么事? +> A:比如你访问 `http://minecraft.buggzd.com/test.png` 时,`nginx` 会访问本地的 `/MinecraftClientStatic/test.png` 然后返回。 + +当正确编写完 `nginx.conf` 需要让 `nginx` 重新加载一下配置文件。 + ```shell nginx -s reload ``` -然后直接访问刚刚配置的域名(minecraft.buggzd.com),默认会跳转到编写好的`helloMC.html`,你也可以在域名后加/helloMC.html (minecraft.buggzd.com/helloMC.html) + +然后直接访问刚刚配置的域名 `minecraft.buggzd.com` 默认会跳转到编写好的 `helloMC.html` 页面,你也可以访问 `http://minecraft.buggzd.com/helloMC.html` + ![image.png](https://s2.loli.net/2023/01/11/oAx4X1aDE3J6sup.png) -当页面出现`helloMC.html`的文本内容时,说明已经配置成功了! + +当页面出现 `helloMC.html` 的内容时,说明已经配置成功了! 放张图片到静态资源文件夹试试。 + ![image.png](https://s2.loli.net/2023/01/11/UCdr8tgq2EVDnP7.png) + 访问成功,没问题! # 导出整合包 + ![image.png](https://s2.loli.net/2023/01/11/JwLryPXjdU8HEKo.png) + 选择服务器自动更新整合包 + ![image.png](https://s2.loli.net/2023/01/11/Yr2e5N1qXAuMiIx.png) + **整合包下载链接前缀**:填静态资源服务器的地址。 -我们需要先去静态资源文件夹下新建一个modepack文件夹(也就是/MinecraftClientStatic/modepack) +我们需要先去静态资源文件夹下新建一个 `modepack` 文件夹(也就是 `/MinecraftClientStatic/modepack`) + ```shell cd /MinecraftClientStatic mkdir modepack ``` -然后整合包下载链接前缀这里填写`http://minecraft.buggzd.com/modepack` + +然后整合包下载链接前缀这里填写 `http://minecraft.buggzd.com/modepack` + ![image.png](https://s2.loli.net/2023/01/11/PQfCEkdVAoqm1Ru.png) + # 上传整合包到静态资源服务器 -假设我们刚刚打包的整合包名称为`client1.0.zip` -我们把`client1.0.zip`通过ftp上传到服务器中,然后使用解压命令将这个整合包解压到`/MinecraftClientStatic/modepack`文件夹中。 + +假设我们刚刚打包的整合包名称为 `client1.0.zip` +我们把 `client1.0.zip` 通过 `ftp` 上传到服务器中,然后使用解压命令将这个整合包解压到 `/MinecraftClientStatic/modepack` 文件夹中。 + ```shell # 假设我们把client1.0.zip上传到了/home/ftp文件夹中 # 把 /home/ftp/client1.0.zip 解压到 /minecraftClientStatic/modepack unzip /home/ftp/client1.0.zip -d /minecraftClientStatic/modepack ``` + 解压完以后我们查看一下 + ```shell ls /minecraftClientStatic/modepack ``` + 服务器返回: -overrides server-manifest.json +``` +overrides server-manifest.json +``` + +其中 `overrides` 是一个文件夹 `server-manifest.json` 是整合包配置文件。 -其中overrides是一个文件夹,server-manifest.json是整合包配置文件。 # 客户端初始化 -第一次使用客户端需要在一个空文件夹(例如newClientPackage)中放一个hmcl启动器,打开hmcl导入刚刚做好的`client1.0.zip`整合包。 -然后就可以把这个文件夹(newClientPackage)打包成一个zip发给玩家了,以后玩家每次打开hmcl登录时,hmcl就会自动向静态资源服务器中查询整合包配置信息,当发现更新时会自动下载。 -当缺少mod时会自动下载静态资源服务器上的mod -![image.png](https://s2.loli.net/2023/01/11/WpD4Xm7i561YbIj.png) -# 更新客户端 -目前HMCL版本更新的步骤是这样的: -1. hmcl对比本地的mod和服务器的mod**名称**,发现服务器上存在本地不存在的mod,把不存在的mod下载。 -2. 对比名称相同的mod,当对比的mod存在**名称相同时**,对比其**MD5哈希值**,如果哈希值不匹配则重新下载服务器上的mod。 -3. 在获得更新的时候对比一次本地的文件,如果以前版本的模组在新的版本没有了,hmcl会自动将本地的这个模组删除 -4. 在不通过远端服务器更新的资源都不会被下次更新删除,换句话说就是如果是玩家自己魔改整合包,往里面放的mod是不会被删除的。 -当想要添加新的mod,添加mod后需要重新导出整合包(例如client2.0.zip),导出的整合包版本号增加,然后重新上传整合包到静态资源服务器。 +第一次使用客户端需要在一个空文件夹以 `newClientPackage` 为例,在文件夹中放一个 `hmcl` 启动器,打开 `hmcl` 导入刚刚做好的 `client1.0.zip` 整合包。 +然后就可以把这个文件夹 `newClientPackage` 打包成一个 `zip` 发给玩家了,以后玩家每次打开 `hmcl` 登录时,启动器就会自动向静态资源服务器中查询整合包配置信息,当发现更新时会自动下载。 +当缺少 `mod` 时会自动下载静态资源服务器上的 `mod` + +![image.png](https://s2.loli.net/2023/01/11/WpD4Xm7i561YbIj.png) + +# 更新客户端 + +目前HMCL版本更新的步骤是这样的: + +1. 启动器对比本地的 `mod` 和服务器的 `mod` 名称,如发现本地不存在的 `mod` 则会从服务器上下载。 +2. 当 `mod` 的名称相同时,启动器会继续对比文件 `MD5` 哈希值,如果不匹配则重新下载。 +3. 在获得更新的时启动器会对比一次本地的文件,如果旧版本的模组在新版本中消失了,启动器会自动将本地的这个模组删除。 +4. 非远端服务器更新资源不会被更新删除,换句话说就是如果是玩家自己魔改整合包,往里面放的 `mod` 是不会被删除的。 + +当想要添加新的 `mod` 时需要在添加之后重新导出整合包如 `client2.0.zip` 导出的整合包版本号增加,然后重新上传整合包到静态资源服务器。 + ```shell cd /minecraftClientStatic # 建议直接删除该目录然后重新新建 @@ -246,13 +308,15 @@ mkdir modepack # 解压新的客户端整合包 unzip /home/ftp/client2.0.zip -d /minecraftClientStatic/modepack ``` -玩家打开hmcl点击启动后,HMCL就会检测到版本更新,自动更新mod。 -> 参考资料: -> nginx配置文件结构:https://blog.csdn.net/pibuliao8626/article/details/110449349 -> 使用nginx如何部署静态资源:https://www.muzhuangnet.com/show/86630.html -> Nginx 作为静态资源服务器:https://zhuanlan.zhihu.com/p/514547633 -> nginx配置静态静态资源服务器:https://cloud.tencent.com/developer/article/2028983?from=15425 -> 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/ +玩家启动 `hmcl` 后,启动器会检测到版本更新并自动更新模组。 + +# 参考资料 + +- [nginx配置文件结构](https://blog.csdn.net/pibuliao8626/article/details/110449349) +- [使用nginx如何部署静态资源](https://www.muzhuangnet.com/show/86630.html) +- [Nginx 作为静态资源服务器](https://zhuanlan.zhihu.com/p/514547633) +- [nginx配置静态静态资源服务器](https://cloud.tencent.com/developer/article/2028983) +- [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/) diff --git a/_multiplayer/feedback.md b/_multiplayer/feedback.md index 9cbb63c..971c233 100644 --- a/_multiplayer/feedback.md +++ b/_multiplayer/feedback.md @@ -23,11 +23,12 @@ author: Burning_TNT 需要特别提醒的是:联机功能不会更不能取代 Minecraft: Java Edition 服务器。 它的主要目标依然是让朋友之间能共同游玩,而不是长时间的对外开放。 -最后,我想感谢一切参与到 EasyTier、Terracotta | 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 easytier.cn 深入了解这一项目。 +最后,我想感谢一切参与到 EasyTier、Terracotta \| 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 easytier.cn 深入了解这一项目。 diff --git a/_multiplayer/help.md b/_multiplayer/help.md index c1e5d2f..6243895 100644 --- a/_multiplayer/help.md +++ b/_multiplayer/help.md @@ -19,4 +19,4 @@ author: Burning_TNT 需要特别提醒的是:联机功能不会更不能取代 Minecraft: Java Edition 服务器。 它的主要目标依然是让朋友之间能共同游玩,而不是长时间的对外开放。 -最后,我想感谢一切参与到 EasyTier、Terracotta | 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 easytier.cn 深入了解这一项目。 +最后,我想感谢一切参与到 EasyTier、Terracotta \| 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 easytier.cn 深入了解这一项目。 diff --git a/_multiplayer/token.md b/_multiplayer/token.md index c1e5d2f..6243895 100644 --- a/_multiplayer/token.md +++ b/_multiplayer/token.md @@ -19,4 +19,4 @@ author: Burning_TNT 需要特别提醒的是:联机功能不会更不能取代 Minecraft: Java Edition 服务器。 它的主要目标依然是让朋友之间能共同游玩,而不是长时间的对外开放。 -最后,我想感谢一切参与到 EasyTier、Terracotta | 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 easytier.cn 深入了解这一项目。 +最后,我想感谢一切参与到 EasyTier、Terracotta \| 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 easytier.cn 深入了解这一项目。