diff --git a/.github/ISSUE_TEMPLATE/CRASH-UPLOAD.yml b/.github/ISSUE_TEMPLATE/CRASH-UPLOAD.yml index e4ba83f7..54c59466 100644 --- a/.github/ISSUE_TEMPLATE/CRASH-UPLOAD.yml +++ b/.github/ISSUE_TEMPLATE/CRASH-UPLOAD.yml @@ -27,23 +27,14 @@ body: render: bash validations: required: true - - type: textarea - id: logs - attributes: - label: "崩溃日志" - description: 请将您的崩溃日志粘贴到此处 - placeholder: 日志... - render: bash - validations: - required: true - type: textarea id: log-files attributes: label: "日志文件" - description: 如果日志太长无法提交,请将日志文件拖放到这里 - placeholder: 不要在这里粘贴日志 + description: 请优先使用 [MCLogs](https://mclo.gs) 提交日志 + placeholder: 粘贴 MCLogs 链接、粘贴日志内容或上传日志文件 validations: - required: false + required: true - type: dropdown id: os attributes: diff --git a/.github/reviewer-lottery.yml b/.github/reviewer-lottery.yml index 2aa48062..2ea9307e 100644 --- a/.github/reviewer-lottery.yml +++ b/.github/reviewer-lottery.yml @@ -7,4 +7,5 @@ groups: - Big-Cake-jpg - bingxin666 - XieXiLin2 - - HRxiaohu \ No newline at end of file + - HRxiaohu + - bingling-sama \ No newline at end of file diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index 7878f72c..00000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: GitHub Pages - -on: - push: - branches: - - main - -jobs: - build: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - node-version: [20.x] - os: [ubuntu-latest] - fail-fast: false - - steps: - - uses: actions/checkout@v2 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - registry-url: https://registry.npmjs.org/ - - - name: 📦 Install Dependencies - run: yarn - - - name: 🌌 Build VitePress Docs - run: yarn docs:build - env: - GITHUB_SHA: ${{ github.sha }} - - - name: 🪤 Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/.vitepress/dist - force_orphan: true - publish_branch: gh-pages - cname: crashmc.com diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml deleted file mode 100644 index 56ecaee2..00000000 --- a/.github/workflows/pr-check.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: GitHub Pages for PR - -on: [pull_request] - -jobs: - build: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - node-version: [20.x] - os: [ubuntu-latest] - fail-fast: false - - steps: - - uses: actions/checkout@v2 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - registry-url: https://registry.npmjs.org/ - - - name: 📦 Install Dependencies - run: yarn - - - name: 🧐 Check Code Types - run: yarn docs:tsc - - - name: 🔧 Check Code Format - run: | - yarn docs:eslint && exit 0 - echo 'Error: 请执行 `pnpm run docs:format` 以格式化代码' 1>&2 - exit 1 - - - name: 🌌 Build VitePress Docs - run: yarn docs:build diff --git a/.gitignore b/.gitignore index 00016212..d22fb6e7 100644 --- a/.gitignore +++ b/.gitignore @@ -129,9 +129,6 @@ dist .yarn/install-state.gz .pnp.* -# vscode -.vscode - #vitepress cache .pnp.cjs diff --git a/.husky/pre-commit b/.husky/pre-commit index edbd7c67..798b8467 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -5,5 +5,5 @@ echo "running docs:tsc" pnpm run docs:tsc echo "running docs:eslint --fix" pnpm run docs:eslint --fix -echo "running docs:zhlint" -pnpm run docs:zhlint +# echo "running docs:zhlint" +# pnpm run docs:zhlint diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..f109e3e4 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "davidanson.vscode-markdownlint" + ] +} \ No newline at end of file diff --git a/.zhlintrc b/.zhlintrc index 6aa06deb..fbe65eff 100644 --- a/.zhlintrc +++ b/.zhlintrc @@ -1,5 +1,6 @@ { "preset": "default", "rules": { - } + "noSpaceInsideHyperMark": false + } } diff --git a/README.md b/README.md index dbb85a6d..493f5055 100644 --- a/README.md +++ b/README.md @@ -8,22 +8,28 @@ ## 贡献 -### 依赖工具 +### 项目架构 -- [Git](https://git-scm.com/downloads) -- [pnpm](https://pnpm.io/installation) +- [pnpm](https://pnpm.io/installation) 提供包管理工具 +- [Vitepress](https://vitepress.dev/) 驱动构建静态网页 +- [CloudFlare](https://www.cloudflare.com/) 提供静态网站部署服务 ### 注意事项 请先 [Fork](https://github.com/GlobeMC/crashmc.com/fork) 本仓库,然后进行文档修改。 -请注意:在非 Log 信息以外的任何地方,如果出现中文文字、英文单词和阿拉伯数字混用的情况,请在它们之间添加空格;如果有斜杠的,请在斜杠两边增加一个空格。 +本文档按 [W3C Requirement for Chinese Text Layout](https://www.w3.org/International/clreq/) 进行排版,在贡献内容时请注意排版格式。 -例:`GlobeMC 河豚分析是一个 2023 年 7 月底成立的崩溃日志分析组织,以方便 / 开放 / 专业为目标`、`Java 8` +请注意:在非 Log 信息以外的任何地方,如果出现中文文字、英文单词和阿拉伯数字混用的情况,请在它们之间添加空格;如果有斜杠的,请在斜杠两边增加一个空格。如: -在涉及非 Log 信息以外的任何地方,英文单词原则上首字母大写,部分情况需要按照规则大写,英文句子首字母大写。 +- GlobeMC 河豚分析是一个 2023 年 7 月底成立的崩溃日志分析组织,以方便、开放、专业为目标 +- `Java 8` -例:`Minecraft`、`OptiFine`、`What your love is your life.` +在涉及非 Log 信息以外的任何地方,英文单词原则上首字母大写,部分情况需要按照规则大写,英文句子首字母大写。如: + +- Minecraft +- OptiFine +- What you love is your life. 在涉及路径时,请在路径的前后加上空格。 diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 29357ffd..51e56f8f 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -26,10 +26,12 @@ const themeConfig: DefaultTheme.Config = { nav: [ { text: "主页", link: "/" }, { text: "崩溃分析工具", link: "/analyzer" }, + { text: "通用问题", link: "/commons" }, { text: "客户端崩溃", activeMatch: "/client/*", items: [ + { text: "通用问题", link: "/client/shared" }, { text: "系统问题", link: "/client/system" }, { text: "原版问题", link: "/client/vanilla" }, { text: "Mod 问题", link: "/client/mods" }, diff --git a/docs/.vitepress/data/members.ts b/docs/.vitepress/data/members.ts index 851161e3..2f32aefa 100644 --- a/docs/.vitepress/data/members.ts +++ b/docs/.vitepress/data/members.ts @@ -20,7 +20,7 @@ const members = [ { avatar: "https://cdn.crashmc.com/https://github.com/bingling-sama.png", name: "bingling-sama", - title: "开发者", + title: "开发者 | 文档贡献者", links: [{ icon: "github", link: "https://github.com/bingling-sama" }], }, { diff --git a/docs/client/index.md b/docs/client/index.md index 9196297c..8f08b645 100644 --- a/docs/client/index.md +++ b/docs/client/index.md @@ -14,53 +14,19 @@ Minecraft 客户端,是 Minecraft 游戏本身一大组成部分。通俗来 游戏的文件目录一般如下所示。 -``` +```filetree .minecraft ├─assets │ ├─indexes │ ├─objects │ │ ├─00 │ │ ├─01 -│ │ ├─02 -│ │ ├─03 -│ │ ├─04 -│ │ ├─05 -│ │ ├─06 -│ │ ├─07 -│ │ ├─08 -│ │ ├─09 -│ │ ├─0a -│ │ ├─0b -│ │ ├─0c -│ │ ├─0d -│ │ ├─0e -│ │ ├─0f -│ │ ├─10 -│ │ ├─11 -│ │ ├─12 │ │ ├─... │ │ ├─fe │ │ └─ff │ ├─skins │ │ ├─00 │ │ ├─01 -│ │ ├─02 -│ │ ├─03 -│ │ ├─04 -│ │ ├─05 -│ │ ├─06 -│ │ ├─07 -│ │ ├─08 -│ │ ├─09 -│ │ ├─0a -│ │ ├─0b -│ │ ├─0c -│ │ ├─0d -│ │ ├─0e -│ │ ├─0f -│ │ ├─10 -│ │ ├─11 -│ │ ├─12 │ │ ├─... │ │ ├─fe │ │ └─ff diff --git a/docs/commons.md b/docs/commons.md new file mode 100644 index 00000000..adb054cd --- /dev/null +++ b/docs/commons.md @@ -0,0 +1,17 @@ +# 双端通用问题 + +## 内存溢出 + +解释:JVM 内存溢出,导致游戏崩溃。 + +解决方案:更新显卡驱动,64 位系统用户请确保使用 64 位 Java ,32 位系统用户请调低你的 Minecraft 使用内存 + +显卡驱动下载:[Intel](https://www.intel.cn/content/www/cn/zh/search.html#sort=relevancy&f:@tabfilter=[Downloads]&f:@stm_10385_zh=[%E6%98%BE%E5%8D%A1]) | [AMD](https://www.amd.com/zh-hans/support) | [Nvidia](https://www.nvidia.cn/geforce/drivers/) + +64 位 Java 下载:[Java 8](https://cdn.crashmc.com/https://github.com/bell-sw/Liberica/releases/download/8u402%2B7/bellsoft-jre8u402+7-windows-amd64-full.msi) | [JDK 17](https://cdn.crashmc.com/https://github.com/bell-sw/Liberica/releases/download/17.0.10%2B13/bellsoft-jdk17.0.10+13-windows-amd64.msi) + +关键词: + +``` +EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb5c7288a1, pid=25504, tid=25880 +``` diff --git a/docs/contribute/contributing.md b/docs/contribute/contributing.md index 7f5c6f5e..88156072 100644 --- a/docs/contribute/contributing.md +++ b/docs/contribute/contributing.md @@ -1,72 +1,91 @@ --- -contributors: [HRxiaohu] +contributors: [HRxiaohu, bingling-sama] --- # 贡献指南 -## 排版标准 +在向 CrashMC 贡献内容前,请务必仔细阅读以下贡献流程,以便我们进行代码审查工作。 -请先 Fork 本仓库,然后进行文档修改。排版时请务必遵循中文文案排版指北。 +## Step1.克隆项目 -请注意:在非 Log 信息以外的任何地方,如果出现中文文字、英文单词和阿拉伯数字混用的情况,请在它们之间添加空格;如果有斜杠的,请在斜杠两边增加一个空格。 -例:`GlobeMC 河豚分析是一个 2023 年 7 月底成立的崩溃日志分析组织,以方便 / 开放 / 专业为目标`、`Java 8` +首先 fork [GitHub Repo](https://github.com/GlobeMC/crashmc.com) 到你名下,然后克隆仓库到本地: -在涉及非 Log 信息以外的任何地方,英文单词原则上首字母大写,部分情况需要按照规则大写,英文句子首字母大写。 +```bash +# 推荐使用 SSH +git clone git@github.com:{yourname}/crashmc.com.git +# 也可以使用 HTTPS (不推荐) +git clone https://github.com/{yourname}/crashmc.com.git +``` -例:`Minecraft`、`OptiFine`、`What your love is your life`。 +推荐使用 [VSCode](https://code.visualstudio.com/) 编辑内容。 -在涉及路径时,请在路径的前后加上空格。 +:::tip GitHub Web Editor +如果内容较少,你可以直接使用 [GitHub Web Editor](https://github.dev) 来进行修改。 -例:`路径 D:/PCL/.minecraft/mods 是存放 Mods 的地方` +但同样,你需要先将 Repo fork 你自己名下,以便后期进行 pr。 +::: -所有专有名词都应该使用反引号 `` ` `` 包裹。 +## Step2.贡献内容 -例:`` `Minecraft` ``、`` `Curseforge` ``、`` `MC百科` `` -在涉及任何站外链接时,请优先添加官方链接,尽量避免不必要的第三方链接。 +### 文档内容 -如果某一个解决方案为特定启动器独占功能,我们提供了全局组件来标注它。示例如下: +本文档按 [W3C Requirement for Chinese Text Layout](https://www.w3.org/International/clreq/) 进行排版,在贡献内容时请注意排版格式。 -:::tip HMCL +在涉及任何站外链接时,请优先添加官方链接,尽量避免不必要的第三方链接。 -### 修改渲染器 +如果某一个解决方案为特定启动器独占功能,我们提供了全局组件来标注它。示例如下: -```md -### 修改渲染器 +```markdown + + + ``` -::: +实际效果: -:::tip BakaXL +- +- +- -### 重置核心 +如果您参与编辑了一篇文档的绝大部分,可以填写 Markdown Frontmatter contributor 字段,以将您的 GitHub 用户名添加到贡献者列表,格式如下。 ```md -### 重置核心 +--- +contributors: [username1, username2] +--- ``` +:::warning 警告 + +- 请一定要使用 GitHub 用户名署名,否则我们无法获取您的头像。 +- 上述代码中所使用的均为英文半角逗号! + ::: -:::tip PCL2 +### 代码内容 -### 修改验证服务器 +如果您参与了代码内容的修改,~~相信您应该多少懂一些贡献流程,~~ 这里不再过多赘述贡献流程。 -```md -### 修改验证服务器 -``` +## Step3.提交更改 +在完成内容编写以后,请将您的所有更改 commit 到您的 fork 下,再向 [这里](https://github.com/GlobeMC/crashmc.com/tree/dev) 提交 pr。 + +:::warning 重要提醒 +请务必将您的更改 pr 到 `dev` barnch,以便我们审查排版及合并冲突。 ::: -在您完成文档修改后,请在 Markdown 文档的最上方修改 contributors Frontmatter,以将您的 GitHub 用户名添加到贡献者列表,格式如下。 +:::tip Assign +如果您的更改范围为文档相关,请 Assign `@bingling-sama`、`@xxx` 或 `@xxx`,这会加快我们对您的代码审查与合并速度。 +::: -```md ---- -contributors: [用户名, 用户名, 用户名] ---- -``` +## Step4.剩余流程 -:::warning 警告 -- 请一定要使用 GitHub 用户名署名,否则我们无法获取您的头像。 -- 上述代码中所使用的均为英文半角逗号! -::: +在收到您的 pr 后,我们会尽最快速度 review 您的代码,并合并到 `dev` branch。 + +我们会每周进行一次例行 merge,将所有已完成的更改合并到生产环境 `main` branch,因此请不要将您的更改 pr 到 `main` branch,这会增大我们的代码审查和文档部署工作量。 + +## 鸣谢 + +感谢所有为 CrashMC 贡献内容的玩家和开发者,你们的支持是对 CrashMC 最大的鼓励。 diff --git a/docs/contribute/crash-report.md b/docs/contribute/crash-report.md index 83de7e00..dfabfedb 100644 --- a/docs/contribute/crash-report.md +++ b/docs/contribute/crash-report.md @@ -6,6 +6,26 @@ contributors: [bingling-sama] 如果您遇到的问题无法在本文档中找到答案,可以点击[这里](https://github.com/GlobeMC/crashmc.com/issues/new/choose)向我们提交您的错误报告,我们将尽快为您解决问题。同时,您所上传的崩溃日志也将作为改进文档的资料使用,感谢您为本文档提供数据。 +为了方便我们为您检索问题,在上传 `*.log`/`*.txt` 等文本格式文件时,请优先前往 [MCLogs](https://mclo.gs) 上传文件内容并向我们提供网站生成的链接。 + :::info 注意 -在提交崩溃报告时,您首先要在 [GitHub](https://github.com) 网站注册一个帐号,以便我们对问题的后续跟踪。 +在提交崩溃报告时,您首先要在 [GitHub](https://github.com) 网站注册一个帐号,以便我们对问题进行后续跟踪。 + +提交崩溃信息时,各工具的优先级如下: + +- [MCLogs](https://mclo.gs) +- [GitHub Gist](https://gist.github.com) +- 其他 Pastebin 网站 +- GitHub Issues 内**使用 `Details Block`** 上传日志内容 +- GitHub Issues 内直接上传文件 ::: + +## GitHub Details + +在 GitHub Issues 中粘贴游戏崩溃日志时,建议使用 Details Block 来增加 Issue 可读性。 + +在 GitHub 输入框中键入 `/` 后,就会弹出 Slash Commands 选框: + +![details](https://cdn.crashmc.com/https://github.com/GlobeMC/CrashMC_Pics/raw/main/contribute/details-block.jpg) + +单击 Details 选项,就可以快捷输入 Details Block,此时便可以编辑 `summary` 及 `details` 块。建议在 `summary` 块中输入文件名,在 `details` 块中粘贴日志内容。 diff --git a/docs/server/index.md b/docs/server/index.md index 10c044fa..b2037fce 100644 --- a/docs/server/index.md +++ b/docs/server/index.md @@ -10,6 +10,59 @@ 如果您在连接到服务器时出错,请自行根据报错文案上网搜索或求助他人。 ::: +## 基础知识 + +Minecraft 服务端,是 Minecraft 游戏本身一大组成部分。通俗来说,玩家游玩的 Minecraft 游戏本身就会连接到一个本地或远程服务器。 + +服务端需要完整的 Java 环境。 + +请注意,目前文档仅处理 Java 版服务端的问题,关于 Bedrock 版服务端的问题,您可以前往[基岩版服务器下载](https://www.minecraft.net/zh-hans/download/server/bedrock)了解更多。 + +:::tip +如果您对 Minecraft 服务端有较详细的理解,那么您不必完整阅读。 +::: + +## 服务端分类 + +与客户端不同的是,服务端有着大量的分支,因此我们只能在此处列举一部分 + +### 原版服务端 + +即由 Mojang 提供的最原始的服务端文件,可前往[官方网站](https://www.minecraft.net/zh-hans/download/server) +下载。 + +### 插件服务端 + +| 服务端名称 | 官网链接 | 开发者 | +| ---------- | --------------------------------------------------------- | ---------------------------------- | +| Bukkit | [Bukkit Forums](https://bukkit.org/) | SpigotMC,此前为The Bukkit Project | +| Spigot | [Spigot 官方网站](https://www.spigotmc.org/) | SpigotMC | +| Sponge | [Sponge 官方网站](https://spongepowered.org/) | Sponge | +| Paper | [PaperMC 官方网站](https://papermc.io/) | PaperMC | +| …… | …… | …… | + +注:这里没有列出 Paper 和 Spigot 的分支服务器端。 + +### 模组服务端 + +| 服务端名称 | 官网链接 | 开发者 | +| ---------- | --------------------------------------------------------- | ---------------------------------- | +| Forge | [Forge Forums](https://forums.minecraftforge.net/) | MinecraftForge | +| Fabric | [Fabric 官方网站](https://fabricmc.net/) | FabricMC | +| …… | …… | …… | + +### 混合服务端 + +即同时兼容插件和模组的服务端。 + +| 服务端名称 | 官网链接 | 开发者 | 兼容的模组端 | 兼容的插件端 | +| ------------| --------------------------------------------------------- | ---------------------------------- | ------------ | ------------ | +| SpongeForge | [Sponge 官方网站](https://spongepowered.org/) | Sponge | Forge | Sponge | +| Mohist | [Mohist 官方网站](https://mohistmc.com/) | MohistMC | Forge | Spigot | +| Arclight | [Arclight Github](https://github.com/IzzelAliz/Arclight) | IzzelAliz | Forge | Bukkit | +| CatServer | [CatServer Github](https://github.com/Luohuayu/CatServer) | Luohuayu | Forge | Spigot | +| …… | …… | …… | + ## 日志文件的位置 客户端的崩溃通常会由启动器自动打包崩溃报告,但是服务端没有启动器,需要您自行寻找日志文件。 diff --git a/docs/server/plugins.md b/docs/server/plugins.md index 8a9db659..8c477b85 100644 --- a/docs/server/plugins.md +++ b/docs/server/plugins.md @@ -4,7 +4,7 @@ 本页文档仍在编写,如果你感兴趣的话,可以帮助我们完善它! ::: -## Spigot 系服务端 +## Bukkit 系服务端 ### 通用问题 @@ -16,7 +16,7 @@ 关键词 -``` +```log ServerMain ERROR Cannot access RandomAccessFile java.io. FileNotFoundException: logs/latest.log (Permission denied) java.io.FileNotFoundException: logs/latest.log (Permission denied) at java.base/java.io.RandomAccessFile.open0(Native Method) at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:344) @@ -25,7 +25,9 @@ ServerMain ERROR Cannot access RandomAccessFile java.io. FileNotFoundException: at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:127) // 该处虽然只是表示了无权限写入 latest.log ,但一般情况下这意味着服务端没有所在文件夹的写入权限,除非您单独为 latest.log 设置了操作权限 ``` -### Spigot + +### Spigot 及其衍生服务器端 + ### Paper 及其衍生服务器端 @@ -37,7 +39,7 @@ ServerMain ERROR Cannot access RandomAccessFile java.io. FileNotFoundException: 关键词: -``` +```log java.lang.RuntimeException: Server attempted to load chunk saved with newer version of minecraft! 3337 > 3218 // 这是一个使用 Paper 1.19.4 (3337) 加载 1.19.3 (3218) 世界存档的示例。 ``` diff --git a/docs/server/shared.md b/docs/server/shared.md index 332e3d35..e8f597f1 100644 --- a/docs/server/shared.md +++ b/docs/server/shared.md @@ -23,3 +23,15 @@ You need to agree to the EULA in order to run the server. Go to eula.txt for mor ``` Perhaps a server is already running on that port? ``` + +## 1 tick 执行时间过长 + +解释:服务器 1 tick 执行时间过长导致崩溃 + +解决方案:修改 `server.properties` 文件,将 `max-tick-time` 值调高或设为 `-1` + +关键词: + +``` +java.lang.Error: Watchdog +```