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
+```