From 07bc32092ef66fe4a44ee3a3814404e2cceb1275 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 31 Mar 2024 04:24:22 +0000 Subject: [PATCH] Deploy to GitHub pages --- 404.html | 34 ++++++++++++++++ advance/cli-interface.html | 34 ++++++++++++++++ advance/combine.html | 34 ++++++++++++++++ advance/custom-deploy.html | 34 ++++++++++++++++ advance/dynamic-loader.html | 34 ++++++++++++++++ advance/ignores.html | 34 ++++++++++++++++ advance/modclient-self-update.html | 34 ++++++++++++++++ advance/overwrites.html | 34 ++++++++++++++++ advance/run-as-exe.html | 34 ++++++++++++++++ advance/spell-start.html | 34 ++++++++++++++++ advance/technical-details.html | 34 ++++++++++++++++ assets/404.html-CnfmQthm.js | 1 + assets/404.html-DOUYBUq9.js | 1 + assets/6411f6297cc3f-DzLgj2ro.jpg | Bin 0 -> 449897 bytes assets/6411fd659499b-CSgqfHWV.jpg | Bin 0 -> 204491 bytes assets/app-DE99FDxf.js | 32 +++++++++++++++ assets/auto-start.html-8GzHA--v.js | 1 + assets/auto-start.html-kbg7WsjW.js | 1 + assets/caution.html-BOPl62dq.js | 1 + assets/caution.html-ChgU7B1c.js | 1 + assets/cli-interface.html-BTkat09b.js | 1 + assets/cli-interface.html-D1B1OhYN.js | 1 + assets/client.html-BIDBFE3C.js | 5 +++ assets/client.html-CLXSiVi7.js | 1 + assets/client.html-Cgh2v7yb.js | 1 + assets/client.html-DcRSkluQ.js | 1 + assets/combine.html-CS5yxF1w.js | 1 + assets/combine.html-ooPxiLEe.js | 1 + assets/custom-deploy.html-BSMDqQIr.js | 1 + assets/custom-deploy.html-C7phfeNq.js | 1 + assets/dynamic-loader.html-CL7M9knm.js | 1 + assets/dynamic-loader.html-D2aViqvG.js | 1 + assets/ignores.html-CZWszDEg.js | 1 + assets/ignores.html-m8rIJDSH.js | 1 + assets/index.html-BH-0JY9d.js | 1 + assets/index.html-BURrGHEj.js | 1 + assets/manage.html-DFOyGmHT.js | 1 + assets/manage.html-EPulmFWu.js | 1 + assets/manager.html-B3jd7l3j.js | 1 + assets/manager.html-DKssfxqk.js | 1 + assets/modclient-self-update.html-D1c7wX28.js | 1 + assets/modclient-self-update.html-LDX9zzJ5.js | 1 + assets/overwrites.html-BGX6Zvrz.js | 1 + assets/overwrites.html-BxbMdxBk.js | 1 + assets/preparations.html-BMtzzI1d.js | 1 + assets/preparations.html-B_iheDRm.js | 1 + assets/run-as-exe.html-CnnxtzcS.js | 1 + assets/run-as-exe.html-U4v_sx1F.js | 1 + assets/server.html-BKoLXEOY.js | 1 + assets/server.html-DwS2V9Tc.js | 1 + assets/spell-start.html-Cp7hKaeI.js | 1 + assets/spell-start.html-s8q6E70i.js | 1 + assets/style-CkGaMkc3.css | 1 + assets/technical-details.html-8hIDum6S.js | 1 + assets/technical-details.html-DiuFSDeJ.js | 1 + faq/client.html | 38 ++++++++++++++++++ faq/manage.html | 34 ++++++++++++++++ guide/auto-start.html | 34 ++++++++++++++++ guide/caution.html | 34 ++++++++++++++++ guide/client.html | 34 ++++++++++++++++ guide/manager.html | 34 ++++++++++++++++ guide/preparations.html | 34 ++++++++++++++++ guide/server.html | 34 ++++++++++++++++ index.html | 34 ++++++++++++++++ 64 files changed, 761 insertions(+) create mode 100644 404.html create mode 100644 advance/cli-interface.html create mode 100644 advance/combine.html create mode 100644 advance/custom-deploy.html create mode 100644 advance/dynamic-loader.html create mode 100644 advance/ignores.html create mode 100644 advance/modclient-self-update.html create mode 100644 advance/overwrites.html create mode 100644 advance/run-as-exe.html create mode 100644 advance/spell-start.html create mode 100644 advance/technical-details.html create mode 100644 assets/404.html-CnfmQthm.js create mode 100644 assets/404.html-DOUYBUq9.js create mode 100644 assets/6411f6297cc3f-DzLgj2ro.jpg create mode 100644 assets/6411fd659499b-CSgqfHWV.jpg create mode 100644 assets/app-DE99FDxf.js create mode 100644 assets/auto-start.html-8GzHA--v.js create mode 100644 assets/auto-start.html-kbg7WsjW.js create mode 100644 assets/caution.html-BOPl62dq.js create mode 100644 assets/caution.html-ChgU7B1c.js create mode 100644 assets/cli-interface.html-BTkat09b.js create mode 100644 assets/cli-interface.html-D1B1OhYN.js create mode 100644 assets/client.html-BIDBFE3C.js create mode 100644 assets/client.html-CLXSiVi7.js create mode 100644 assets/client.html-Cgh2v7yb.js create mode 100644 assets/client.html-DcRSkluQ.js create mode 100644 assets/combine.html-CS5yxF1w.js create mode 100644 assets/combine.html-ooPxiLEe.js create mode 100644 assets/custom-deploy.html-BSMDqQIr.js create mode 100644 assets/custom-deploy.html-C7phfeNq.js create mode 100644 assets/dynamic-loader.html-CL7M9knm.js create mode 100644 assets/dynamic-loader.html-D2aViqvG.js create mode 100644 assets/ignores.html-CZWszDEg.js create mode 100644 assets/ignores.html-m8rIJDSH.js create mode 100644 assets/index.html-BH-0JY9d.js create mode 100644 assets/index.html-BURrGHEj.js create mode 100644 assets/manage.html-DFOyGmHT.js create mode 100644 assets/manage.html-EPulmFWu.js create mode 100644 assets/manager.html-B3jd7l3j.js create mode 100644 assets/manager.html-DKssfxqk.js create mode 100644 assets/modclient-self-update.html-D1c7wX28.js create mode 100644 assets/modclient-self-update.html-LDX9zzJ5.js create mode 100644 assets/overwrites.html-BGX6Zvrz.js create mode 100644 assets/overwrites.html-BxbMdxBk.js create mode 100644 assets/preparations.html-BMtzzI1d.js create mode 100644 assets/preparations.html-B_iheDRm.js create mode 100644 assets/run-as-exe.html-CnnxtzcS.js create mode 100644 assets/run-as-exe.html-U4v_sx1F.js create mode 100644 assets/server.html-BKoLXEOY.js create mode 100644 assets/server.html-DwS2V9Tc.js create mode 100644 assets/spell-start.html-Cp7hKaeI.js create mode 100644 assets/spell-start.html-s8q6E70i.js create mode 100644 assets/style-CkGaMkc3.css create mode 100644 assets/technical-details.html-8hIDum6S.js create mode 100644 assets/technical-details.html-DiuFSDeJ.js create mode 100644 faq/client.html create mode 100644 faq/manage.html create mode 100644 guide/auto-start.html create mode 100644 guide/caution.html create mode 100644 guide/client.html create mode 100644 guide/manager.html create mode 100644 guide/preparations.html create mode 100644 guide/server.html create mode 100644 index.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..d9012e5 --- /dev/null +++ b/404.html @@ -0,0 +1,34 @@ + + +
+ + + + + +此功能需要管理端 1.1.4 或者更高版本
有时候,你可能需要一个命令行就能启动管理端并且直接进入打包过程,而不是手动输入c然后输入版本号,这样显然对脚本调用管理端不友好
从管理端 1.1.4 开始,新增了一个叫“预输入”的特性,这个特性可以让程序的启动参数直接变成后续的输入
举个栗子,创建一个新版本,通常要先输入c进入创建模式,然后输入2.0这么一个版本号,最后还要在输入y来确认
现在有了预输入这个特性之后,在启动管理端的时候,直接使用java -jar manager.jar c 2.0 y n q
就能一键创建好一个新版本,无需任何键盘输入
后面的运行参数c 2.0 y n q
表示这四个参数会依次被模拟成你的手动输入,这对使用脚本调用管理端打包的场景来说非常有用(参数分隔是空格,因此版本号如果包含空格会导致解析失败)
脚本在打包完成之后,可以通过检查管理端的进程退出代码(exit code)来判断打包是否成功,成功会返回0,其它非0值均代表打包失败。打包失败通常是版本号冲突
q
,否则程序在打包完成后,仍会停留在交互式模式下,无法正常退出!changelogs.txt
文件,再进行打包。因为使用预输入参数进行打包时,没法手动输入更新记录,更新记录只能提前准备好java -jar manage.jar s q
来输出一下文件修改列表。而不必进入真正的打包过程,这对想要先审阅文件修改列表,再进行打包的脚本来说非常有用WARNING
最新消息:合并更新包功能有缺陷,请不要再使用此功能,会导致太久不更新的玩家漏更新!
此问题受限于更新架构没法修复,但会在未来的2.0版本中解决
如果某个文件在之前的版本中存在,但在参与合并的末尾版本中不存在。合并后会导致此文件无法在客户端被正常删除!
问题表现:大多数情况表现为客户端同时存在一个mod的新版本和旧版本两个文件导致冲突
解决办法:若已经出问题:参考注意事项页面里面的“怎么删除管理端不存在的文件”。若未出问题:不要使用合并功能
问题原因:在之前版本中存在,但后来被删除的文件在合并时会被认为是没有加入过更新的文件,也就导致这些文件没有被正确的删除
请勿使用管理端1.1.12和更旧的版本进行合并操作,因为严重bug会导致合并数据损坏,请升级到管理端1.1.13及以上版本再进行合并
当管理端用的时间长了以后,会积累非常多的版本,不仅占空间,还会增加更新流量。这时就需要更新包合并功能
合并功能有限制,并非可以随意合并,这些限制如下:
1234567
这七个版本,只能从最早的1开始往后合并,不能从中间开始合并方法如下:
combine
指令4567
这四个版本,输入3可以合并456
三个版本y
开始正式合并,这个过程需要时间较长,需要耐心等待changelogs.txt
文件,来手动合并一下更新记录McPatch的后台是服务端+管理端的分离架构,以方便你将打包过程和文件分发过程分离
分离后有许多好处,比如更换性能更强的HTTP服务端程序,比如Nginx,Apache,对象存储。同时也方便大佬们进行魔改(自带服务端性能没有经过特别优化,只能用在一些平时在线人数不多的服务器或者本地调试场景中)
自由化部署的大致原理就是将整个public目录下的所有文件(不包括public目录本身)上传到对象存储或者自己的服务器上去
这里以对象存储为例,你每打一个新版本更新包,比如1.1,就需要将public目录里面的这些文件上传到对象存储或者你的服务器上公开提供HTTP服务:
如果是1.0版本的管理端,需要上传这些文件:
1.2.mc-patch.json
(如果这个文件不存在就不用上传)1.2.mc-patch.bin
如果是1.1版本的管理端,需要上传这些文件:
1.2.mcpatch.zip
然后,客户端server选项要这样填写:
https://duixiangcunchu.com/some-folder/mc-patch-versions.txt
(或者versions.txt
)/mc-patch-versions.txt
(或者versions.txt
)部分,变成这样https://duixiangcunchu.com/some-folder
McPatch客户端会不定期发布新的版本。但升级客户端不像升级管理端那样方便,因为客户端在玩家电脑上,升级需要重新发包,比较麻烦
热升级就是用来解决这个问题的,通过使用动态加载器启动McPatch客户端后,McPatch客户端就可以间接地自己更新自己的版本了
说明:热升级新版本之后,需要第二次启动的时候新版本才会生效,这是一个很小的细节,但是必须要提一下
动态加载器目前支持全平台的所有Minecraft版本,但最低需要Java 8才能运行
动态加载器目前支持McPatch客户端全版本
注意McPatch客户端跨大版本升级(1.0升级到1.1)是不支持的,会出现version.txt
文件一直404的情况!原因是新版修改了版本号文件的文件名
动态加载器需要提前配置在客户端,并且这个文件是永远不需要更新的(除非遇到严重bug),只更新客户端本体就好
mc-patch-dynamic-loader.txt
文件(这个文件就是动态加载器的配置文件)-javaagent:McPatchClient-11.45.14.jar
,改过之后就是-javaagent:DynamicLoader-1.0.0.jar
(最后面的空格不要漏掉,此段代码请勿复制,如果复制必定启动失败)mc-patch-dynamic-loader.txt
文件从客户端那边复制到工作空间目录里,以加入更新做远程热升级的时候,务必保证动态加载器的配置文件的内容填写正确,因为填写错误会导致客户端启动失败,游戏也无法启动。解决办法是只能手动给玩家发一份【动态加载器的配置文件】和【客户端本体】替换掉游戏才可以恢复正常
管理端ignore机制类似于gitignore文件的用途。可以屏蔽掉工作空间目录下的一些文件或者目录让管理端看不到它们的存在,也就不会被打进更新包里
将客户端直接丢到工作空间目录下,或者用软链接链接过去的用户应该会用得上这个功能
使用方法很简单,在管理端程序旁边创建一个叫ignores.txt
的文件,在这个文件里一行行写上要忽略的文件就可以了。
一些注意的地方:
从管理端1.1.10版本开始更换了文件语法,因此请按不同的版本阅读下方不同的教程
从1.1.10开始支持了Glob表达式,支持用简短的语法同时匹配多个文件,相比之前的纯文本匹配效率要高了不少
ignores.txt的语法和gitignore文件类似,每一行都是一条路径,下面是一些例子:
.minecraft/saves/旧的世界/*
:忽略旧的世界这个目录下面所有的文件不会被打包.minecraft/options.txt
:精准匹配一个文件,让MC的设置文件不会被打包需要注意的是两个方括号[]
在Glob表达式里有特别的意义,且没有转义字符可用,会导致匹配失败。所以请尽量把工作空间目录下文件名中带方括号的文件名换成不带方括号的,这样就可以避免出现这个问题
比如添加这样一行:.minecraft/saves/旧的世界
,可以让旧的世界
这个目录不被打包
这样添加一行:.minecraft/options.txt
,可以让MC设置文件不会被打包
ignores文件的写法有三种:
aaa/bbb.txt
aaa/bbb/
aaa/bbb
(小提示:忽略目录应优先用这个方法,而不是上面那个)编写好了ignores文件之后,打开管理端,可以直接使用s命令来很方便地调试文件忽略成功了没有。当然用c命令也是没有问题的
借助ModClient的特殊能力,可以实现给McPatchClient.jar本身做自更新(即使McPatchClient.jar本身是不支持的)
下文中所指的旧版列表文件
在不同的ModClient版本中,具体文件名不一样,请注意区分:
OldBalloonUpdateFileName.txt
OldClientFileName.txt
(不包括1.1.1版本本身)自更新教程:
准备好新版本客户端程序,并放在工作空间目录下,对应的原先旧版本客户端程序的位置的旁边
比如原先旧版在.minecraft/旧版本.jar
,那么新版就要和旧版同目录放置:.minecraft/新版本.jar
然后在工作空间目录下创建一个文本文件叫.minecraft/旧版列表文件
(旧版列表文件这个名字在上文中有提到)
打开旧版列表文件
,新增一行,将旧版的客户端程序的文件名添加一进去(这样做是为了让ModClientLoader自动删除旧版文件)如果有多个旧版,就一行一个
最后打包新版本,等待客户端更新
管理端overwrites是保存文件强制覆盖规则的地方。可以让某些文件在更新时每次都全量打包,而不是只记录增量信息
这样即使客户端某些文件被人为修改或者删除,利用这个功能也可以强制更新这些“有问题”的文件。当然前提是这个文件被修改过,如果没有服务端修改,它还是不会被打包的,所以不用担心流量消耗的问题
使用方法很简单,在管理端程序旁边创建一个叫overwrites.txt
的文件,在这个文件里一行行写上要覆盖的文件路径就可以了
一些注意的地方:
从管理端1.1.10版本开始更换了文件语法,因此请按不同的版本阅读下方不同的教程
从1.1.10开始支持了Glob表达式,支持用简短的语法同时匹配多个文件,相比之前的纯文本匹配效率要高了不少
overwrites的语法和gitignore文件类似,每一行都是一条路径,下面是一些例子:
.minecraft/saves/旧的世界/*
:让旧的世界这个目录下面所有的文件都被强制覆盖.minecraft/options.txt
:精准匹配一个文件,让MC的设置文件被强制覆盖需要注意的是两个方括号[]
在Glob表达式里有特别的意义,且没有转义字符可用,会导致匹配失败。所以请尽量把工作空间目录下文件名中带方括号的文件名换成不带方括号的,这样就可以避免出现这个问题
管理端1.1.9和之前版本只能写单个文件,不支持目录和通配符等语法
比如添加这样一行:.minecraft/saves/options.txt
,可以让MC设置文件每次都会全量打包
编写好了overwrites.txt文件之后,打开管理端,可以直接使用s命令来很方便地调试文件忽略成功了没有,如果文件匹配成功了,文件名后面会出现(强制覆盖)
的字样,如果看不到则说明匹配失败了
在某些场景中需要让McPatch客户端能够在玩家的电脑上被双击启动。但玩家电脑上jar文件普遍都是以压缩软件打开的,或者PATH变量里找不到java.exe,因此无法通过双击启动。此时可以借助bat文件来实现双击启动客户端的目的。此功能也可以利用在PCL的自定义界面上来实现点击更新按钮后,调用命令行启动McPatch客户端
首先我们需要下载Jar启动助手
,然后将java-locator.exe
,run.bat
,start.bat
这三个文件复制到McPatch客户端或者动态加载器旁边
然后编辑run.bat
,将里面的DynamicLoader-1.1.jar
改成你的客户端文件名,或者动态加载器的文件名,这样就指定好了要启动的Jar文件,保存关闭
双击启动run.bat
即可看到效果
配置URL咒语启动,云端配置下发以及配置自更新(可选)
前置动作:
McPatchClient.jar
、hmclversion.cfg
放在 workspace/
内,一定要按照您想要的配置修改配置文件。前提条件:
您对客户端打开了版本隔离。 您使用 https、http 任意一个协议共享文件。 您明白且知道如何教会玩家使用在线导入整合包功能。 您很确定您的玩家会使用hmcl。
概念解释:
这是需要的文件列表:
http或https://您存放整合包的网站服务器地址:端口/您的更新地址
,例如https://download.example.com/somefile/your-package.zip
av-W4r$j8KiS8Mjap>UIgWrr)=$
z5Y^$4QU^D9Y7-z|fbV;1hkVb}>3d#`FHPW5c}v#zXd2ith-ezdf-}MsM&HGQrowqI
zYP>rs5ceGtT3S2lh7F{{OVKg|(@ckEHdyCqajCgZ>n&;8DU_~`sc0E3Ycy04mLgj2
zbXlPzPp+Pb1>m)+a)etV?GlKDjf&08YkjP2vbJkB02Q}Yy1%Xf*kvd(_NnE}s%+N|
zjG<8Nn`phIQ4i?UeLMc4a{8r=GTbtr$CBC2#=+mbuLFSPvzn>Srdd9#na$eKH+>M8
zBSlT~Tqa6%>p!zU|3_Dfu_*O_d}-hpU9Ql^4YO6I4nR=m7o>9Zp{}l$`ubXgi0--I
zU^IBO-F1z=F?0z~VX|?RRnTK=l%LjYj8^1hT^;Qmrfz@<%@f8TkdZpmYAuW=^+$~H
zil&*wSyKli8y;cH+)Ma~U*hF8FSC5rCrJ^}&aa)stQnAMtfbPP%#7)i)n+b|!3{s-
z)3;6JlYe{%ulMKC_L0A_rehJ49{CbC+)>Bd-n5^4?|qpoKRSc;KY9lnuX&CypQLvz
z6(9mS_H1Tz*;*e>o&3Q~JU;YQK7Vc#A{^%M_Km#o^e)7%6wel}<&EPfv;0HfR4BYp7E0OeW_@jG~14@HjlZCWpzU&PqxhX
z(mAV7qF{t7%+UiTSnS{eDIE*1g9%Rcb}x#AUeIityzjghbLbU49bePwoz+pgE_*v6
zghsTJx`r|S*3ZWNB2Hho&EW2Pq3P*5`Eh+?+w$r*NG(TGN9UCSNwFM~FNNd-HIpyn
z&%au4#;n7!i_(26HvG