Skip to content
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 48 additions & 46 deletions src/content/docs/java/process/mobile-player/geyser/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,57 +16,59 @@ Geyser 有以下版本类型:

其中:

Spigot 版本 可以作为插件安装在以 Spigot 及其分叉 (如 Paper) 为核心的服务端上
Spigot 版本 可以作为插件安装在以 Spigot 及其分叉 (如 Paper) 为核心的服务端上

BungeeCord、Velocity 和 ViaProxy 版本 可以作为插件安装在这些代理端上
BungeeCord、Velocity 和 ViaProxy 版本 可以作为插件安装在这些代理端上

Fabric 和 NeoForge 版本 可以作为模组安装在这些模组端上
Fabric 和 NeoForge 版本 可以作为模组安装在这些模组端上

Standalone 版本 可以作为一个独立的代理端启动
Standalone 版本 可以作为一个独立的代理端启动

## 挑选版本

在安装前,你需要找到合适的 Geyser 版本,你可以参考下图:

![version](_assets/VersionChoose.png)

- 1、运行独立版 **仍需要 Java16** 及以上环境,只不过你可以将其和目标服务器所处的 Java 环境隔开 此外 **在任何情况下**,你都可使用独立版,甚至独立版可以和其目标不在同一服务器上
- 2、你可以通过 ViaVersion 插件来适配版本,这会允许不同版本的玩家进入服务器,不过问题不大
- 3、[Hydraulic](https://github.com/GeyserMC/Hydraulic) 可以允许你加入带客户端模组的服务器,但是项目处于 **早期开发阶段**,你可以做个尝试,但是请不要在实际情况下使用
- 运行独立版 **仍需要 Java16** 及以上环境,只不过你可以将其和目标服务器所处的 Java 环境隔开 此外 **在任何情况下**,你都可使用独立版,甚至独立版可以和其目标不在同一服务器上
- 你可以通过 ViaVersion 插件来适配版本,这会允许不同版本的玩家进入服务器,不过问题不大
- [Hydraulic](https://github.com/GeyserMC/Hydraulic) 可以允许你加入带客户端模组的服务器,但是项目处于 **早期开发阶段**,你可以做个尝试,但是请不要在实际情况下。使用

## 下载

你可以在此处下载 [Geyser](https://geysermc.org/download#geyser) 的对应版本
你可以在此处下载 [Geyser](https://geysermc.org/download#geyser) 的对应版本

下载镜像:[MCSL](https://sync.mcsl.com.cn/core/Geyser)

## 安装

### 其他版本

作为插件或模组安装到对应文件夹即可
作为插件或模组安装到对应文件夹即可

### 独立版

独立版作为一个单独的服务端,你可以参考 [此处](/java/start/launch-server) 的开启方法
独立版作为一个单独的服务端,你可以参考 [此处](/java/start/launch-server) 的开启方法

## 配置

找到配置文件夹下的 config.yml

(什么,你连配置文件夹都找不到?那你真是连笨蛋都不如,配置文件在对应版本 Geyser 名称的文件夹下,一般开启服务器后都会生成)
什么,你连配置文件夹都找不到?~~那你真是连笨蛋都不如~~,配置文件在对应版本 Geyser 名称的文件夹下,一般开启服务器后都会生成。)

:::danger

作为一个新手,在本教程未提及前,请不要随意更改任何配置项
作为一个新手,在本教程未提及前,请不要随意更改任何配置项

:::

第一眼你可能会被全是英文的配置文件镇住,别急,善用翻译来理解配置文件中的注释,
**在完成本教程的基础配置配置后,若需进阶,请参考 [此处](https://docs.superiormc.cn/v/geyser-wiki/user-guide/li-jie-pei-zhi) 的配置参考**
第一眼你可能会被全是英文的配置文件镇住,别急,善用翻译来理解配置文件中的注释~

**在完成本教程的基础配置配置后,若需进阶,请参考 [此处](https://docs.superiormc.cn/v/geyser-wiki/user-guide/li-jie-pei-zhi) 的配置参考**。

接下来,回到配置,映入你眼帘的应该是 bedrock 和 remote 两个大项:

bedrock 所代表的是你所开放的端口,也是基岩版玩家看到的那个,remote 是连接的目标服务器,若不使用独立版此选项无效,请不要随意更改
bedrock 所代表的是你所开放的端口,也是基岩版玩家看到的那个,remote 是连接的目标服务器,若不使用独立版此选项无效,请不要随意更改

```yaml
bedrock:
Expand All @@ -92,25 +94,25 @@ remote:

### Bedrock 项

**`port`**:其代表你向基岩版玩家所开放的端口,在设置端口时请不要低于 10000
**`port`**:其代表你向基岩版玩家所开放的端口,在设置端口时请不要低于 10000

**`motd1`** 和 **`motd2`**:其代表向基岩版玩家所显示的 MOTD,可根据你的喜好配置,仅支持最基础的颜色符号
**`motd1`** 和 **`motd2`**:其代表向基岩版玩家所显示的 MOTD,可根据你的喜好配置,仅支持最基础的颜色符号

**`server-name`**:基岩版所看到的服务器名称,在暂停菜单和设置中可见
**`server-name`**:基岩版所看到的服务器名称,在暂停菜单和设置中可见

### Remote 项

**`address`**:其代表目标服务器的地址,若目标服务器和 Geyser 处于同一服务器下请不要更改
**`address`**:其代表目标服务器的地址,若目标服务器和 Geyser 处于同一服务器下请不要更改

**`port`**:(重要选项) 请和目标服务器 (插件版必须与`server-port`一致) 一致对外开放的端口一致
**`port`**:(重要选项请和目标服务器 (插件版必须与`server-port`一致) 一致对外开放的端口一致

**`auth-type`**:有 offline/online 和 floodgate 模式,offline 和 online 分别对应离线和正版,你目标服务器用的什么就选什么,Floodgate 会在后续教程中解释
**`auth-type`**:有 offline/online 和 floodgate 模式,offline 和 online 分别对应离线和正版,你目标服务器用的什么就选什么,Floodgate 会在后续教程中解释

### 其他项

再往下翻你会注意到不少其他乱七八糟的项
再往下翻你会注意到不少其他乱七八糟的项

这里挑几个重点
这里挑几个重点

```yaml
passthrough-motd: true
Expand Down Expand Up @@ -155,48 +157,48 @@ Floodgate 是一个允许 **Minecraft 基岩版** 帐号加入 **Minecraft Java
- 提供一个通用的 API,使更多插件可以兼容基岩版玩家
- 以基岩版 XUID 作为 UUID 储存数据,使在基岩版玩家改名后不丢失数据

所以就算 **非正版服务器**,也有 **必要** 安装此插件来获取更强大的兼容性
所以就算 **非正版服务器**,也有 **必要** 安装此插件来获取更强大的兼容性

此外,Floodgate 有个小缺点,在安装之后你无法直接使基岩版玩家和 Java 版玩家数据互通,这将在进阶教程中给出两个可行的解决办法
此外,Floodgate 有个小缺点,在安装之后你无法直接使基岩版玩家和 Java 版玩家数据互通,这将在进阶教程中给出两个可行的解决办法

### 基础配置

:::caution

由于 Floodgate 在设计时并未考虑离线服务器
由于 Floodgate 在设计时并未考虑离线服务器

接下来的教程中将告诉你如何进行调整以更好的适配离线服
接下来的教程中将告诉你如何进行调整以更好的适配离线服

:::

:::caution

若你在使用独立版 Geyser 或群组服,请翻到下方跟随对应教程完成安装
若你在使用独立版 Geyser 或群组服,请翻到下方跟随对应教程完成安装

:::

安装 Floodgate 后,打开配置文件,注意到以下项
安装 Floodgate 后,打开配置文件,注意到以下项

```yaml
username-prefix: "."
```

这是 Floodgate 为了区分基岩版玩家和 Java 版玩家,而在基岩版玩家名称前添加的前缀
这是 Floodgate 为了区分基岩版玩家和 Java 版玩家,而在基岩版玩家名称前添加的前缀

为什么?

因为在安装 Floodgate 后,基岩版玩家的 UUID 将会和 Java 版玩家有很大不同。
若是遇到重名,则会出现一个 ID 拥有两个完全不同的 UUID,这可能会发生一些无法预知的错误,而使用 `.` 前缀是因为 Java 正版玩家名中不可使用 `.`
若是遇到重名,则会出现一个 ID 拥有两个完全不同的 UUID,这可能会发生一些无法预知的错误,而使用 `.` 前缀是因为 Java 正版玩家名中不可使用 `.`

**但是**
这在离线服中,有几个问题:

- 离线服玩家名是可以任意修改的,所以 Java 玩家一样可以使用相同前缀进入服务器
- 部分登录插件会禁止诸如带有 `.` 玩家名的玩家进入服务器,这会导致基岩版玩家无法进入服务器
- 离线服玩家名是可以任意修改的,所以 Java 玩家一样可以使用相同前缀进入服务器
- 部分登录插件会禁止诸如带有 `.` 玩家名的玩家进入服务器,这会导致基岩版玩家无法进入服务器

接下来我们来解决这些问题

要解决第一个问题,由于离线服务器玩家可以使用任何名称进入服务器,我们可以选择禁止所有使用基岩版玩家名前缀的 Java 玩家进入服务器
要解决第一个问题,由于离线服务器玩家可以使用任何名称进入服务器,我们可以选择禁止所有使用基岩版玩家名前缀的 Java 玩家进入服务器

**此部分未完工,咕咕咕!**

Expand All @@ -209,9 +211,9 @@ username-prefix: "BE_"

### 独立版 Geyser 配置

首先,按照基础配置在目标服务器安装 Floodgate,然后注意到 Floodgate 配置文件夹下,理应会生成一个叫 `key.pem` 的文件,将其复制到独立版 Geyser 配置文件夹下
首先,按照基础配置在目标服务器安装 Floodgate,然后注意到 Floodgate 配置文件夹下,理应会生成一个叫 `key.pem` 的文件,将其复制到独立版 Geyser 配置文件夹下

然后来到 Geyser 配置文件
然后来到 Geyser 配置文件

找到 Remote 项中的 **`auth-type`**,并将其改为 **`floodgate`**

Expand All @@ -220,43 +222,43 @@ remote:
auth-type: floodgate
```

若 Geyser 已开启,则重启 Geyser 即可完成配置
若 Geyser 已开启,则重启 Geyser 即可完成配置

### 群组服配置

首先,在群组端安装 Floodgate,并按照基础配置完成安装
首先,在群组端安装 Floodgate,并按照基础配置完成安装

:::caution

不要将子服中的 Floodgate 配置直接复制到群组服,会缺少某个重要项
不要将子服中的 Floodgate 配置直接复制到群组服,会缺少某个重要项

:::

接下来来到群组服的 Floodgate 配置,找到 **`send-floodgate-data`** 这一项,将其修改为 `true`
接下来来到群组服的 Floodgate 配置,找到 **`send-floodgate-data`** 这一项,将其修改为 `true`

```yaml
send-floodgate-data: true
```

这样子服就可以接收到来自群组服的基岩版玩家数据了,请注意在开启此项后,若子服不安装 Floodgate 则基岩版玩家则无法进入子服,但是此项很重要,若不开启,则在子服中 Floodgate 不起效果
这样子服就可以接收到来自群组服的基岩版玩家数据了,请注意在开启此项后,若子服不安装 Floodgate 则基岩版玩家则无法进入子服,但是此项很重要,若不开启,则在子服中 Floodgate 不起效果

接下来,在子服一一安装 Floodgate 并确保和群组服的 Floodgate 配置一致,然后注意到群组端 Floodgate 配置文件夹下,理应会生成一个叫 `key.pem` 的文件。
用群组服的 `key.pem` 将子服中的 `key.pem` 覆盖,确保两个文件完全相同
用群组服的 `key.pem` 将子服中的 `key.pem` 覆盖,确保两个文件完全相同

即可完成群组端配置

## 笨蛋脚本

:::tip

该脚本只适合单端,不适合群组服
该脚本只适合单端,不适合群组服

:::

下载 [脚本](https://script.8aka.org/geyser-egg),为你自动生成 Geyser 环境,免于配置
下载 [脚本](https://script.8aka.org/geyser-egg),为你自动生成 Geyser 环境,免于配置

即使不用配置,你仍然需要看完 wiki,**明白你在做什么**
即使不用配置,你仍然需要看完 wiki,**明白你在做什么**

## 结尾

恭喜你,配置完毕!!,开始和你的好友一起玩吧
恭喜你,配置完毕!开始和你的好友一起玩吧