# Languages (语言)

[EN/English](https://lyuwenhan.github.io/extensions/minecraft-java/data/assets/shared-player-data/README/README.html) | [ZH-CN/简体中文](https://lyuwenhan.github.io/extensions/minecraft-java/data/assets/shared-player-data/README/README_ZH-CN.html)

# Shared Player Data (玩家数据同步)

一个 **服务端 Fabric 模组**，用于让指定在线玩家通过管理员绑定，共享同一份持久化玩家档案数据。

---

## 概述

Shared Player Data 允许服务器管理员将玩家绑定到同一个共享档案组中。

绑定完成后，这些玩家会共享同一份持久化游戏状态，包括原版玩家数据，例如背包、位置、经验、生命值、统计、进度以及相关的玩家存档数据。

同一绑定组内同一时间只允许一名玩家在线。如果同组的其他玩家在共享档案已被使用时尝试加入服务器，将会收到原版的异地登录提示并被拒绝进入。

---

## 主要功能

* 使用简单命令绑定两个在线玩家
* 绑定玩家共享同一份持久化玩家档案
* 同一绑定组同一时间只允许一名玩家在线
* 共享档案被占用时使用原版异地登录提示
* 命令支持在线玩家名称补全
* 自动保存绑定配置
* 同步绑定组内玩家的 OP 状态
* 面向专用服务器设计
* 客户端无需安装

---

## 命令

```mcfunction
/playerbind <name1> <name2>
```

### 行为

* 绑定时两名玩家都必须在线
* `<name1>` 保持在线
* `<name2>` 会被绑定到同一个共享档案组，然后被断开连接
* 命令需要 level 4 权限
* level 4 OP、服务端控制台和 RCON 均可使用

### 限制

* 第一个玩家和第二个玩家不能是同一人
* 玩家不能把自己作为第二个目标绑定

---

## OP 状态同步

同一绑定组内的玩家会同步 OP 状态。

如果绑定组中的某个成员被授予 OP，组内其他已知成员也会获得 OP。

如果绑定组中的某个成员被移除 OP，组内其他已知成员也会被移除 OP。

---

## 多人游戏行为

* 绑定玩家共享同一份持久化游戏档案
* 同一时间只有一名绑定玩家可以使用该共享档案
* 当共享档案已被同组成员占用时，其他同组玩家会收到原版异地登录提示
* 不在绑定组内的玩家不受影响

---

## 服务端安全性

* 仅服务端运行
* 面向专用服务器
* 客户端无需安装模组
* 不要求玩家安装任何内容
* 不修改玩家认证身份
* 保留真实玩家账号身份，同时共享绑定后的游戏数据
* 阻止多人同时访问同一份共享档案

---

## 配置

模组配置文件位于：

```text
config/shared-player-data.json
```

通过命令创建的绑定会自动保存。

如需手动修改配置，应先停止服务器。

---

## 支持版本

* Minecraft 26.1.2
* Fabric Loader 0.19.2+
* Fabric API 0.150.0+
* Java 25

---

## 许可证

MIT
