From 4ba858821843d436462c1f18a13b5e921e64d51a Mon Sep 17 00:00:00 2001
From: SerinaNya <34389622+SerinaNya@users.noreply.github.com>
Date: Sun, 24 Nov 2024 00:21:51 +0800
Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20perf(yggdrasil):=20update?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/yggdrasil/authlib-injector.md | 297 +++++++++++++++--------------
docs/yggdrasil/index.md | 156 +++++++--------
docs/yggdrasil/server.md | 58 +++---
3 files changed, 259 insertions(+), 252 deletions(-)
diff --git a/docs/yggdrasil/authlib-injector.md b/docs/yggdrasil/authlib-injector.md
index 6abf053..6603cd3 100644
--- a/docs/yggdrasil/authlib-injector.md
+++ b/docs/yggdrasil/authlib-injector.md
@@ -1,139 +1,158 @@
-
-
-# authlib-injector
-
-> authlib-injector 为玩家提供统一的非 Mojang 登录体验。大多数的外置登录都使用 authlib-injector 来实现。
-
----
-
-
-
-## 单服务端
-
-1. 将服务器配置文件 `server.properties` 中 `online-mode` 一项的值设为 `true`
-
- ::: code-group
-
- ``` properties:line-numbers=23 [server.properties]
- online-mode=true
- ```
-
- :::
-
-2. 在你的服务端的启动指令的 `-jar` 参数前添加如下参数
-
- ::: code-group
-
- ``` bash-vue [需要添加的内容]
- -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil
- ```
-
- ``` bash-vue [完整的启动指令示例]
- java -Xms4G -Xmx16G -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar paper-1.20.4-409.jar --nogui
- ```
-
- :::
-
- - `authlib-injector-{{ latest }}.jar` 为指向 authlib-injector 的 `jar` 的路径或文件名
- - `https://littleskin.cn/api/yggdrasil` 为 LittleSkin 的 Yggdrasil API 地址
-
-## Velocity
-
-Modern forwarding 是 Velocity 支持的一种独创格式。它以高效的二进制格式转发所有玩家信息。但是,它仅适用于 Minecraft 1.13 或更高版本。
-
-> [!TIP] 提示
-> 本文仅会对「为 Velocity modern forwarding 配置 LittleSkin 外置登录」做出说明。
->
-> 本案例使用 Velocity + Paper 作为示例。
->
-> 具体的 Velocity 配置请结合参考 [Velocity 文档](https://docs.papermc.io/velocity/player-information-forwarding#configuring-modern-forwarding)。
-
-
-
-- 对于以上所有
-
- **每个**服务端都应该配置 authlib-injector,以便其能正确地处理外置登录。
-
- 在**每个**服务端的启动指令的 `-jar` 参数前添加如下参数。
-
- ::: code-group
-
- ``` bash-vue [需要添加的内容]
- -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil
- ```
-
- ``` bash-vue [Velocity 完整的启动指令示例]
- java "-Dauthlibinjector.disableHttpd" -Xms512M -Xmx512M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar velocity-3.3.0-SNAPSHOT-351.jar
- ```
-
- ``` bash-vue [Paper 子服务器 完整的启动指令示例]
- java -Xms4G -Xmx16G -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar paper-1.20.4-409.jar --nogui
- ```
-
- :::
-
- - `authlib-injector-{{ latest }}.jar` 为指向 authlib-injector 的 `jar` 的路径或文件名
- - `https://littleskin.cn/api/yggdrasil` 为 LittleSkin 的 Yggdrasil API 地址
-
-## Waterfall / BungeeCord
-
-BungeeCord 和 Waterfall 属于亲兄弟好姐妹,因此,以下配置同时适用于两者。
-
-- 对于 Waterfall / BungeeCord
-
- 检查 `config.yml`,确保 `online-mode` 项的值为 **`true`** :point_left:
-
- ::: code-group
-
- ``` yaml:line-numbers=17 [config.yml]
- online-mode: true
- ```
-
- :::
-
-- 对于子服务端
-
- 检查 `server.properties` 文件,确保 `online-mode` 项的值为 **`false`** :point_left:
-
- ::: code-group
-
- ``` properties:line-numbers=23 [server.properties]
- online-mode=false
- ```
-
- :::
-
-- 对于以上所有
-
- **每个**服务端都应该配置 authlib-injector,以便其能正确地处理外置登录。
-
- 在**每个**服务端的启动指令的 `-jar` 参数前添加如下参数。
-
- ::: code-group
-
- ``` bash-vue [需要添加的内容]
- -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil
- ```
-
- ``` bash-vue [Waterfall / BungeeCord 完整的启动指令示例]
- java -Xms512M -Xmx512M -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar waterfall-562.jar
- ```
-
- ``` bash-vue [Paper 子服务器 完整的启动指令示例]
- java -Xms4G -Xmx16G -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar paper-1.20.4-409.jar --nogui
- ```
-
- :::
+---
+outline: [2, 3]
+---
+
+
+
+
+# authlib-injector
+
+> authlib-injector 为玩家提供统一的非 Mojang 登录体验。大多数的外置登录都使用 authlib-injector 来实现。
+
+> [!WARNING] 这不是插件,也不是 Mod
+> authlib-injector 使用方式较为特殊,将其 JAR 文件放入服务端的 `plugins/` 或 `mods/` 目录下不会有任何作用。
+
+## 获取 JAR 文件
+
+
+
+下载 `authlib-injector-{{ latest }}.jar` 文件后,将其放入 **服务端启动脚本** 或 **服务端文件** 所在的文件夹中。
+
+## 配置各类服务端
+
+> [!TIP] 🤗 在面板服上配置 authlib-injector
+> 配置 authlib-injector 时不可避免地需要修改服务端启动命令/参数。
+>
+> 部分 Minecraft 服务器租赁商可能会使用 [MCSManager](https://mcsmanager.com/) 或 [Pterodactyl® Panel 翼龙面板](https://pterodactyl.io/) 等 Minecraft 服务器管理面板以便销售和管理服务器实例。
+>
+> 有些用户可能无法自行修改服务端启动命令/参数。**请与服务器租赁商沟通,让其帮助你配置。**
+
+### 单服务端(非群组服)
+
+1. 将服务器配置文件 `server.properties` 中 `online-mode` 一项的值设为 `true`
+
+ ::: code-group
+
+ ``` properties:line-numbers=23 [server.properties]
+ online-mode=true
+ ```
+
+ :::
+
+2. 在你的服务端的启动指令的 `-jar` 参数前添加如下参数
+
+ ::: code-group
+
+ ``` bash-vue [需要添加的内容]
+ -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil
+ ```
+
+ ``` bash-vue [完整的启动指令示例]
+ java -Xms4G -Xmx16G -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar paper-1.20.4-409.jar --nogui
+ ```
+
+ :::
+
+ - `authlib-injector-{{ latest }}.jar` 为指向 authlib-injector 的 `jar` 的路径或文件名
+ - `https://littleskin.cn/api/yggdrasil` 为 LittleSkin 的 Yggdrasil API 地址
+
+### Velocity
+
+Modern forwarding 是 Velocity 支持的一种独创格式。它以高效的二进制格式转发所有玩家信息。但是,它仅适用于 Minecraft 1.13 或更高版本。
+
+> [!TIP] 提示
+> 本文仅会对「为 Velocity modern forwarding 配置 LittleSkin 外置登录」做出说明。
+>
+> 本案例使用 Velocity + Paper 作为示例。
+>
+> 具体的 Velocity 配置请结合参考 [Velocity 文档](https://docs.papermc.io/velocity/player-information-forwarding#configuring-modern-forwarding)。
+
+
+
+- 对于以上所有
+
+ **每个**服务端都应该配置 authlib-injector,以便其能正确地处理外置登录。
+
+ 在**每个**服务端的启动指令的 `-jar` 参数前添加如下参数。
+
+ ::: code-group
+
+ ``` bash-vue [需要添加的内容]
+ -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil
+ ```
+
+ ``` bash-vue [Velocity 完整的启动指令示例]
+ java "-Dauthlibinjector.disableHttpd" -Xms512M -Xmx512M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar velocity-3.3.0-SNAPSHOT-351.jar
+ ```
+
+ ``` bash-vue [Paper 子服务器 完整的启动指令示例]
+ java -Xms4G -Xmx16G -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar paper-1.20.4-409.jar --nogui
+ ```
+
+ :::
+
+ - `authlib-injector-{{ latest }}.jar` 为指向 authlib-injector 的 `jar` 的路径或文件名
+ - `https://littleskin.cn/api/yggdrasil` 为 LittleSkin 的 Yggdrasil API 地址
+
+### Waterfall / BungeeCord
+
+BungeeCord 和 Waterfall 属于亲兄弟好姐妹,因此,以下配置同时适用于两者。
+
+- 对于 Waterfall / BungeeCord
+
+ 检查 `config.yml`,确保 `online-mode` 项的值为 **`true`** :point_left:
+
+ ::: code-group
+
+ ``` yaml:line-numbers=17 [config.yml]
+ online-mode: true
+ ```
+
+ :::
+
+- 对于子服务端
+
+ 检查 `server.properties` 文件,确保 `online-mode` 项的值为 **`false`** :point_left:
+
+ ::: code-group
+
+ ``` properties:line-numbers=23 [server.properties]
+ online-mode=false
+ ```
+
+ :::
+
+- 对于以上所有
+
+ **每个**服务端都应该配置 authlib-injector,以便其能正确地处理外置登录。
+
+ 在**每个**服务端的启动指令的 `-jar` 参数前添加如下参数。
+
+ ::: code-group
+
+ ``` bash-vue [需要添加的内容]
+ -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil
+ ```
+
+ ``` bash-vue [Waterfall / BungeeCord 完整的启动指令示例]
+ java -Xms512M -Xmx512M -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar waterfall-562.jar
+ ```
+
+ ``` bash-vue [Paper 子服务器 完整的启动指令示例]
+ java -Xms4G -Xmx16G -javaagent:authlib-injector-{{ latest }}.jar=https://littleskin.cn/api/yggdrasil -jar paper-1.20.4-409.jar --nogui
+ ```
+
+ :::
diff --git a/docs/yggdrasil/index.md b/docs/yggdrasil/index.md
index 1778847..f1bbc2b 100644
--- a/docs/yggdrasil/index.md
+++ b/docs/yggdrasil/index.md
@@ -1,85 +1,71 @@
-# Yggdrasil 外置登录
-
-LittleSkin 提供 Yggdrasil 验证鉴权服务。
-
-外置登录需要配合其他技术一起实现。外置登录可以为玩家提供统一的非 Mojang 游戏外登录体验,并在不安装皮肤 Mod 的情况下加载来自 LittleSkin 的材质。
-
-## Yggdrasil API 地址
-
-LittleSkin 的 Yggdrasil API 的地址是:
-
-``` http
-https://littleskin.cn/api/yggdrasil
-```
-
-::: tip API 地址指示
-
-LittleSkin 已在全站启用 authlib-injector 的 API 地址指示(ALI)功能。
-
-因此,在支持此功能的启动器上,直接输入 `littlesk.in` 即可被识别。一下子就简单了很多 :tada:
-
-:::
-
----
-
-
-在 Minecraft 游戏中使用 Yggdrasil 外置登录,进行多人游戏鉴权和材质加载
-
-
-为各类 Minecraft 服务端配置 Yggdrasil 外置登录
-
-
----
-
-::: warning 有点高级
-以下部分是面向开发者和多人游戏服务器管理员的,普通用户可能无法理解。
-
-如果你看不懂下面在说些什么,直接忽略这部分内容即可,这并不会影响你正常使用 LittleSkin 的基础功能。
-:::
-
-## 什么是外置登录?
-
-没有正版 Minecraft 账户的玩家通常都会使用 **离线登录** 来启动游戏,Minecraft 服务端提供了启用离线模式的选项。
-
-- 🏴☠️ 玩家只需要用户名即可进入服务端,服务端并不会验证进服玩家身份的合法性;
-- 😕 玩家在游戏中的样貌只能是 Steve 或 Alex 之类的默认皮肤,而不能是自定义的材质。
-
-为了让玩家在游戏中能欣赏到各自的皮肤,CustomSkinLoader 和 SkinsRestorer 等 Mod 或插件被广泛使用。
-
-但离线登录的鉴权机制给予了恶意玩家们极大的发挥空间。他们会冒充其他玩家进入服务器行偷鸡摸狗之事,零成本的批量账号更是轰炸小型服务器的绝妙武器。
-
-因此而头疼的服务器管理员们会为服务器安装诸如 AuthMe 之类的登录插件,以尽可能杜绝上述事项。然而,对服务器管理员来说,登录插件的配置过程称不上简单;对于玩家来说,改名、忘记密码等操作更是繁琐。
-
----
-
-上述现象都是离线登录机制导致的。如果使用正版登录,基本不用为之操劳。
-
-而 **外置登录**,如同正版登录一样,可以避开上述问题。
-
-> 其实,在游戏内部,外置登录的工作方式几乎如正版登录一模一样。
-
-如果将正版登录理解为游戏中官方的纯正的「内置登录」的话,那么「外置登录」的意思就很好理解了:
-
-**将 Minecraft 官方的登录鉴权服务器地址,通过一些手段,替换为第三方的登录鉴权服务器地址。**
-
-- 🔐 可控的鉴权
-- 👔 自定义皮肤 / 披风
-- 👍️ 极强的兼容性
-
-只有玩家和服务器两端都正确配置后,外置登录才能正常工作。因此外置登录并不能用来登录至采用正版登录的服务器。
-
-如果仅仅是单人游戏,无需借助 Mod 即可在游戏内欣赏到自定义的皮肤也是一个不小的亮点。
-
-## authlib-injector
-
-> authlib-injector 为玩家提供统一的非 Mojang 登录体验。大多数的外置登录都使用 authlib-injector 来实现。
-
-你可以在 下载到最新版本的 authlib-injector。
-
-开发者文档:[GitHub / authlib-injector / wiki](https://github.com/yushijinhun/authlib-injector/wiki)
-
-## MultiLogin
-
-> MultiLogin 是一款服务端插件, 功能是让您的服务器支持正版与多种外置登录共存, 用来连接两个或多个外置验证服务器下的玩家,让他们能在一起玩。
-
-此插件专为服务端设计。服务器管理员可参考此文档:[GitHub / MultiLogin / wiki](https://github.com/CaaMoe/MultiLogin/wiki)
+# Yggdrasil 外置登录
+
+LittleSkin 提供 Yggdrasil 验证鉴权服务,也被简单地称为外置登录。
+
+外置登录可以为玩家提供统一的非 Mojang 游戏外登录体验,并在不安装皮肤 Mod 的情况下加载来自 LittleSkin 的材质。
+
+> [!WARNING] 外置登录不是联机服务
+> LittleSkin 可以在联机时提供皮肤和鉴权服务,但不提供联机服务本身。
+
+## Yggdrasil API 地址
+
+LittleSkin 的 Yggdrasil API 的地址是:
+
+```plain
+https://littleskin.cn/api/yggdrasil
+```
+
+> [!NOTE] 😎 简化冗长的地址
+> LittleSkin 已在全站启用 authlib-injector 的 API 地址指示(ALI)功能。
+>
+> 在支持此功能的启动器上,直接输入 `littlesk.in` 即可被识别并自动转化为完整地址。
+
+---
+
+
+在 Minecraft 游戏中使用 Yggdrasil 外置登录,进行多人游戏鉴权和材质加载
+
+
+为各类 Minecraft 服务端配置 Yggdrasil 外置登录
+
+
+---
+
+> [!WARNING] 有点高级
+> 以下部分是面向开发者和多人游戏服务器管理员的,普通用户可能无法理解。
+>
+> 如果你看不懂下面在说些什么,直接忽略这部分内容即可,这并不会影响你正常使用 LittleSkin 的基础功能。
+
+
+## 什么是外置登录?
+
+没有正版 Minecraft 账户的玩家通常都会使用 **离线登录** 来启动游戏,Minecraft 服务端提供了启用离线模式的选项。
+
+- 🏴☠️ 玩家只需要用户名即可进入服务端,服务端并不会验证进服玩家身份的合法性;
+- 😕 玩家在游戏中的样貌只能是 Steve 或 Alex 之类的默认皮肤,而不能是自定义的材质。
+
+为了让玩家在游戏中能欣赏到各自的皮肤,CustomSkinLoader 和 SkinsRestorer 等 Mod 或插件被广泛使用。
+
+但离线登录的鉴权机制给予了恶意玩家们极大的发挥空间。他们会冒充其他玩家进入服务器行偷鸡摸狗之事,零成本的批量账号更是轰炸小型服务器的绝妙武器。
+
+因此而头疼的服务器管理员们会为服务器安装诸如 AuthMe 之类的登录插件,以尽可能杜绝上述事项。然而,对服务器管理员来说,登录插件的配置过程称不上简单;对于玩家来说,改名、忘记密码等操作更是繁琐。
+
+---
+
+上述现象都是离线登录机制导致的。如果使用正版登录,基本不用为之操劳。
+
+而 **外置登录**,如同正版登录一样,可以避开上述问题。
+
+> 其实,在游戏内部,外置登录的工作方式几乎如正版登录一模一样。
+
+如果将正版登录理解为游戏中官方的纯正的「内置登录」的话,那么「外置登录」的意思就很好理解了:
+
+**将 Minecraft 官方的登录鉴权服务器地址,通过一些手段,替换为第三方的登录鉴权服务器地址。**
+
+- 🔐 可控的鉴权
+- 👔 自定义皮肤 / 披风
+- 👍️ 极强的兼容性
+
+只有玩家和服务器两端都正确配置后,外置登录才能正常工作。因此外置登录并不能用来登录至采用正版登录的服务器。
+
+如果仅仅是单人游戏,无需借助 Mod 即可在游戏内欣赏到自定义的皮肤也是一个不小的亮点。
diff --git a/docs/yggdrasil/server.md b/docs/yggdrasil/server.md
index efe1cec..f74af3f 100644
--- a/docs/yggdrasil/server.md
+++ b/docs/yggdrasil/server.md
@@ -1,28 +1,30 @@
----
-outline: false
----
-
-
-
-# 在服务端配置 Yggdrasil 外置登录
-
----
-
-
-
-
-了解如何通过 authlib-injector 配置 Yggdrasil 外置登录。
-
-
-了解如何通过 MultiLogin 配置 Yggdrasil 外置登录。
-
-
-## 什么?太复杂了?或是没看明白?
-
-
-
-
-通过 💰赞助支持 来获取高质量的一对一技术支持服务
-
+---
+outline: false
+---
+
+
+
+# 在服务端配置 Yggdrasil 外置登录
+
+在 Minecraft 服务端侧,存在多种配置外置登录的方式。
+
+---
+
+
+
+
+可设置单一的 Yggdrasil 外置登录服务,适合绝大多数场景
+
+
+可配置多个 Yggdrasil 外置登录服务,以实现 正版+外置 共存
+
+
+## 什么?太复杂了?或是没看明白?
+
+
+
+
+通过 💰赞助支持 来获取高质量的一对一技术支持服务
+