diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..84b8c44 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,51 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: + - main + # Review gh actions docs if you want to further define triggers, paths, etc + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on + +jobs: + build: + name: Build Docusaurus + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: npm + + - name: Install dependencies + run: npm install --frozen-lockfile + - name: Build website + run: npm run build + + - name: Upload Build Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: build + + deploy: + name: Deploy to GitHub Pages + needs: build + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/docs/guide.md b/docs/installation/guide.md similarity index 87% rename from docs/guide.md rename to docs/installation/guide.md index ae45e18..3546a29 100644 --- a/docs/guide.md +++ b/docs/installation/guide.md @@ -1,6 +1,5 @@ --- -sidebar_position: 12 -id: guide +sidebar_position: 10 title: 安装教程 --- @@ -37,13 +36,15 @@ title: 安装教程 + 到`mp/workspace/.minecraft/versions/your-version/mods` + 其它文件也是同理,需要复制到versions目录下 -::: tip -若开启版本隔离,那么要更新的实际上是versions目录下的mods文件夹,把文件放到`.minecraft/mods`目录下,游戏是读取不到的。 +:::tip + +若开启版本隔离,那么要更新的实际上是versions目录下的mods文件夹。如果直接把文件放到`.minecraft/mods`目录下,游戏是读取不到的。 + ::: ## 四、开始打包 -在终端里输入`mcpatch-manager.exe pack `即可开始打包,``是要打包的版本号,不能和现有的冲突。 +在终端里输入`mcpatch-manager.exe pack `即可开始打包,``是要打包的版本号,不能和现有的重复。 版本号只能包括大小写字母,数字,以及`!@#$()_+-=;',.`这几个符号,不要使用中文,空格,或其它字符,会出问题。 @@ -53,7 +54,7 @@ title: 安装教程 如果对打包结果不放心,可以使用`mcpatch-manager.exe test`对更新包进行校验,这会模拟客户端的解压过程,检查文件是否损坏。 -::: danger[注意] +:::danger[万分小心!!!] 已经打好的更新包文件不能手动删除也不能修改里面的文件,这会导致数据损坏,应该再打一个新的包来替代删除旧的包。 @@ -65,13 +66,9 @@ title: 安装教程 管理端会自动识别到你所做的更改,并记录到更新包里。 -即使新旧文件同名,只修改了文件里的数据,也能检测到。目录也是一样,该新增新增,该删除删除,就像对自己电脑上的文件一样操作就好。 - -::: tip[提示] +即使新旧文件同名,只修改了文件里的数据,也能检测到(包括加密压缩包)。目录也是一样,该新增新增,该删除删除,就像对自己电脑上的文件一样操作就好。 -管理端目前还没有提供复原工作空间目录的指令,如果有这个需求,需要手动从更新包中把文件解压出来。后面会把这个功能加上。 - -::: +如果对工作空间目录下的文件进行了修改,但又发现改的不对。可以使用管理端的revert命令来丢弃刚刚的修改,将文件状态退回上一次打包的时候。 ## 六、启动服务端 @@ -89,7 +86,7 @@ title: 安装教程 唯一需要修改的是`urls`选项,这个参数控制更新服务器的地址,将127.0.0.1:6700修改成自己服务器的ip和端口即可。 -其它选项可以按需修改,但不是必须的,完成后保存关闭。 +其它选项可以按需修改。 ## 八、一键启动 @@ -101,9 +98,9 @@ title: 安装教程 打开Minecraft启动器(任意启动器均可,官方启动器除外),调整游戏版本设置,找到Java虚拟机参数(或者JVM 参数)。 -在参数的开头插入这串代码`-javaagent:mp/loader-1.jar`,然后回到启动器主界面。 +在参数的开头插入这串代码`-javaagent:mp/loader-1.jar`,然后回到启动器主界面。(此时先不要启动游戏) -接着创建“启动列表”文件`.minecraft/mp/startlist.txt`,将客户端程序的文件名写进去,比如`mcpatch-client-0.0.0.exe`,然后保存关闭。 +接着创建“启动列表”文件`.minecraft/mp/startlist.txt`,将客户端程序的文件名写到这个文件的第一行,比如`mcpatch-client-0.0.0.exe`,然后保存关闭。 点击Minecraft启动器的“启动游戏”按钮,一切顺利的话就会自动启动更新了。 diff --git a/docs/installation/index.md b/docs/installation/index.md new file mode 100644 index 0000000..ff65317 --- /dev/null +++ b/docs/installation/index.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 10 +title: 首次安装 +--- +import DocCardList from '@theme/DocCardList'; + + \ No newline at end of file diff --git a/docs/script-template.md b/docs/installation/upload-dxcc.md similarity index 97% rename from docs/script-template.md rename to docs/installation/upload-dxcc.md index 8e4e37d..841bee5 100644 --- a/docs/script-template.md +++ b/docs/installation/upload-dxcc.md @@ -1,7 +1,6 @@ --- -sidebar_position: 13 -id: script-template -title: 上传脚本模板 +sidebar_position: 20 +title: 上传对象存储 --- 管理端打包后,可能要把更新包上传到自己的服务器,或者对象存储上供大家下载。 diff --git a/docs/maintain/client-self-upgrade.md b/docs/maintain/client-self-upgrade.md new file mode 100644 index 0000000..0b9b40d --- /dev/null +++ b/docs/maintain/client-self-upgrade.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 30 +title: 客户端热升级 +--- + +Mcpatch客户端会不定时发布新版本,新版本一般都会包含新的特性和改进修复,需要尽可能升级到新版本。 + +但客户端升级不像管理端那么容易:因为客户端在玩家电脑上,升级需要重新发包,比较麻烦。 + +因此Mcpatch特别支持了客户端热升级功能,用来远程下发新的客户端版本,无需重新发包。 + +客户端热升级的原理,是通过修改loader.jar的配置文件startlist.txt,来实现启动新版的客户端exe文件来做到热升级的。 + +## 首次配置 + +这部分步骤只需要进行一次即可,后续不用再做: + +将下面的文件放入工作空间目录,以加入更新。并且文件位置要和客户端那边一一对应 + +1. startlist.txt文件 +2. 当前版本的客户端程序文件 + +## 升级过程 + +1. 下载好新版本的客户端程序文件 +2. 删除工作空间目录下的旧版客户端程序文件 +3. 将新版的客户端程序文件放入旧版文件的旁边(工作空间目录里) +4. 编辑startlist.txt文件 +5. 将新版的文件名,插入到第一行。使旧版的文件名从第一行变成第二行。以此类推,不要删除这些旧文件名 +6. 将刚刚的修改正常打包,客户端程序会自动下载。等到下一次运行时,启动的就会是新版的客户端程序了 + +## startlist.txt文件的格式(可选阅读) + +startlist.txt文件也叫启动列表文件,是加载器jar的配置文件。 + +加载器会读取这个文件内容,并将第一行的文件名,作为客户端程序的启动文件名,去运行这个文件,从而启动客户端程序。 + +而从第二行开始往后,记录的则是旧版的文件名,只有第一行是最新的版本。这些旧版文件名要保留,不能删除,否则玩家那边的旧版客户端程序文件会有残留,多占一些存储空间。(只是多占用一些空间,但不会对程序功能有干扰) + +一个栗子: + +```txt +mcpatch-1.4.exe # 第一行是新版本 +mcpatch-1.3.exe # 第二行开始后面全是旧版本 +mcpatch-1.2.exe # 也是旧版本 +mcpatch-1.1.exe # 也是旧版本 +``` + +为什么要这样做,是因为按照正常打包更新流程,更新包中有2个请求。 + +一个记录是下载新版的文件。 + +另一个记录是删除旧版文件。 + +下载新版文件没有任何问题,会直接下载。但是删除旧版文件时就会有些不同,此时客户端程序自己就是那个旧版文件。 + +按照Windows操作系统的规则,正在运行的文件是不能删除的,所以客户端无奈只能将删除“自己文件”这个请求给忽略掉,或者说跳过了。 + +那么就会造成旧版客户端文件一直残留,随着版本更新文件会越来越多。 + +既然客户端程序无法自己删除自己,那么就可以将这个删除请求委托给加载器来做。 + +加载器会将启动列表文件的第二行开始到末尾的所有文件名当成旧文件来处理,即删除掉。 + +这也是为什么需要保留这些旧版本文件列表的原因了。 + +就算将这些旧版文件名不小心删掉了,也不会有特别严重的后果。顶多就是占点空间,不会对功能有干扰。 \ No newline at end of file diff --git a/docs/maintain/combine-versions.md b/docs/maintain/combine-versions.md new file mode 100644 index 0000000..12dd9cb --- /dev/null +++ b/docs/maintain/combine-versions.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 20 +title: 合并更新包 +--- + +当管理端用久了以后,会积累非常多的更新包,会占用大量的存储空间。 + +管理端提供了一个功能,可以将多个更新包合并成一个,每个文件只保留一份最新版本,可以释放出大量存储空间,同时不影响玩家的正常更新。 + +使用管理端的combine命令即可开始自动合并更新包,会将所有更新包合并成一个。v2的合并更新包功能不会丢失版本信息,因此相较v1版本,无需再输入新的版本号就能完成合并。 + diff --git a/docs/maintain/index.md b/docs/maintain/index.md new file mode 100644 index 0000000..d31cf90 --- /dev/null +++ b/docs/maintain/index.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 10 +title: 日常维护 +--- +import DocCardList from '@theme/DocCardList'; + + \ No newline at end of file diff --git a/docs/start.md b/docs/start.md index 76ce1d4..58809e1 100644 --- a/docs/start.md +++ b/docs/start.md @@ -1,45 +1,58 @@ --- sidebar_position: 1 -id: start -title: McPatch2 介绍 +title: McPatch 介绍 --- -## McPatch 2 +McPatch 是一个给 Minecraft 客户端做文件更新的独立应用程序。客户端仅支持Windows,管理端支持全平台。 -McPatch是一个给Minecraft客户端做文件更新的独立应用程序,这里是McPatch第二版的文档。 +只要你想,你可以通过这个程序向你服务器的玩家提供一切内容,包括模组、资源包、以及~~不可言说的视频~~ -客户端仅支持Windows,管理端支持全平台 +这里是McPatch v2版本的文档,如果你是v1版本的老用户,请看下面的升级说明 -官方企鹅群[【更新助手官方群】](https://jq.qq.com/?_wv=1027&k=PqAEtn39) 925057600 +
+ 从v1升级说明 -## 升级说明 + 首先,v1和v2不兼容,无法用v1的热升级功能来更新版本。安装v2前需要先删掉v1版本的全部文件再从头安装。 -2.0版本无法从1.0版本用热更新的方式升级上来,需要先把1.0版本的文件全部删掉,再重头开始安装2.0版本。 + 如果你是第一次使用这个软件,请忽略这个升级说明。 -如果你是第一次使用这个软件,请忽略这个升级说明。 + 下面是v2版本相较v1版本的一些改动,请先看过之后,再决定要不要升级。 -## 大版本更新变动 + ### 新功能(相较v1) -以下是2.0版本相较1.0版本的改动。如果你是1.0版本的老用户,请在使用之前仔细阅读下面的改动列表。 + 1. 客户端支持按需下载,通过其它方式提前更新的文件,在下载时会被跳过,不会重复下载 + 2. 管理端现在自带一个内置的小服务端,使用tcp协议和客户端通信,无需再担心备案的问题 + 3. 管理端支持上传脚本模板,每次打包后都会按模板生成一个脚本,用来一键上传更新包文件 -### 新功能 + ### 改进(相较v1) -1. 客户端支持按需下载,通过其它方式提前更新的文件,在下载时会被跳过,不会重复下载 -2. 管理端现在自带一个内置的小服务端,使用tcp协议和客户端通信,无需再担心备案的问题 -3. 管理端支持上传脚本模板,每次打包后都会按模板生成一个脚本,用来一键上传更新包文件 + 1. 优化管理端文件结构,省去了history目录的设计,硬盘占用减少三分之一 + 2. 更新包每次都记录完整文件,避免客户端文件因玩家被修改导致无法更新 + 3. 客户端修复窗口无响应和下载限速的问题,现在可以跑到更快的下载速度 -### 改进 + ### 取舍(相较v1) -1. 优化管理端文件结构,省去了history目录的设计,硬盘占用减少三分之一 -2. 更新包每次都记录完整文件,避免客户端文件因玩家被修改导致无法更新 -3. 客户端修复窗口无响应和下载限速的问题,现在可以跑到更快的下载速度 + 2.0版本相比1.0做出了一些功能上的取舍,以下是1.0支持,2.0不支持的功能列表: -### 取舍 + 1. 客户端仅支持Windows(不支持Android手机端和其他操作系统) + 2. 客户端不再支持sftp(使用管理端内置的tcp协议替代了) + 3. 管理端目前提供Windows x86和Linux x86打包,其它平台需要自己构建打包 + 4. 管理端现在使用纯命令行启动,而不是1.0版本的交互式命令行(方便其它脚本调用) -2.0版本相比1.0做出了一些功能上的取舍,以下是1.0支持,2.0不支持的功能列表: +
-1. 客户端仅支持Windows(不支持Android手机端和其他操作系统) -2. 客户端不再支持sftp(使用管理端内置的tcp协议替代了) -3. 管理端目前提供Windows x86和Linux x86打包,其它平台需要自己构建打包 -4. 管理端现在使用纯命令行启动,而不是1.0版本的交互式命令行(方便其它脚本调用) +## 为什么需要这样一款软件 + +你在游戏中出现的每一个 Bug,开发者都在修复,自然,模组也是如此,对于替换掉玩家手里旧的 Mod 这件事,相信你和我们一样被困扰着 + +当玩家找到你,问你“这是什么错误”、“我又缺了什么模组”,你也心烦吧。 + +所以,McPatch 诞生了! + +McPatch 是一个提供给 Minecraft 服主的工具,它提供更新这个服务来减少发布新整合包的各种麻烦,玩家只需要点击“更新”,或者完全不需要点击更新,在启动游戏的瞬间,客户端就在自己更新了,而各位服主只需要在服务器上打包好各类资源,剩下的就交给程序吧。不管是新增文件、修改文件、删除文件,一步到位。 + +McPatch 通过这种方式优化了 Minecraft 的更新过程,使得更新更加高效和可靠。 + +## 还有更多? +我们欢迎各位使用者提交 Bug(可以通过[QQ群](https://jq.qq.com/?_wv=1027&k=PqAEtn39)、[Github](https://github.com/BalloonUpdate)),或是在[爱发电](https://afdian.net/a/aprilforest)赞助我们,以便我们开发出更有用的功能。 diff --git a/docusaurus.config.js b/docusaurus.config.js index 3849501..31b0d81 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -8,13 +8,13 @@ const config = { tagline: 'Minecraft客户端文件更新解决方案', //网站简介 favicon: 'img/logo.png', //网站 Icon url: 'https://docs.mcpatch.akio.top', //网站地址 - baseUrl: '/', //路由 + baseUrl: '/McPatchDocs/', //路由 // GitHub 编辑引用 organizationName: 'BalloonUpdate', // 用户 & 组织名 projectName: 'McPatchDocs', // 仓库名 onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', + onBrokenMarkdownLinks: 'throw', // 国际化 i18n: { @@ -34,6 +34,13 @@ const config = { /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { + lastVersion: 'v1-old', + versions: { + current: { + label: 'v2', + path: 'v2', + }, + }, sidebarPath: './sidebars.js', editUrl: 'https://github.com/BalloonUpdate/McPatchDocs/tree/V2.0', diff --git a/versioned_docs/version-v1-old/advance/assets/6411f6297cc3f.jpg b/versioned_docs/version-v1-old/advance/assets/6411f6297cc3f.jpg new file mode 100644 index 0000000..de3da5f Binary files /dev/null and b/versioned_docs/version-v1-old/advance/assets/6411f6297cc3f.jpg differ diff --git a/versioned_docs/version-v1-old/advance/assets/6411fd659499b.jpg b/versioned_docs/version-v1-old/advance/assets/6411fd659499b.jpg new file mode 100644 index 0000000..fab9a26 Binary files /dev/null and b/versioned_docs/version-v1-old/advance/assets/6411fd659499b.jpg differ diff --git a/versioned_docs/version-v1-old/advance/cli-interface.md b/versioned_docs/version-v1-old/advance/cli-interface.md new file mode 100644 index 0000000..81f0a75 --- /dev/null +++ b/versioned_docs/version-v1-old/advance/cli-interface.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 6 +--- + +# 命令行直接打包 + +> 此功能需要管理端 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值均代表打包失败。打包失败通常是版本号冲突 + +### 小细节 + +1. 预输入参数的最后面一定要跟上一个`q`,否则程序在打包完成后,仍会停留在交互式模式下,无法正常退出! +2. 使用预输入参数进行打包之前,脚本可以先把更新记录写入`changelogs.txt`文件,再进行打包。因为使用预输入参数进行打包时,没法手动输入更新记录,更新记录只能提前准备好 +3. 脚本可以在打包之前,使用`java -jar manage.jar s q`来输出一下文件修改列表。而不必进入真正的打包过程,这对想要先审阅文件修改列表,再进行打包的脚本来说非常有用 diff --git a/versioned_docs/version-v1-old/advance/combine.md b/versioned_docs/version-v1-old/advance/combine.md new file mode 100644 index 0000000..d955e4b --- /dev/null +++ b/versioned_docs/version-v1-old/advance/combine.md @@ -0,0 +1,47 @@ +--- +sidebar_position: 5 +--- + +# 合并更新包 + +:::warning + +最新消息:合并更新包功能有缺陷,请不要再使用此功能,会导致太久不更新的玩家漏更新! + +此问题受限于更新架构没法修复,但会在未来的2.0版本中解决 + +::: + +#### 已知问题1: + +如果某个文件在之前的版本中存在,但在参与合并的末尾版本中不存在。合并后会导致此文件无法在客户端被正常删除! + +问题表现:大多数情况表现为客户端同时存在一个mod的新版本和旧版本两个文件导致冲突 + +解决办法:若已经出问题:参考[注意事项](../guide/caution.md)页面里面的“怎么删除管理端不存在的文件”。若未出问题:不要使用合并功能 + +问题原因:在之前版本中存在,但后来被删除的文件在合并时会被认为是没有加入过更新的文件,也就导致这些文件没有被正确的删除 + +#### 已知问题2: + +请勿使用管理端1.1.12和更旧的版本进行合并操作,因为严重bug会导致合并数据损坏,请升级到管理端1.1.13及以上版本再进行合并 + +### 合并教程 + +当管理端用的时间长了以后,会积累非常多的版本,不仅占空间,还会增加更新流量。这时就需要更新包合并功能 + +合并功能有限制,并非可以随意合并,这些限制如下: + +1. 仅支持管理端1.1或者更高版本 +2. 只能从头合并,比如有`1234567`这七个版本,只能从最早的1开始往后合并,不能从中间开始 +3. 合并后无法再拆分,操作是不可逆的。但合并后的更新包内容完全等价于合并前的更新包 + +合并方法如下: + +1. 启动管理端,输入`combine`指令 +2. 然后输入要合并多少个版本,比如有`4567`这四个版本,输入3可以合并`456`三个版本 +3. 检查无误后输入`y`开始正式合并,这个过程需要时间较长,需要耐心等待 +4. 然后会提示要你编辑`changelogs.txt`文件,来手动合并一下更新记录 +5. 编辑好之后按任意键继续,开始输入合并后的新的版本号 + + 注意不能和已有版本号重复,但可以和参与合并的版本号们重复 +6. 最后会进行打包操作,打包完成后会提示版本已经合并完成了 diff --git a/versioned_docs/version-v1-old/advance/custom-deploy.md b/versioned_docs/version-v1-old/advance/custom-deploy.md new file mode 100644 index 0000000..360dc2f --- /dev/null +++ b/versioned_docs/version-v1-old/advance/custom-deploy.md @@ -0,0 +1,31 @@ +--- +sidebar_position: 1 +--- + +# 自定义部署 + +McPatch的后台是服务端+管理端的分离架构,以方便你将打包过程和文件分发过程分离 + +分离后有许多好处,比如更换性能更强的HTTP服务端程序,比如Nginx,Apache,对象存储。同时也方便大佬们进行魔改(自带服务端性能没有经过特别优化,只能用在一些平时在线人数不多的服务器或者本地调试场景中) + +自由化部署的大致原理就是将整个public目录下的所有文件(不包括public目录本身)上传到对象存储或者自己的服务器上去 + +这里以对象存储为例,你每打一个新版本更新包,比如1.1,就需要将public目录里面的这些文件上传到对象存储或者你的服务器上公开提供HTTP服务: + +如果是1.0版本的管理端,需要上传这些文件: + +1. 二进制数据文件(.bin):`1.2.mc-patch.json`(如果这个文件不存在就不用上传) +2. 元数据文件(.json):`1.2.mc-patch.bin` +3. 版本列表文件(mc-patch-versions.txt):此文件每次都需要上传更新(并刷新缓存,如果是CDN的话) + +如果是1.1版本的管理端,需要上传这些文件: + +1. 更新包文件(.zip):`1.2.mcpatch.zip` +2. 版本列表文件(versions.txt):此文件每次都需要上传更新(并刷新缓存,如果是CDN的话) + +然后,客户端server选项要这样填写: + +1. 首先拿到“版本列表文件(mc-patch-versions.txt)”的URL,比如`https://duixiangcunchu.com/some-folder/mc-patch-versions.txt`(或者`versions.txt`) +2. 在浏览器打开这个URL,确认能顺利访问之后,删除URL末尾的`/mc-patch-versions.txt`(或者`versions.txt`)部分,变成这样`https://duixiangcunchu.com/some-folder` +3. 然后粘贴进客户端配置文件的server选项后面 + diff --git a/versioned_docs/version-v1-old/advance/dynamic-loader.md b/versioned_docs/version-v1-old/advance/dynamic-loader.md new file mode 100644 index 0000000..24ffb42 --- /dev/null +++ b/versioned_docs/version-v1-old/advance/dynamic-loader.md @@ -0,0 +1,48 @@ +--- +sidebar_position: 4 +--- + +# 热升级 + +McPatch客户端会不定期发布新的版本。但升级客户端不像升级管理端那样方便,因为客户端在玩家电脑上,升级需要重新发包,比较麻烦 + +热升级就是用来解决这个问题的,通过使用动态加载器启动McPatch客户端后,McPatch客户端就可以间接地自己更新自己的版本了 + +说明:热升级新版本之后,需要第二次启动的时候新版本才会生效,这是一个很小的细节,但是必须要提一下 + +### 兼容性 + +动态加载器目前支持全平台的所有Minecraft版本,但最低需要Java 8才能运行 + +动态加载器目前支持McPatch客户端全版本 + +注意McPatch客户端跨大版本升级(1.0升级到1.1)是不支持的,会出现`version.txt`文件一直404的情况!原因是新版修改了版本号文件的文件名 + +### 1.客户端首次配置 + +动态加载器需要提前配置在客户端,并且这个文件是永远不需要更新的(除非遇到严重bug),只更新客户端本体就好 + +1. 下载动态加载器DynamicLoader(版本选择最新版即可) +2. 把动态加载器文件复制到目前正在使用的McPatch客户端旁边(一定要挨着放,不然会报错) +3. 双击运行动态加载器,然后会提示什么什么文件为空,无法启动之类的,先不管它,直接叉掉 +4. 打开`mc-patch-dynamic-loader.txt`文件(这个文件就是动态加载器的配置文件) +5. 将目前正在使用McPatch客户端的实际文件名(包括后缀名)写入进去,然后保存关闭 +6. 再次运行动态加载器,发现可以启动McPatch客户端了 +8. 打开Minecraft启动器,修改原先的Java虚拟机参数。将原先McPatch客户端的文件名换成动态加载器的文件名(仅替换文件名,其它不动) +9. 比如原来是`-javaagent:McPatchClient-11.45.14.jar `,改过之后就是`-javaagent:DynamicLoader-1.0.0.jar `(最后面的空格不要漏掉,此段代码请勿复制,如果复制必定启动失败) +10. 回到启动器主页,启动Minecraft,如果McPatch客户端运行起来了,说明配置无误,可以继续进行后面的步骤 + +### 2.管理端这边的操作 + +1. 第一步是手工下载好新版本的McPatch客户端文件 +2. 将动态加载器的配置文件`mc-patch-dynamic-loader.txt`文件从客户端那边复制到工作空间目录里,以加入更新 +3. 动态加载器的配置文件位置需要放到:能通过更新去覆盖掉客户端对应的文件的位置上就可以,因为每个人位置都不一样,所以没有一个固定的文件位置 +4. 如果你之前做过第2,3步骤,那么后续的更新就可以跳这两个步骤 +5. 将新版的McPatch客户端本体文件也放入工作空间目录,位置在动态加载器的配置文件的旁边紧挨着 +6. 打开动态加载器的配置文件,先清空原有内容,然后将新版的McPatch客户端文件名粘贴进去保存关闭。这样动态加载器就会加载新版本的客户端文件了 +7. 创建一个新的版本,包含这两个文件,然后分发给玩家即可 + +### 一些小提示 + +做远程热升级的时候,务必保证动态加载器的配置文件的内容填写正确,因为填写错误会导致客户端启动失败,游戏也无法启动。解决办法是只能手动给玩家发一份【动态加载器的配置文件】和【客户端本体】替换掉游戏才可以恢复正常 + diff --git a/versioned_docs/version-v1-old/advance/ignores.md b/versioned_docs/version-v1-old/advance/ignores.md new file mode 100644 index 0000000..18eb472 --- /dev/null +++ b/versioned_docs/version-v1-old/advance/ignores.md @@ -0,0 +1,45 @@ +--- +sidebar_position: 7 +--- + +# 管理端ignores.txt + +管理端ignore机制类似于gitignore文件的用途。可以屏蔽掉工作空间目录下的一些文件或者目录让管理端看不到它们的存在,也就不会被打进更新包里 + +将客户端直接丢到工作空间目录下,或者用软链接链接过去的用户应该会用得上这个功能 + +使用方法很简单,在管理端程序旁边创建一个叫`ignores.txt`的文件,在这个文件里一行行写上要忽略的文件就可以了。 + +一些注意的地方: + ++ 注意路径分隔符需要使用正斜线(Windows上也是如此) ++ 目前还不支持注释语法,但空行会被忽略 + +从管理端1.1.10版本开始更换了文件语法,因此请按不同的版本阅读下方不同的教程 + +### 管理端1.1.10和之后的版本 + +从1.1.10开始支持了Glob表达式,支持用简短的语法同时匹配多个文件,相比之前的纯文本匹配效率要高了不少 + +ignores.txt的语法和gitignore文件类似,每一行都是一条路径,下面是一些例子: + ++ `.minecraft/saves/旧的世界/*`:忽略旧的世界这个目录下面所有的文件不会被打包 ++ `.minecraft/options.txt`:精准匹配一个文件,让MC的设置文件不会被打包 + +需要注意的是两个方括号`[]`在Glob表达式里有特别的意义,且没有转义字符可用,会导致匹配失败。所以请尽量把工作空间目录下文件名中带方括号的文件名换成不带方括号的,这样就可以避免出现这个问题 + +### 管理端1.1.9和之前版本 + +比如添加这样一行:`.minecraft/saves/旧的世界`,可以让`旧的世界`这个目录不被打包 + +这样添加一行:`.minecraft/options.txt`,可以让MC设置文件不会被打包 + +ignores文件的写法有三种: + ++ 精准匹配文件:`aaa/bbb.txt` ++ 精准匹配目录:`aaa/bbb/` ++ 模糊匹配文件或者目录:`aaa/bbb`(小提示:忽略目录应优先用这个方法,而不是上面那个) + +### 进行测试 + +编写好了ignores文件之后,打开管理端,可以直接使用s命令来很方便地调试文件忽略成功了没有。当然用c命令也是没有问题的 \ No newline at end of file diff --git a/versioned_docs/version-v1-old/advance/index.md b/versioned_docs/version-v1-old/advance/index.md new file mode 100644 index 0000000..94a3330 --- /dev/null +++ b/versioned_docs/version-v1-old/advance/index.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 30 +title: 高级教程 +--- +import DocCardList from '@theme/DocCardList'; + + \ No newline at end of file diff --git a/versioned_docs/version-v1-old/advance/modclient-self-update.md b/versioned_docs/version-v1-old/advance/modclient-self-update.md new file mode 100644 index 0000000..8e9e0a6 --- /dev/null +++ b/versioned_docs/version-v1-old/advance/modclient-self-update.md @@ -0,0 +1,24 @@ +--- +sidebar_position: 3 +--- + +# ModClient自更新教程 + +借助ModClient的特殊能力,可以实现给McPatchClient.jar本身做自更新(即使McPatchClient.jar本身是不支持的) + +下文中所指的`旧版列表文件`在不同的ModClient版本中,具体文件名不一样,请注意区分: + ++ 在ModClient版本1.1.1和更早的版本中叫`OldBalloonUpdateFileName.txt` ++ 在ModClient版本1.1.1以后的版本中叫`OldClientFileName.txt`(不包括1.1.1版本本身) + +自更新教程: + +准备好新版本客户端程序,并放在工作空间目录下,对应的原先旧版本客户端程序的位置的旁边 + +比如原先旧版在`.minecraft/旧版本.jar`,那么新版就要和旧版同目录放置:`.minecraft/新版本.jar` + +然后在工作空间目录下创建一个文本文件叫`.minecraft/旧版列表文件`(旧版列表文件这个名字在上文中有提到) + +打开`旧版列表文件`,新增一行,将旧版的客户端程序的文件名添加一进去(这样做是为了让ModClientLoader自动删除旧版文件)如果有多个旧版,就一行一个 + +最后打包新版本,等待客户端更新 \ No newline at end of file diff --git a/versioned_docs/version-v1-old/advance/overwrites.md b/versioned_docs/version-v1-old/advance/overwrites.md new file mode 100644 index 0000000..e089ace --- /dev/null +++ b/versioned_docs/version-v1-old/advance/overwrites.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 8 +--- + +# 管理端overwrites.txt + +管理端overwrites是保存文件强制覆盖规则的地方。可以让某些文件在更新时每次都全量打包,而不是只记录增量信息 + +这样即使客户端某些文件被人为修改或者删除,利用这个功能也可以强制更新这些“有问题”的文件。当然前提是这个文件被修改过,如果没有服务端修改,它还是不会被打包的,所以不用担心流量消耗的问题 + +使用方法很简单,在管理端程序旁边创建一个叫`overwrites.txt`的文件,在这个文件里一行行写上要覆盖的文件路径就可以了 + +一些注意的地方: + ++ 注意路径分隔符需要使用正斜线(Windows上也是如此) ++ 目前还不支持注释语法,但空行会被忽略 + +从管理端1.1.10版本开始更换了文件语法,因此请按不同的版本阅读下方不同的教程 + +### 管理端1.1.10和之后的版本 + +从1.1.10开始支持了Glob表达式,支持用简短的语法同时匹配多个文件,相比之前的纯文本匹配效率要高了不少 + +overwrites的语法和gitignore文件类似,每一行都是一条路径,下面是一些例子: + ++ `.minecraft/saves/旧的世界/*`:让旧的世界这个目录下面所有的文件都被强制覆盖 ++ `.minecraft/options.txt`:精准匹配一个文件,让MC的设置文件被强制覆盖 + +需要注意的是两个方括号`[]`在Glob表达式里有特别的意义,且没有转义字符可用,会导致匹配失败。所以请尽量把工作空间目录下文件名中带方括号的文件名换成不带方括号的,这样就可以避免出现这个问题 + +### 管理端1.1.9和之前版本 + +管理端1.1.9和之前版本只能写单个文件,不支持目录和通配符等语法 + +比如添加这样一行:`.minecraft/saves/options.txt`,可以让MC设置文件每次都会全量打包 + +### 进行测试 + +编写好了overwrites.txt文件之后,打开管理端,可以直接使用s命令来很方便地调试文件忽略成功了没有,如果文件匹配成功了,文件名后面会出现`(强制覆盖)`的字样,如果看不到则说明匹配失败了 \ No newline at end of file diff --git a/versioned_docs/version-v1-old/advance/run-as-exe.md b/versioned_docs/version-v1-old/advance/run-as-exe.md new file mode 100644 index 0000000..551a43b --- /dev/null +++ b/versioned_docs/version-v1-old/advance/run-as-exe.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 9 +--- + +# 以双击启动客户端 + +在某些场景中需要让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`即可看到效果 diff --git a/versioned_docs/version-v1-old/advance/spell-start.md b/versioned_docs/version-v1-old/advance/spell-start.md new file mode 100644 index 0000000..064c635 --- /dev/null +++ b/versioned_docs/version-v1-old/advance/spell-start.md @@ -0,0 +1,45 @@ +--- +sidebar_position: 2 +--- + +# URL咒语启动 + +配置URL咒语启动,云端配置下发以及配置自更新(可选) + +前置动作: + +1. 将配置文件、`McPatchClient.jar`、`hmclversion.cfg`放在 `workspace/`内,一定要按照您想要的配置修改配置文件。 +2. 打包一个新版本,并按照普通更新流程更新。 +3. 发布更新。 + +--- + +前提条件: + +您对客户端打开了版本隔离。 +您使用 https、http 任意一个协议共享文件。 +您明白且知道如何教会玩家使用在线导入整合包功能。 +您很确定您的玩家会使用hmcl。 + +--- + +概念解释: + +- 目录=文件夹=📁 +- 根目录:某目录结构的起点。 +- 路径:告诉计算机如何找到某目录或文件的一串字符。 + +### hmcl + +1. 首先准备好已正确安装 McPatchClient 的客户端,**需要开启版本隔离**。 +2. 打开客户端游戏版本单独设置,填写JVM虚拟机选项,如图: + ![照抄是学不会的,请您认真思考。](assets/6411f6297cc3f.jpg) +3. 如您没有将config.yml放置在客户端文件夹,请补上它。 +4. 导出整合包,信息可按照您的喜好填写,但您**必须勾选**下列文件,这是咒语能否起效的关键!tips:打开包含启动器后,可以让玩家直接下载整合包并解压,但也失去了在线导入的能力,您可以选择另外导出一份不含启动器的整合包,并一起上传。 + +这是需要的文件列表: +![想要生效,必须勾选!](assets/6411fd659499b.jpg) + +5. 在存放更新文件的根目录,新建一个目录,上传刚刚导出的整合包。 +6. 组装您的在线整合包url,格式为`http或https://您存放整合包的网站服务器地址:端口/您的更新地址`,例如`https://download.example.com/somefile/your-package.zip` +7. 在您编写客户端安装教程时告诉玩家使用此url,hmcl会完全接管安装。 \ No newline at end of file diff --git a/versioned_docs/version-v1-old/faq/client.md b/versioned_docs/version-v1-old/faq/client.md new file mode 100644 index 0000000..4dd78ea --- /dev/null +++ b/versioned_docs/version-v1-old/faq/client.md @@ -0,0 +1,327 @@ +--- +sidebar_position: 1 +--- + +# 客户端FAQ + +一些常见的问题都列举在这里了,希望对你有帮助。 + +### 更新时窗口无响应卡死或者内容丢失 + +`影响范围`:客户端全版本 + +`问题原因`:目前未知 + +`解决方法`:在配置文件里把主题禁用即可`disable-theme: true`或者升级到1.0.13或更高的版本 + +`其它建议`:如果你在用模组启动时遇到了这个问题,可能会同时遇到在配置文件里关不掉主题的情况,这时请考虑使用JavaAgent启动,因为适用于1.12.1游戏版本的BalloonUpdateModLoader会强制开启主题,然后就会导致未响应的问题出现 + +### 窗口内容是空白 + +使用动态加载器后主题会加载失败,且窗口内容全部是空白 + +`影响范围`:客户端小于等于1.1.3,或者大于等于1.1.7,同时使用了DynamicLoader + +`问题原因`:GUI的兼容性问题 + +`解决方法`:升级到客户端1.1.9或者以上版本,并用压缩软件打开客户端jar文件删除根目录的`.no-standalone-process`文件来切换到独立进程启动可以解决此问题(若遇到进程卡死无法退出的问题请手动创建这个文件回到非独立进程启动,并关闭主题功能) + +### Javaagent启动时卡住游戏无法启动 + +在使用Javaagent启动时程序结束后游戏无法启动,一直卡在那,需要在任务管理器里手动关闭进程 + +`影响范围`:客户端大于1.0.13小于等于1.1.3 + +`问题原因`:客户端1.0.13开始更换了程序内部的启动方式,尝试以独立的进程启动以绕过限速和窗口未响应的问题 + +`解决方法`:换回老的启动方式(此方法需要1.0.15或者更高版本):用压缩软件打开客户端jar文件,在根目录下创建一个名为`.no-standalone-process`的空文件(也就是在内置配置文件的旁边)然后保存关闭 + +### Error opening zip file or JAR Manifest missing + +``` +Error occurred during initialization of VM +agent library failed to init: instrument + +Error opening zip file or JAR Manifest missing: McPatchClient.jar +``` + +`影响范围`:客户端全版本 + +`问题原因`:一键启动参数设置有误,找不到McPatchClient.jar文件 + +`解决方法`:检查JVM参数是否设置正确,McPatchClient.jar是否放到了正确位置 + +McPatchClient.jar需要放到`.minecraft/`目录下(如果未开启版本隔离),或者放到`.minecraft/versions/your-version/`目录下(如果开启了版本隔离) + +### 下载限速问题 + +有小概率会遇到下载速度会变得非常慢(约几百kb/s),远低于浏览器直接下载的速度 + +`影响范围`:客户端全版本 + +`问题原因`:问题源头目前未知,貌似和操作系统,启动器,Java发行版,黄历忌宜,游戏版本都有关系 + +`解决方法`:此问题目前无法彻底解决,但可以尝试一下方法 + +1. 升级客户端到1.0.13或者更高版本(大于等于1.1.7需要用压缩软件打开客户端jar文件删除根目录的`.no-standalone-process`文件) +2. 把minihttpserver更换成nginx,apache等专业服务器软件 +3. 更换Java发行版,如openjdk,zulu等 +4. 尝试使用sftp协议更新 + +### 连接被拒绝 + +`影响范围`:客户端全版本 + +`问题原因`:由于网络原因,服务器拒绝了客户端的HTTP TCP请求。俗话叫端口不通 + +`解决方法`:这不是程序bug,请排查与服务器直接的网络是否通畅,是否需要放开安全组规则,配置端口映射,放行服务器防火墙规则,也请检查客户端配置文件中的地址是否填写错误等 + +如果你的服务端部署在公网,请检查客户端报错提示框中的地址是否含有localhost或者127.0.0.1等字样,如果有,将其修改成你的公网IP地址再重试 + +### 连接超时 + +`影响范围`:客户端全版本 + +`问题原因`:由于网络原因,服务器未能在指定时间内及时应答客户端的HTTP TCP数据包。可能是网络不稳定也可能端口不通 + +`解决方法`:这不是程序bug,请检查客户端与服务器之间的网络是否稳定,防火墙是否放行 + +如果你的服务端部署在公网,请检查客户端报错提示框中的地址是否含有localhost或者127.0.0.1等字样,如果有,将其修改成你的公网IP地址再重试 + +### 连接中断 + +`影响范围`:客户端全版本 + +`问题原因`:由于网络原因,已建立的HTTP TCP连接被意外断开。俗话叫网络不稳定 + +`解决方法`:这不是程序bug,请检查客户端与服务器之间的网络是否流畅 + +### HTTP状态码不在2xx-3xx之间 + +`影响范围`:客户端全版本 + +`问题原因`:访问对应URL时,服务端返回了一个表示错误的HTTP状态码(即不在2xx-3xx之间) + +`解决方法`:如果是HTTP(s)源,用浏览器打开这个出错的URL,根据浏览器的错误信息自行解决。如果是Webdav源,请向贡献者报告此问题 + +### HTTP状态码(404)不在2xx-3xx之间(versions.txt) + +`影响范围`:客户端全版本 + +`问题原因`:服务端public目录下找不到versions.txt文件。多出现在忘记使用管理端创建过更新包的情况 + +`解决方法`:打开管理端,创建任意一个版本或者更新包。另外,如果你刚升级到客户端1.1版本就碰到这个问题,说明你的管理端没有同步更新到1.1版本,因为1.1版本的客户端和管理端和1.0版本是完全不兼容的,需要重新创建所有的更新包(因为格式不兼容) + +### 拒绝访问 + +错误详情:java.io.FileNotFoundException。且路径所指向的文件是mc-patch-version.txt或者mc-patch.log + +`影响范围`:客户端全版本 + +`问题原因`:你把对应的文件属性设置成了隐藏,而隐藏文件是没有写入权限的,所以会报错 + +`解决方法`:取消勾选文件的隐藏属性。如果不想让玩家乱点,可以单独创建一个很深的文件夹来存放McPatchClient本体和配置文件 + +### Webdav连接失败 + +`影响范围`:客户端1.0.9版或以上 + +`问题原因`:由于网络原因,Webdav服务器源出现了网络连接层面的错误 + +`解决方法`:这不是程序bug,此时需要根据报错信息后面的状态详情来定位具体原因 + +### java.lang.NoSuchMethodError + +`java.lang.NoSuchMethodError ..... org.apache.http.impl.client.HttpClientBuilder.setSSLContext` + +`影响范围`:客户端全版本 + +`问题原因`:目前未知,会出现在1.16.5和更高版本上,同时使用webdav协议更新 + +`解决方法`:删除客户端包内的`.no-standalone-process`文件使用独立进程启动;或者使用非webdav源进行更新 + +### Stream is not in the BZip2 format + +`影响范围`:客户端1.0.13和之前的版本 + +`问题原因`:代码bug导致 + +`解决方法`:升级客户端到1.0.14或者更高版本 + +### 客户端版本号重启时删掉了所有的文件 + +当客户端版本号出现问题而重头下载所有版本时,删掉了所有游戏的文件和目录 + +`影响范围`:管理端 1.1.0 至 1.1.5(没错这个是管理端问题而非客户端) + +`问题原因`:代码bug导致 + +`解决方法`:升级到管理端 1.1.5 或者更高版本,然后重头打包所有更新包(尤其是第一个更新包) + +### 与图书馆模组librarianlib的兼容性问题 + +客户端程序使用Kotlin编写,并打包了Kotlin标准库。和图书馆模组同时加载时,可能会出现问题 + +`影响范围`:客户端全版本 + +`问题原因`:截止撰写本条目时,因为图书馆使用了较旧的Kotlin标准库版本(1.3),本程序使用(1.7)版本,直接可能会出现冲突 + +`解决方法`:此问题无法解决,只能等待图书馆模组将自带的Kotlin标准库升级到较新的版本来解决 + +题外话:截止撰写本条目时,图书馆模组的GitHub Issue里也有不少人反馈这个问题,但似乎这个模组很久未更新了 + +### McPatchClient是否可以自己更新自己 + +`问题描述`:McPatchClient是否可以通过把自身文件加入到更新中来实现自己更新自己? + +`问题解答`:不可以,对运行中的文件进行写入操作会导致未知行为(UB),这是非常危险的。程序已在代码里完全写死以阻止这种危险操作 + +`小小提示`:虽然不可以更新客户端程序本身,但是更新配置文件是允许的,但缺点是第二次启动时新的配置文件才会生效 + +`解决方法`:可以参考[热升级](../advance/dynamic-loader.md)使用DynamicLoader,缺点同样是是第二次启动时才会生效 + +### PCL的修改窗口标题改错了窗口 + +`问题描述`:PCL的修改窗口标题修改了McPatchClient的窗口标题,而没有修改Minecraft窗口标题 + +`问题原因`:PCL的检测机制会把第一个出现的窗口当做游戏窗口,当McPatchClient加入之后,会挤占这个窗口位置,导致窗口重命名到了McPatchClient上 + +`解决方法`:此问题无解 + +### 另一个程序已锁定文件的一部分,进程无法访问 + +java.io.IOException:另一个程序已锁定文件的一部分,进程无法访问 + +`影响范围`:客户端全版本 + +`问题原因`:Windows不允许对一个正在运行中的文件进行读写操作 + +`解决方法`:如果你使用JavaAgent启动,请不要更新游戏核心文件,游戏资源文件等可能与McPatchClient同时处于运行中的文件。如果你未使用JavaAgent启动,请检查Minecraft进程是否退出再更新 + +### 配置文件中的选项(xxx)无效 + +`影响范围`:客户端全版本 + +`问题原因`:配置文件中找不到名为xxx的配置项,或者配置项的数据类型不正确 + +`解决方法`:删除配置文件并重新从文件内部解压重新配置一次 + +### 配置文件无法解码为yaml格式 + +`影响范围`:客户端全版本 + +`问题原因`:配置文件语法错误导致无法解码 + +`解决方法`:检查配置文件格式是否正确,注释,缩进,忘打逗号等都会引发这个错误。如果仍然遇到这个错误,请先备份现有的配置文件,然后重新从Jar文件里解压官方示例配置文件,并一步步修改,直到定位到错误位置为止(也叫排除法) + +### mc-patch.json无法解码为版本Meta文件格式 + +`影响范围`:客户端版本小于1.1.0 + +`问题原因`:更新包的元数据文件`.mc-patch.json`格式不正确,无法解码。此问题多出现在SakuraFrp穿透场景中 + +`解决方法`:如果你使用了SakuraFrp,且报错信息中包含``加跟着一长串乱码的话,请检查你的SakuraFrp穿透是否出了问题。如果你没有使用SakuraFrp,请报告此问题。 + +### 找不到.minecraft目录 + +即使把Jar客户端放到`.minecraft`目录旁也提示找不到的问题 + +`影响范围`:客户端全版本 + +`问题原因`:启动Jar文件时,在`打开方式`中选择了以Java启动打开,而非默认Java启动 + +`解决方案`:将Jar文件设置为默认使用Java运行,然后使用双击方式启动 + +### 无法确定版本前后关系 + +`影响范围`:客户端全版本 + +`问题原因`:客户端的版本号在服务端的mc-patch-versions.txt(高版本为versions.txt或1.1.7版本后自定义的文件名)文件里找不到,可能是删掉了某个版本更新包导致 + +`解决方法`: + +1. 让玩家删掉并重新下载一份群文件里的客户端压缩包(十分推荐,省时省力) +2. 删除客户端的`mc-patch-client-version.txt`文件使其重新下载所有的版本更新包(谨慎操作,此行为非常消耗流量) +3. 修改客户端的`mc-patch-client-version.txt`文件,输入一个服务端存在的有效版本号(谨慎操作,可能会导致对某些文件的后续更新直接失效) + +### 版本的补丁文件的(xxx)已损坏 + +`影响范围`:客户端全版本 + +`问题原因`:更新包文件(.bin)里的某个文件二进制数据无法通过哈希校验,可能是文件下载时收到了损坏 + +`解决方法`:多次重试更新过程 + +### 主机指纹不可信任 + +`影响范围`:客户端全版本 + +`问题原因`:SFTP源的服务器字符串中指定的指纹和远程主机报告的指纹不一致,可能出现中间人攻击 + +`解决方法`:请自行确认远程主机是否可信,如果可信,请更新SFTP源的服务器字符串中的指纹部分 + +### 无效的sftp服务器字符串 + +`影响范围`:客户端全版本 + +`问题原因`:SFTP源的服务器字符串的格式不正确 + +`解决方法`:请仔细阅读配置文件注释和文档,修改服务器字符串的格式。如果仍然遇到这个错误,请先备份现有的配置文件,然后重新从Jar文件里解压官方示例配置文件,并一步步修改,直到定位到错误位置为止(也叫排除法) + +### 无效的webdav服务器字符串 + +`影响范围`:客户端1.0.9版或以上 + +`问题原因`:Webdav源的服务器字符串的格式不正确 + +`解决方法`:请仔细阅读配置文件注释和文档,修改服务器字符串的格式 + +### SFTP 身份验证失败 + +`影响范围`:客户端全版本 + +`问题原因`:SFTP源的服务器字符串中的用户名或者密码不正确,无法登录SSH + +`解决方法`:将服务器字符串中的用户名和密码修改正确 + +### SFTP Client 打开失败 + +`影响范围`:客户端全版本 + +`问题原因`:SSH已经登录成功,但是无法开启SFTP通信,可能是服务端SSH不支持SFTP协议 + +`解决方法`:更换SSH服务端软件 + +### SFTP 下载文件失败 + +`影响范围`:客户端全版本 + +`问题原因`:通过SFTP下载文件时遇到错误 + +`解决方法`:可能是网络原因导致。具体问题原因请看程序报告的错误信息内容 + +### 服务器SSL证书无法验证 + +`影响范围`:客户端1.0.9版或以上 + +`问题原因`:Webdav源的服务器SSL证书无法通过验证,可能是证书已过期,也可能网络被劫持 + +`解决方法`:更新服务器证书,并且用浏览器打开未显示证书错误后重新使用McPatchClient重试 + +为安全起见,McPatch无法跳过Webdav源的SSL证书验证过程,也就是说几乎是不支持自签证书的 + +### 找不到任何更新服务器地址 + +`影响范围`:客户端全版本 + +`问题原因`:客户端配置文件中的server选项不要写一个空列表,这样无法更新任何文件 + +`解决方法`:客户端配置文件中的server选项不要留空 + +### 未知格式的服务器字符串 + +`影响范围`:客户端全版本 + +`问题原因`:客户端配置文件中的server选项中的某一项因为格式不正确而无法解析 + +`解决方法`:仔细阅读示例格式,并对照检查错误。如果仍然遇到这个错误,请先备份现有的配置文件,然后重新从Jar文件里解压官方示例配置文件,并一步步修改,直到定位到错误位置为止(也叫排除法) diff --git a/versioned_docs/version-v1-old/faq/index.md b/versioned_docs/version-v1-old/faq/index.md new file mode 100644 index 0000000..755e709 --- /dev/null +++ b/versioned_docs/version-v1-old/faq/index.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 20 +title: 常见问题解答 +--- +import DocCardList from '@theme/DocCardList'; + + \ No newline at end of file diff --git a/versioned_docs/version-v1-old/faq/manage.md b/versioned_docs/version-v1-old/faq/manage.md new file mode 100644 index 0000000..c1994b9 --- /dev/null +++ b/versioned_docs/version-v1-old/faq/manage.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 2 +--- + +# 管理端FAQ + +一些常见的问题都列举在这里了,希望对你有帮助。 + +### OutOfMemoryError: Java heap space + +创建新版本时,打包文件到一半出现这个问题 + +`影响范围`:管理端全版本 + +`问题原因`:给管理端分配的内存不够大 + +`解决方法`:参考下面的《内存不足,打包过程中断》问题 + +### 创建新版本时直接提示版本号为空 + +创建新版本时, 没有任何输入就直接提示版本号为空 + +`影响范围`:管理端 1.1.0 至 1.1.2 + +`问题原因`:软件bug + +`解决方法`:升级到管理端 1.1.3或者更高版本 + +### 暂时不支持打包大小超过2GB的文件 + +`影响范围`:管理端全版本 + +`问题原因`:受部分JavaAPI的限制,Int类型只能表示2GB大小以内的文件 + +`解决方法`:不要打包单个大小超过2GB的文件 + +### 内存不足,打包过程中断 + +`影响范围`:管理端全版本 + +`问题原因`:打包过程非常消耗内存,如果分配的内存过少,又要执意进行打包,可能会出现这个问题 + +`解决方法`:使用JVM参数`-Xmx4g`或者`-Xmx4096m`分配更多内存(同Minecraft服务端设置的方式) + +此问题多出现在打包大型文件时,一般认为超过100mb以上的单文件为大型文件,打包越大的文件时越应该有更大的内存 + +注:出现此问题的概率 = 文件大小的平方(没错就是平方) + +### 补丁文件超过了2Gb大小的限制 + +`影响范围`:管理端全版本 + +`问题原因`:一次性打包的内容太多,导致最终补丁文件超过你2Gb大小的限制,受部分JavaAPI的限制,Int类型只能表示2GB大小以内的文件 + +`解决方法`:将一次更新分开打包到多个更新包里 + +### Stream is not in the BZip2 format + +`影响范围`:管理端1.0.3和之前的版本 + +`问题原因`:代码bug导致 + +`解决方法`:升级到1.0.4或者更高版本 + +### 是否有类似gitignore的机制 + +是否有类似gitignore机制来忽略对工作空间目录下某些文件的打包,这样就让管理端和客户端共用一份目录了 + +没有这个机制,建议管理端和客户端的维护分开维护,不要共享,这会在很大程度上避免很多非常隐蔽的暗坑 \ No newline at end of file diff --git a/versioned_docs/version-v1-old/guide/auto-start.md b/versioned_docs/version-v1-old/guide/auto-start.md new file mode 100644 index 0000000..f1240ba --- /dev/null +++ b/versioned_docs/version-v1-old/guide/auto-start.md @@ -0,0 +1,113 @@ +--- +sidebar_position: 6 +--- + +# 一键启动 + +一键启动可以让McPatchClient在Minecraft启动时自动弹出更新,无需手动运行,适合线上环境使用 + +在配置一键启动之前,必须要确保McPatchClient双击启动没问题! + +目前共有三种不同的启动方式,各自有不同的特点,下面是功能对比 + +| 启动方式 | 支持游戏版本 | 支持的平台 | 猫反兼容 | +| ----------------------------- | ------------ | ---------- | -------- | +| [Windows平台](#Windows) | 全版本 | 仅电脑端 | 坏 | +| [Android平台](#Android) | 全版本 | 仅手机端 | 坏 | +| [模组方式启动](#模组方式启动) | 部分版本 | 全平台 | 好 | + +如果你有安装猫反作弊,而Windows平台的方法又不能正常工作,可以尝试使用[模组方式启动](#模组方式启动)来避免这个问题。但此方式并非支持所有的Minecraft版本和模组框架 + +## Windows + +1. 首先确保McPatchClient.jar双击启动没问题 +2. 将McPatchClient.jar文件移动到`.minecraft`目录里面(注意是里面不是旁边) +3. 打开启动器,找到JVM(Java虚拟机)参数。在现有内容的最前面插入一段`-javaagent:xxx.jar `(`xxx`换成McPatchClient.jar的实际的文件名,注意`.jar`的后面还跟着一个空格别漏了) +4. 启动游戏测试效果 + +如果游戏无法启动,并且提示找不到McPatchClient.jar的文件名,而你又十分确定文件名没有写错时。记得看看你是不是开启了版本隔离,如果是,请将McPatchClient的文件移动到Minecraft游戏版本的核心文件旁边(核心文件通常由两个同名的jar和json文件组成,在`.minecraft/version/your-version`目录下) + +如果配置之后McPatchClient并没有随Minecraft启动(游戏正常启动也没有闪退啥的),请检查是否是开启了启动器的`版本特定设置`导致配置实际并未生效 + +--- + +McPatch客户端支持通过hmcl的下载整合包功能在线安装,点击[这里](../advance/spell-start.md)来阅读详细教程 + +### 游戏崩溃 + +当McPatchClient在运行过程中遇到网络问题,或者其它错误时,***会主动崩溃掉Minecraft进程!*** 这是刻意的设计 + +如果启动过程中发生闪退或者崩溃,请首先***翻阅日志末尾***,判断是否是McPatchClient主动使得Minecraft进程崩溃的,或者其他原因所导致 + +如果排查日志后发现确实是McPatchClient主动崩溃所致,错误信息中会有中文文字很清晰地说明具体是什么原因导致的游戏崩溃。并且每条日志前面都会有`McPatchClient`的字样标明这是一条McPatchClient的日志 + +当然,在McPatchClient主动崩溃Minecraft进程之前,会有非常显眼的错误提示框告诉你发生什么错误,错误可能是什么原因导致的。当你点击确定或者取消按钮以后,表明你已经知晓了是McPatchClient报告的错误之后,McPatchClient才会真正崩溃掉Minecraft进程。 + +如果你不喜欢这种直接崩溃的做法,可以在配置文件里设置`no-throwing`选项来让McPatchClient遇到错误时不打断游戏启动的过程,而不是弹出崩溃Minecraft询问框。但这样做可能会导致一些莫名其妙的问题(比如有模组未更新就强行进入游戏会导致无法进服) + +## Android + +教程这里以澪和HMCLPE作为示例 + +1. 首先确保McPatchClient在电脑上双击启动没问题 +2. 将McPatchClient.jar和配置文件一起复制到游戏目录下,所谓游戏目录就是指.minecraft目录,无论何时,McPatchClient.jar和config.yml都需要放到.minecraft里面,注意是里面不是旁边 + 1. 澪的默认路径:`/sdcard/MioLauncher/.minecraft` + 2. HMCLPE的默认路径:`/sdcard/HMCLPE/.minecraft` + 3. 如果你开启了版本隔离,请将McPatchClient的文件移动到Minecraft游戏版本的核心文件旁边(核心文件通常由两个同名的jar和json文件组成,在`.minecraft/version/your-version`目录下) +3. 配置启动参数 + 1. 澪:切换到`游戏配置`页面,在游戏参数(JVM参数)的最前面插入一段内容`-javaagent:xxx.jar `(`xxx`换成将McPatchClient.jar的实际的文件名,注意`.jar`的后面还跟着一个空格别漏了)接着点击保存按钮,然后重启澪 + 2. HMCLPE:切换到`版本列表`,修改全局游戏设置或者特点版本设置,在Java虚拟机参数的最前面插入一段内容`-javaagent:xxx.jar `(`xxx`换成将McPatchClient.jar的实际的文件名,注意`.jar`的后面还跟着一个空格别漏了),然后点击房子按钮回到主界面 +4. 启动游戏测试效果 + 1. 澪:请打开日志窗口观察McPatchClient是否运行成功 + 2. HMCLPE:截止到撰写教程时未能成功打开日志窗口,只能手动查看HMCLPE的日志文件`/sdcard/Android/data/com.tungsten.hmclpe/files/debug/boat_latest_log.txt` +5. 如果游戏启动后马上闪退,请翻阅日志末尾判断是否是参数配置不正确或者其它原因 +6. 如果日志只有短短几行,且有出现这样的内容:`Error opening zip file or JAR manifest missing : McPatchClient-1.0.1.jar`说明启动参数配置不正确,McPatchClient.jar这个文件找不到,请检查是否放到了.minecraft目录下面(开启版本隔离后需要放到游戏核心文件旁边) +7. 如果每一行日志信息的开头都有`[McPatchClient]`的字样,说明此次崩溃是由McPatchClient引起的,这种情况去翻阅常见问题解答就可以解决,如果是其它复杂的情况,请向报告这个问题 + +### 优化小提示 + +Android平台通常使用ARM处理器和LPDDR内存,无论是处理器功耗还是内存带宽都相当有限,所以请尽量控制每次客户端体积大小。不要给游戏加载体积特别大的模组(尤指大小超过50Mb以上),不仅会导致更新过程变长,也会影响Minecraft游戏的启动速度 + +### 游戏闪退崩溃 + +虽然McPatchClient可以跑在Android平台上,但是却无法像PC端那样显示更新进度条窗口,一切的更新过程都是在后台进行的 + +当McPatchClient在运行过程中遇到网络问题,或者其它错误时,***会主动崩溃掉Minecraft进程!*** 这是刻意的设计 + +如果启动过程中发生闪退或者崩溃,请首先***翻阅日志末尾***,判断是否是McPatchClient主动使得Minecraft进程崩溃的,或者其他原因所导致 + +如果排查日志后发现确实是McPatchClient主动崩溃所致,错误信息中会有中文文字很清晰地说明具体是什么原因导致的游戏崩溃。并且每条日志前面都会有`McPatchClient`的字样标明这是一条McPatchClient的日志 + +如果崩溃信息里找不到McPatchClient相关的字样说明是其它原因导致的崩溃,也就是说崩溃和McPatchClient没有直接的关系 + +如果你不喜欢这种直接崩溃的做法,可以在配置文件里设置`no-throwing`选项来让McPatchClient遇到错误时不打断游戏启动的过程,而不是主动崩溃游戏进程。但这样做可能会导致一些莫名其妙的问题(比如有模组未更新就强行进入游戏会导致无法进服) + +## 模组方式启动 + +模组方式启动优点在于对猫反作弊模组友好,不用配置易出错的Java虚拟机参数 + +但是不足是仅支持部分游戏版本和模组框架,还有能更新的文件范围大大受限,模组文件只能更新除CoreMod、Minecraft核心文件、Minecraft资源文件以外的其它文件 + +使用教程如下: + +首先访问ModClient仓库的[Releases页面](https://github.com/BalloonUpdate/ModClient/releases),下载合适版本的ModClient模组文件并安装到你的游戏模组目录中,同时请详细阅读Releases页面里的下载说明! + +> 目前模组形式一键启动支持的游戏版本有限,如果没有你需要的版本,可以尝试使用别的方式启动 + +接着将McPatchClient.jar文件移动到`.minecraft`目录里面。如果开启了版本隔离,就要移动到Minecraft游戏版本的核心文件旁边(核心文件通常由两个同名的jar和json文件组成),比如`.minecraft/versions/your-version/`这里 + +将McPatchClient.jar的文件名后面增加一串文字`-JarClient`(注意大小写),比如`McPatchClient-1.0.5.jar`变成`McPatchClient-1.0.5-JarClient.jar` + +> 虽然ModClient是为JarClient设计,但只要在文件名里加上`-JarClient`,McPatch也能正常运行 + +接下来就是启动游戏测试效果(如果之前有配置过javaagent一键启动请删掉Java虚拟机参数避免重复启动) + +--- + +如果你某些模组文件更新失败,删除失败,但客户端程序日志里又没有明显报错消息,那么你多半是遇到了模组启动优先级的问题。也就是这些更新失败的模组先于BalloonUpdateModLoader模组启动了 + +遇到这个问题尝试在BalloonUpdateModLoader模组的文件名最前面加一个英文感叹号`!`来提升BalloonUpdateModLoader模组的启动优先级,确保BalloonUpdateModLoader先于要被更新的模组启动 + +--- + +ModClient支持给McPatchClient.jar本身做自更新,可以点击[这里](../advance/modclient-self-update.md)阅读详细的教程 diff --git a/versioned_docs/version-v1-old/guide/caution.md b/versioned_docs/version-v1-old/guide/caution.md new file mode 100644 index 0000000..f427606 --- /dev/null +++ b/versioned_docs/version-v1-old/guide/caution.md @@ -0,0 +1,128 @@ +--- +sidebar_position: 5 +--- + +# 注意事项 + +## 文件的下载位置 + +文件的下载位置不受客户端程序的路径影响。客户端程序会自动搜索.minecraft的父目录,依次作为更新的起始目录 + +因此到处移动客户端程序不会影响文件的下载或者说更新的位置。如果要禁用这个机制,可以在配置文件里调整`base-path`选项 + +移动客户端程序时,记得带着`mc-patch-version.txt`和配置文件一起移动,否则程序会找不到配置文件报错 + +## 文件会更新失败 + +若客户端里的某个文件在更新时,检测到文件内容被玩家人为修改过了(或删除),那么这个文件会跳过更新(丢失更新状态),后续所有对这个文件的更新都会直接跳过,也就是会更新失败 + +这不是程序BUG,这是特意的设计。原因是因为管理端打包会对比新旧文件,生成差异文件(补丁文件) + ++ 旧文件 + 新文件 => 补丁文件 + +然后客户端会下载这个补丁文件把旧文件修补(合并)成新文件 + ++ 补丁文件 + 旧文件 => 新文件 + +这样只记录差异的方法可以很大程度上节省更新流量 + +但也有一个致命的缺点:当客户端合并文件时,如果旧文件被修改过,那么最终合并出来的新文件数据就是完全错乱的 + +为了不引起文件数据错乱,客户端选择了跳过对这些文件的更新。同时也保留了玩家自己的个性化设置数据不被更新覆盖(直到这个被修改的文件在服务端被删除才会打破循环,重新加入更新) + +这个机制导致了玩家不能“手贱”修改文件,否则会导致这个文件在他的电脑上,从此之后的更新全部失败(但其它玩家不会受影响) + +## 版本发错了怎么办 + +更新包一旦发布就不能撤回,撤回可能会导致客户端某些文件更新永久更新失败,而且这种问题很难发现和调试。你应该额外再发布一个版本来替代撤回 + +如果你100%确定刚发布的错误版本没有任何人下载的话,可以使用以下方法来撤回: + +1. 打开`public`目录下的版本列表文件:`mc-patch-versions.txt`或`versions.txt`,将错误版本那一行连带后面所有的行都删除掉(**这一行前面部分的千万别改动**) +2. 比如123456这6个版本中,4出了问题,就要撤回456三个版本,就在版本列表文件里删除456这三行,使3这一行成为文件末尾 +3. 接着删除public目录下456这三个版本对应的json文件和bin文件 +4. 最后运行管理端,在主菜单输入(1.0版本输入`bv`,1.1版本输入`revert`)进入还原菜单,恢复workspace目录和history目录的内容。恢复所需的时间和已有版本的数量成正比,如果版本非常多,过程可能会非常慢 +5. 这样就回退到了你发布错误版本号之前的状态了 +6. 如果你不能100%保证没有任何人下载过这个错误的版本,就不要撤回版本,否则那个人会出现各种各样的奇奇怪怪的问题 + +## 怎么删掉管理端不存在的文件 + +在使用过程中,有时会想删除一些在客户端存在,但管理端不存在的文件。这些文件没法用往常办法删除 + +删掉这些不存在的文件有两个方法,一个是加入更新之后再删掉,一个是直接修改更新包内部数据 + +通常情况下建议使用第一个方法,更加安全可靠不易出错。第二种方法适合大佬,因为要改一些内部数据,但好处是快,能一步到位 + +第一种方法很简单 + +1. 客户端有个叫`abc.jar`的文件需要删除 +2. 先在工作空间目录下的相同位置下,创建一个同名的空文件`abc.jar` +3. 然后开启管理端创建一个新版本(这样`abc.jar`就从未加入更新的状态变为加入更新的状态了) +4. 接着把刚创建的`abc.jar`删掉,再创建一个新版本 +5. 客户端会依次下载这两个版本,最终的效果就是这个文件被成功删除掉了 + +第二种方法仅适用于管理端1.1或者更新的版本 + +1. 创建一个空的版本号 +2. 直接打开更新包zip里的`.mcpatch-meta.json`文件 +3. 在`old-files`字段处添加要删除的文件的相对路径(相对工作空间目录的路径),路径分隔符用正斜线 +4. 保存关闭`.mcpatch-meta.json`文件并更新回更新包zip文件 + +## 不小心修改了history目录 + +如果你不小心修改了history目录下的内容,可以在主菜单输入(1.0版本输入`bv`,1.1版本输入`revert`)进入还原菜单来同时还原workspace目录和history目录,注意使用此命令会丢失已有修改,注意备份重要数据 + +恢复所需的时间和已有版本的数量成正比,如果版本非常多,过程可能会非常慢 + +## 加密配置文件和版本号文件 + +> 此特性仅McPatchClient 1.0.11或更高版本支持 + +这里的加密不是真的加密,而是将内容以base64编码后以非明文保存,不能起到绝对的安全防护的作用 + +加密配置文件(config.yml/mc-patch-config.yml):将整个配置文件内容复制后使用Base64进行编码,然后删掉原有内容,将编码后的内容粘贴进去,然后在文件的开头添加单个英文冒号`:`用来告诉程序配置文件被“加密”了,使用之前要先“解密” + +加密版本号文件(mc-patch-version.txt):将整个版本号文件内容复制后使用Base64进行编码,然后删掉原有内容,将编码后的内容粘贴进去,然后在文件的开头添加单个英文冒号`:`用来告诉程序配置文件被“加密”了,使用之前要先“解密” + +注意:配置文件和版本号文件“加密”后,不会影响日志文件里的账号密码信息的显示,如果在意,可以在配置文件里禁用日志文件生成 + +## 避免仅修改文件名大小写 + +如果有个文件叫abc.jar你将其改名成Abc.jar然后打包,这种情况会出问题! + +你改成Abc1.jar都没事,改成Ab.jar也可以,但唯独Abc.jar不行 + +客户端遇到这种文件时,会直接删掉abc.jar,而不下载Abc.jar,然后这个文件就会永久更新失败 + +这个问题的原因是文件系统不区分文件名大小写造成的 + +从管理端1.1.9版本开始遇到这种文件会直接打包失败,避免将有问题的数据带进更新包。而在这之前的版本中,需要人为避免出现这种情况 + +## 版本号并非判断新旧的依据 + +版本号只是一个普通的标签,是给人类看的,程序不会解析对比版本号的文字,也不作为任何判断版本前后的依据。 + +实际版本的新旧顺序是按你打包的时间来判断的,后打的版本总是比先打的版本要新 + +版本号并没有规定一定要往高走,也可以往低走。就是说你可以从1.5版本更新到1.4版本。这算更新而非回退,因为1.4版本晚于1.5版本打包,所以被认为是较新的版本 + +至于哪个版本更新,哪个版本更旧?可以亲自打开版本列表文件看看(**注意只能看不能改**) + +## 客户端配置文件可以隐藏吗 + +不行!不仅是配置文件,连日志文件也不能隐藏。因为隐藏的文件没有写入权限,程序会报错 + +## 修复客户端的文件 + +使用此功能需要1.1版本或者更高版本的管理端和服务端 + +从1.1版本开始,更新包开始划分为增量包和全量包两种。最先创建的第一个版本永远是全量包,后面创建的永远是增量包。无论客户端文件损坏成什么样,只要能运行McPatch就可以利用全量更新包机制把整个客户端重新安装一次 + +方法很简单:删除客户端的版本号文件即可。客户端会自动重头开始下载所有的更新包并依次安装 + +需要注意: + +1. 这个功能如果在配置文件里被手动关闭了,是不起作用的(默认是开启的) +2. 完整下载一边所有的更新包会非常消耗时间,也非常消耗流量和带宽 +3. 文件的修复范围仅限于加入过更新的文件(也就是工作空间目录里曾经出现的文件和目录) + diff --git a/versioned_docs/version-v1-old/guide/client.md b/versioned_docs/version-v1-old/guide/client.md new file mode 100644 index 0000000..03298cf --- /dev/null +++ b/versioned_docs/version-v1-old/guide/client.md @@ -0,0 +1,44 @@ +--- +sidebar_position: 4 +--- + +# 安装客户端 + +:::tip + +首先推荐你把客户端先整个备份一遍,以避免调试更新时误删了重要的文件(尤其是第一次使用McPatch时) + +::: + +我们把客户端程序文件复制到你客户端的`.minecraft`目录的旁边(紧挨着) + +用压缩软件打开客户端程序文件,把配置文件`mc-patch-config.yml`或者`config.yml`解压到旁边,并打开编辑 + +接着把在“远程访问测试”或者“本地访问测试”中提到的链接(优先使用前者提到的链接),粘贴到配置文件的`server`选项后面,然后保存关闭(具体使用哪一个链接取决于你的部署环境是局域网还是广域网) + +:::warning + +如果你发现你没有这个链接,那么你很可能是跳过了访问测试的步骤,这个步骤很重要请不要跳过去 + +::: + +接着双击运行客户端主程序,此时会开始更新刚刚打包的第一个版本 + +更新完成后检查一下`mc-patch-version.txt`这个文件的内容,确保是`1.0`或者你刚创建的版本号 + +到此,客户端就算配置成功了。 + +--- + +最后,请请仔细阅读[注意事项](../guide/caution.md),这里写的都是最、最、最常见的问题,看过后帮你少踩很多坑!内容包括但不限于: + +1. 不小心发错版本怎么办? +2. 为什么个别文件会更新失败? +3. 不小心修改了history目录怎么还原? +4. 怎么加密配置文件? + +:::tip + +如果你确定配置文件已经调试完成,不会再改它,可以把这个文件打包回`McPatchClient.jar`里,然后删除外部的配置文件,程序会自动读取Jar内部的配置文件,以保持目录整洁 + +::: diff --git a/versioned_docs/version-v1-old/guide/index.md b/versioned_docs/version-v1-old/guide/index.md new file mode 100644 index 0000000..e17b6bb --- /dev/null +++ b/versioned_docs/version-v1-old/guide/index.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 10 +title: 安装教程 +--- +import DocCardList from '@theme/DocCardList'; + + \ No newline at end of file diff --git a/versioned_docs/version-v1-old/guide/manager.md b/versioned_docs/version-v1-old/guide/manager.md new file mode 100644 index 0000000..a8172a2 --- /dev/null +++ b/versioned_docs/version-v1-old/guide/manager.md @@ -0,0 +1,91 @@ +--- +sidebar_position: 2 +--- + +# 创建更新包 + +## 准备要更新的文件 + +第一步,首先需要决定好哪些文件要更新,哪些不需要。然后把需要更新的文件,复制到`workspace`目录里去,注意复制时需要保持与在客户端相同的文件结构。 + +下面一些栗子可以参考:(不存在的文件夹需要手动创建) + ++ 要更新所有模组,复制`.minecraft/mods`目录 + + 到`mp/workspace/.minecraft/mods` + ++ 要更新资源包,复制`.minecraft/resourcepacks`目录 + + 到`mp/workspace/.minecraft/resourcepacks` + ++ 要更新.minecraft目录旁边的`新玩家进服教程.txt`,复制`新玩家进服教程.txt`文件 + + 到`mp/workspace/新玩家进服教程.txt` + ++ 如果你开了版本隔离,就需要复制`.minecraft/versions/your-version/mods`目录 + + 到`mp/workspace/.minecraft/versions/your-version/mods` + + 其它文件也是同理,需要复制到versions目录下 + +到这里你可能已经看出规律了:`workspace`目录相当于本地的`.minecraft`的父目录。只有`workspace`目录和客户端保持相同文件结构,文件才能更新到正确的地方 + +:::tip +若开启了版本隔离,那么要更新的实际上是versions目录下的mods文件夹,具体可以看上面的最后一条例子。(客户端程序本身严格按照管理端摆放的文件结构更新,不会读取任何MC或者启动器的配置信息) +::: + +:::warning + +不要一股脑把整个`.minecraft`目录全部丢进更新,Minecraft的核心文件和Minecraft的资源文件大部分情况下是不能加入更新的,尤其是打算配置一键启动时,会导致更新失败! + +::: + +## 创建首个更新包 + +接下来可以开始创建更新包了,首先双击刚创建的`manage.bat`脚本即可启动管理端。管理端使用交互式命令行来完成各种操作,即使是在黑框命令行下也非常简单易用 + +看到主界面以后,我们输入`c`或`1`,按下回车键就可以开始创建第一个更新包。第一个版本号通常输入1.0,当然你也可以输入任何你喜欢的版本号风格,好了之后按Enter确定 + +:::warning + +版本号只能包括大小写字母数字,以及`!@#$()_+-=;',.`切勿使用中文,空格,或其它字符 + +::: + +输入版本号之后,程序会列出你对文件的所有更改。因为我们是第一次打更新包,文件很多,我们粗略看一下就好,后续打包建议还是稍微看一下这个列表,确保对文件的修改都是没问题的 + +如果给这个版本写更新记录,可以在此时打开`changelogs.txt`文件,把你的更新记录粘贴进去并保存(更新记录只能使用UTF8编码的纯文本,不支持富文本格式)。如果你不想写更新记录,请直接跳过这一步 + +接着输入`y`开始正式打包,首次打包内容一般都较大,可能会花费相当多的时间,请耐心等待 + +等到出现`创建版本完成`的字样后,就说明打包成功了(更新包文件会保存在public目录下) + +:::danger + +请勿替换更新包中的任何文件,包中存储的是bzip压缩数据,并非原样存储,胡乱修改会导致客户端报错和后续更新全部失败!(如果你一定要修改包中文件,请在修改完后,使用管理端t命令来验证压缩包完整性) + +::: + +:::danger + +已经发布的更新包不支持撤回,更不能手动删除文件,这会导致后面更新的文件数据错乱,且不会触发任何的报错弹框。此时应该再打一个新的版本来修复上个版本里的问题 + +若实在需要撤回这个版本,请参考[版本发错了怎么办](./caution.md#版本发错了怎么办) + +::: + +## 后续发布新版 + +后续发布新版本很简单,只需要对`workspace`目录下的文件做修改(就像对本地文件一样修改就好),然后打一个更新包就完成了,管理端会自动检测新旧文件差异生成更新包。 + +比如我想要删除客户端的一个模组a.jar再添加一个新的模组b.jar,那么只需要在工作空间目录下删掉a.jar然后复制进去b.jar,接着打包新版本就好 + +若新旧文件同名,但文件内容被修改了也只一样的做法:直接覆盖旧文件就好,程序也能自动检测到 + +对目录的新建和删除也是一样,该怎么新建怎么新建,该什么删除怎么删除,就就像对本地文件一样进行这些操作 + +如果你在工作空间目录改了一些文件,但又觉得不妥,想要还原工作空间到没修改之前,可以启动管理端,输入`4`或`restore`来还原 + +## 目录用途说明 + +1. worksapce工作空间目录:服主日常维护客户端文件内容的地方 +2. history历史目录:用来作为对比,以计算你对workspace目录做了哪些修改的目录 + + 此目录由程序自动维护,切勿手动修改,会导致数据错乱,若不小心修改了,参考[注意事项](./caution.md#不小心修改了history目录)来还原 +3. public公共目录:用来存放历史更新包, + + 版本列表文件(versions.txt)—— 这个文件仅1.1版本的管理端才有 + + 更新包文件(.zip)—— 这个文件仅1.1版本的管理端才有 \ No newline at end of file diff --git a/versioned_docs/version-v1-old/guide/preparations.md b/versioned_docs/version-v1-old/guide/preparations.md new file mode 100644 index 0000000..3b5a098 --- /dev/null +++ b/versioned_docs/version-v1-old/guide/preparations.md @@ -0,0 +1,38 @@ +--- +sidebar_position: 1 +--- + +# 准备工作 + +一些使用小提示: + +1. 熟悉一些计算机相关的知识会让你在使用过程中遇到的坑更少 +2. 遇到问题先来常见问题解答找答案,这里收录了大部分常见的报错信息 +3. 有过开服经验或者Java开发经验会让你上手的更快 + +## 下载文件 + +在开始安装McPatch之前,你需要先下载好这些文件: + +1. `McPatchManage.jar`(管理端):用来打更新包 +2. `MiniHttpServer.jar`(服务端):小白友好的HTTP服务器,用来让客户端下载更新 +3. `McPatchClient.jar`(客户端):用来更新客户端文件 + +然后在桌面新建一个文件夹叫`mp`(名字可以随意),再把管理端和服务端放进去,要放到一起 + +## 编写启动脚本 + +接下来需要编写两个简单的启动脚本来启动管理端和服务端 + +1. 打开刚创建的`mp`目录 +2. 新建`manage.bat`,粘贴`java -jar xxx.jar & pause`,然后保存关闭 + + 把`xxx`换成管理端的实际文件名 +3. 新建`httpserver.bat`,粘贴`java -jar xxx.jar & pause`,然后保存关闭 + + 把`xxx`换成服务端的实际文件名 +4. 在`mp`目录下创建一个新的目录叫`workspace` + +每个文件的用途: + ++ `manage.bat`脚本用来启动管理端,打新的更新包,用完后可以关掉管理端 ++ `httpserver.bat`脚本用来启动服务端,给客户端下载用,需要一直开着不能关闭 ++ `workspace`目录用来存放你要更新的文件 diff --git a/versioned_docs/version-v1-old/guide/server.md b/versioned_docs/version-v1-old/guide/server.md new file mode 100644 index 0000000..71045d5 --- /dev/null +++ b/versioned_docs/version-v1-old/guide/server.md @@ -0,0 +1,61 @@ +--- +sidebar_position: 3 +--- + +# 搭建服务端 + +McPatch的服务端是分离架构,打包版本和启动服务端是分开进行的,以方便大佬们魔改出自己的更新系统 + +## 启动服务端 + +如果你是小白,非常建议使用自带的服务端,也就是`MiniHttpServer`,开箱即用,无需任何配置 + +启动自带的服务端很简单,在之前的教程中我们已经编写好了启动脚本,此时直接双击`httpserver.bat`文件就可以启动自带服务端了 + +启动成功后服务端会自动输出一个叫`API地址`的东西,我们需要复制这个地址,后面会有用 + +## 本地访问测试 + +使用自己电脑上的浏览器打开刚复制的`API地址`,若显示`FORBIDDEN: Directory is unable to show`就表示服务端正常启动了。此时将浏览器中的地址复制一份,后面会用到 + +若你是在VPS上搭建服务端,那么需要使用VPS上的浏览器访问,而不是用自己电脑上的浏览器 + +这一步测试99%会成功,如果失败记得看看是不是6600端口冲突了,换个端口再试试 + +## 远程访问测试 + +接着是远程访问测试,这一步很重要,因为你安装McPatch最终是要发出去给玩家用的,而不是给自己用的 + +:::danger + +远程访问测试很重要,可以推迟,但不要跳过!浏览器显示的报错信息远比客户端程序丰富,对调试网络问题有极大的帮助! + +::: + +测试过程不复杂,将McPatch的端口(6600)映射出去之后,或者放行防火墙,安全组之后。将`API地址`里的本地IP地址替换为你外网的IP或者域名再浏览器进行访问就行了。注意此时要用你自己电脑上的浏览器,而不能用服务器上安装的 + +满足以下所有条件,才能算所测试通过: + +1. 浏览器显示:`FORBIDDEN: Directory is unable to show`字样 +2. 多次测试打开时间均小于5s(尽量在3s以内是最好的) + +如果第一个条件不满足,需要根据浏览器显示的内容做对应的处理。若第二个条件不满足,就要排查网络是否稳定(自己电脑的网络和服务器网络都要排查) + +若测试通过,那么服务端就算安装成功了。此时将浏览器里的地址复制一份,后面会用到 + +### 备案问题 + +大陆公有云的VPS要求要有 ICP 备案,如果没有就搭建不了更新,因为更新走的是HTTP协议 + +同时樱花映射也要求要有 ICP 备案,才能使用国内节点,否则只能会一刀切阻断所有https/tls流量 + +若你没有备案,可以尝试下面几种方法来搭建更新: + +1. 选择海外VPS和节点,因为海外无需备案 +2. 使用SFTP协议进行更新,目前已经提供了SFTP服务端,SFTP协议是免备案的 + +:::danger + +切勿直接使用linux ssh的sftp做更新,这是极其危险的行为!务必使用xlight、filezilla等专用软件,或使用Docker进行隔离。然后将目录设置为只读,不要暴露任何外部写入权限 + +::: diff --git a/versioned_docs/version-v1-old/start.md b/versioned_docs/version-v1-old/start.md new file mode 100644 index 0000000..85c251b --- /dev/null +++ b/versioned_docs/version-v1-old/start.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +title: McPatch 介绍 +--- + +## McPatch + +McPatch是一个给Minecraft客户端做文件更新的独立应用程序,支持Windows(电脑端)和Android平台(手机端) + +官方企鹅群[【更新助手官方群】](https://jq.qq.com/?_wv=1027&k=PqAEtn39) 925057600 + +提问前先来[常见问题解答](faq/client)找找答案,这里收录了大部分报错信息和对应的解决方法 + +--- + +开源仓库:(更新记录请查阅各仓库的发行版页面) + ++ 文档站:[https://github.com/BalloonUpdate/McPatchDocs](https://github.com/BalloonUpdate/McPatchDocs) ++ 管理端:[https://github.com/BalloonUpdate/McPatchManage](https://github.com/BalloonUpdate/McPatchManage) ++ 客户端:[https://github.com/BalloonUpdate/McPatchClient](https://github.com/BalloonUpdate/McPatchClient) ++ 服务端:[https://github.com/BalloonUpdate/MiniHttpServer](https://github.com/BalloonUpdate/MiniHttpServer) diff --git a/versioned_docs/version-v2/guide.md b/versioned_docs/version-v2/guide.md deleted file mode 100644 index ae45e18..0000000 --- a/versioned_docs/version-v2/guide.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -sidebar_position: 12 -id: guide -title: 安装教程 ---- - -## 一、下载文件 - -在开始安装之前,要提前下载好这些文件: - -1. mcpatch-manager.exe:这是管理端,用来打更新包 -2. mcpatch-client.exe:这是客户端,用来更新下载更新文件 - -## 二、配置管理端 - -管理端是用来打包和管理更新包的工具,同时也提供一个内置的服务端功能,提供开箱即用的下载体验。 - -将管理端放到一个新建的目录mp中,然后打开终端,我们需要在终端里启动管理端。 - -第一次输入`mcpatch-manager.exe`不带任何参数运行,会输出帮助信息和生成工作空间目录workspace,这样管理端就配置好了。 - -## 三、放入要更新的文件 - -只把需要更新的文件放到工作空间目录里,暂时不更新的文件可以以后再放,能减少更新包的大小。 - -同时工作空间目录下的文件要和客户端保持相同的目录结构。 - -下面一些栗子可以参考(不存在的文件夹需要手动创建): - -+ 要更新所有模组,复制`.minecraft/mods`目录 - + 到`mp/workspace/.minecraft/mods` - -+ 要更新.minecraft目录旁边的`新玩家进服教程.txt`,复制`新玩家进服教程.txt`文件 - + 到`mp/workspace/新玩家进服教程.txt` - -+ 如果你开了版本隔离,就需要复制`.minecraft/versions/your-version/mods`目录 - + 到`mp/workspace/.minecraft/versions/your-version/mods` - + 其它文件也是同理,需要复制到versions目录下 - -::: tip -若开启版本隔离,那么要更新的实际上是versions目录下的mods文件夹,把文件放到`.minecraft/mods`目录下,游戏是读取不到的。 -::: - -## 四、开始打包 - -在终端里输入`mcpatch-manager.exe pack `即可开始打包,``是要打包的版本号,不能和现有的冲突。 - -版本号只能包括大小写字母,数字,以及`!@#$()_+-=;',.`这几个符号,不要使用中文,空格,或其它字符,会出问题。 - -如果你想给这个版本增加更新记录的话,把更新记录写在管理端目录的`logs.txt`文件里就会自动读取到了(使用utf-8编码)。 - -看到“打包完成!”的字样即代表打包成功了,更新包会存放在public目录下,会按版本号进行命名。 - -如果对打包结果不放心,可以使用`mcpatch-manager.exe test`对更新包进行校验,这会模拟客户端的解压过程,检查文件是否损坏。 - -::: danger[注意] - -已经打好的更新包文件不能手动删除也不能修改里面的文件,这会导致数据损坏,应该再打一个新的包来替代删除旧的包。 - -::: - -## 五、后续打包 - -后续的文件维护很简单,直接对工作空间目录下的文件或者目录进行增加,删除,修改即可,修改完后输入pack打包。 - -管理端会自动识别到你所做的更改,并记录到更新包里。 - -即使新旧文件同名,只修改了文件里的数据,也能检测到。目录也是一样,该新增新增,该删除删除,就像对自己电脑上的文件一样操作就好。 - -::: tip[提示] - -管理端目前还没有提供复原工作空间目录的指令,如果有这个需求,需要手动从更新包中把文件解压出来。后面会把这个功能加上。 - -::: - -## 六、启动服务端 - -在终端里使用`mcpatch-manager.exe serve 6700`可以启动内置的服务端,默认端口是6700。 - -想要关闭服务端可以叉掉终端的窗口,或者按Ctrl + C即可。 - -内置的服务端使用基于TCP的私有协议,不是http不用担心备案问题,适合小服或者本地调试环境。 - -## 七、配置客户端 - -将客户端放到`.minecraft`目录旁边紧挨着,然后直接双击运行。 - -看到窗口弹出后把它关掉,此时它会生成配置文件`mcpatch.yml`,我们打开编辑。 - -唯一需要修改的是`urls`选项,这个参数控制更新服务器的地址,将127.0.0.1:6700修改成自己服务器的ip和端口即可。 - -其它选项可以按需修改,但不是必须的,完成后保存关闭。 - -## 八、一键启动 - -每次都要手动运行更新很麻烦,可以借助一些方法在游戏启动时自动进行更新。 - -首先到[BalloonUpdate/McPatch2Loader](https://github.com/BalloonUpdate/McPatch2Loader/releases)下载最新版的加载器文件。 - -新建目录`.minecraft/mp`,把刚下载的加载器和客户端程序移动进来。 - -打开Minecraft启动器(任意启动器均可,官方启动器除外),调整游戏版本设置,找到Java虚拟机参数(或者JVM 参数)。 - -在参数的开头插入这串代码`-javaagent:mp/loader-1.jar`,然后回到启动器主界面。 - -接着创建“启动列表”文件`.minecraft/mp/startlist.txt`,将客户端程序的文件名写进去,比如`mcpatch-client-0.0.0.exe`,然后保存关闭。 - -点击Minecraft启动器的“启动游戏”按钮,一切顺利的话就会自动启动更新了。 - -## 九、经常被问到的问题 - -### 文件更新位置 - -客户端程序会自动搜索.minecraft的父目录作为更新起始位置,到处移动客户端程序不会影响文件更新位置。 - -如果要调整这个机制,可以修改配置文件里的`base-path`选项 - -### 删除管理端不存在的文件 - -客户端有些文件不在工作空间目录中,但又想删掉这个文件,可以在工作空间目录创建一个同路径且同名的空文件。 - -打一个更新包,然后再将这些文件删掉,再打一个包,客户端就可以正常删除这些不存在的文件了。 - -### 版本号不是判断版本新旧的依据 - -版本号只是一个普通的标签,是给人类看的,程序不会解析对比版本号的文字,也不作为任何判断版本前后的依据。 - -版本号的判断顺序的按打包时间来计算的,后打的版本总是新版本。 \ No newline at end of file diff --git a/versioned_docs/version-v2/script-template.md b/versioned_docs/version-v2/script-template.md deleted file mode 100644 index 8e4e37d..0000000 --- a/versioned_docs/version-v2/script-template.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -sidebar_position: 13 -id: script-template -title: 上传脚本模板 ---- - -管理端打包后,可能要把更新包上传到自己的服务器,或者对象存储上供大家下载。 - -管理端本身没有直接上传文件的能力,但可以通过“上传脚本模板”这个特性间接将更新包上传到服务器上。 - -配置好后,每次打包完成自动生成一个上传脚本,双击运行后也可以自动把更新包上传到自定义的服务器上。 - -在使用这个功能之前,需要提前准备好对应的cli上传工具,比如要上传到对象存储,就要准备对象存储的命令行工具。 - -打开管理端的文件夹,编辑管理端的配置文件`config.toml`,将`upload-script-output`后面的`.txt`替换成`.bat`好方便在Windows系统上运行。 - -再在管理端exe文件旁边创建一个空文件`upload-template.txt`。 - -这个文件就是模板文件了,打包后会按这个模板文件的内容,自动生成一个新的上传脚本。 - -这里以windows平台上传到腾讯对象存储为例,其它平台和上传方式也是同理。 - -首先要从[腾讯云的官网](https://cloud.tencent.com/document/product/436/63144)下载COSCLI工具,这里要下载自己操作系统对应的版本。 - -将下载好的`coscli-windows.exe`移动到管理端文件夹里来,再创建一个新文件`tencent-cos.yml`作为coscli的配置文件。 - -打开`tencent-cos.yml`进行编辑,将下面内容粘贴进去: - -```yaml -cos: - base: - secretid: aaaaa - secretkey: bbbbb - sessiontoken: "" - protocol: https - buckets: - - name: ccccc - alias: my-default-bucket - region: "" - endpoint: ddddd -``` - -这里有4个内容需要手动替换成自己的: - -1. aaaaa:替换成自己的Secret Id -2. bbbbb:替换成自己的Secret Key -3. ccccc:替换成自己的桶名 -4. ddddd:替换成自己的地域 - -完成后保存关闭,coscli就配置完毕了。现在来配置从脚本调用coscli的命令。 - -打开编辑模板文件`upload-template.txt`,将下面的内容粘贴进去,然后保存关闭: - -```batch -@echo off - -{{ for f in upload_files }} -coscli-windows.exe -c tencent-cos.yml sync "{f}" "cos://my-default-bucket/backgrounds/{f}" --force {{ endfor }} - -{{ for f in delete_files }} -coscli-windows.exe -c tencent-cos.yml rm "cos://my-default-bucket/backgrounds/{f}" --force {{ endfor }} - -pause -del %0 -``` - -脚本最后一行代表删除自己,当上传完成后,可以按任意键继续,然后脚本会删除自己。如果上传失败了,可以手动叉掉窗口,然后重新运行一次上传。 - -上面是以windows平台为例子,如果是linux平台,可以用模板生成sh文件,只需要在配置文件config.toml中将生成的脚本文件后缀名修改成`.sh`。 \ No newline at end of file diff --git a/versioned_docs/version-v2/start.md b/versioned_docs/version-v2/start.md deleted file mode 100644 index 76ce1d4..0000000 --- a/versioned_docs/version-v2/start.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -sidebar_position: 1 -id: start -title: McPatch2 介绍 ---- - -## McPatch 2 - -McPatch是一个给Minecraft客户端做文件更新的独立应用程序,这里是McPatch第二版的文档。 - -客户端仅支持Windows,管理端支持全平台 - -官方企鹅群[【更新助手官方群】](https://jq.qq.com/?_wv=1027&k=PqAEtn39) 925057600 - -## 升级说明 - -2.0版本无法从1.0版本用热更新的方式升级上来,需要先把1.0版本的文件全部删掉,再重头开始安装2.0版本。 - -如果你是第一次使用这个软件,请忽略这个升级说明。 - -## 大版本更新变动 - -以下是2.0版本相较1.0版本的改动。如果你是1.0版本的老用户,请在使用之前仔细阅读下面的改动列表。 - -### 新功能 - -1. 客户端支持按需下载,通过其它方式提前更新的文件,在下载时会被跳过,不会重复下载 -2. 管理端现在自带一个内置的小服务端,使用tcp协议和客户端通信,无需再担心备案的问题 -3. 管理端支持上传脚本模板,每次打包后都会按模板生成一个脚本,用来一键上传更新包文件 - -### 改进 - -1. 优化管理端文件结构,省去了history目录的设计,硬盘占用减少三分之一 -2. 更新包每次都记录完整文件,避免客户端文件因玩家被修改导致无法更新 -3. 客户端修复窗口无响应和下载限速的问题,现在可以跑到更快的下载速度 - -### 取舍 - -2.0版本相比1.0做出了一些功能上的取舍,以下是1.0支持,2.0不支持的功能列表: - -1. 客户端仅支持Windows(不支持Android手机端和其他操作系统) -2. 客户端不再支持sftp(使用管理端内置的tcp协议替代了) -3. 管理端目前提供Windows x86和Linux x86打包,其它平台需要自己构建打包 -4. 管理端现在使用纯命令行启动,而不是1.0版本的交互式命令行(方便其它脚本调用) - diff --git a/versioned_sidebars/version-v1-old-sidebars.json b/versioned_sidebars/version-v1-old-sidebars.json new file mode 100644 index 0000000..c28cec6 --- /dev/null +++ b/versioned_sidebars/version-v1-old-sidebars.json @@ -0,0 +1,9 @@ +{ + "tutorialSidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] + } + \ No newline at end of file diff --git a/versioned_sidebars/version-v2-sidebars.json b/versioned_sidebars/version-v2-sidebars.json deleted file mode 100644 index caea0c0..0000000 --- a/versioned_sidebars/version-v2-sidebars.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tutorialSidebar": [ - { - "type": "autogenerated", - "dirName": "." - } - ] -} diff --git a/versions.json b/versions.json index 8b7e894..fa4b018 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,4 @@ [ - "v2", - "v1" + "v1", + "v1-old" ]