# MC Data Bridge
MC Data Bridge 是一个 Spigot/Paper 插件,旨在无缝同步多个 Minecraft 服务器上的玩家数据。 这允许玩家在链接的服务器之间移动(例如,一个 Towny 服务器和一个资源服务器),并保留他们的生命值、饥饿度、经验值、物品栏、盔甲和活动药水效果。
## 特点
* **跨服务器玩家数据同步:** 同步核心玩家数据,包括:
* 生命值
* 食物等级和饱和度
* 经验值(总经验值、当前经验值和等级)
* 物品栏内容
* 盔甲内容
* 活动药水效果
* **可配置的数据库连接:** 轻松连接到你的 MySQL 数据库。
* **灵活的同步组:** 使用不同的数据库凭据或表名为不同的服务器集合创建不同的同步组。 例如,你可以为你的“Towny”服务器使用一个数据库,为你的“原版”服务器使用另一个数据库,确保仅在这些特定的组中同步数据。
## 安装
1. **构建插件:**
* 在你的终端中导航到插件的根目录。
* 运行 `mvn clean package` 以构建插件。
* 编译后的 JAR 文件 (`mc-data-bridge-1.21.8.1-shaded.jar`) 将位于 `target/` 目录中。
2. **部署到服务器:**
* 将 `mc-data-bridge-1.21.8.1-shaded.jar` 文件复制到你希望同步的每个 PaperMC 服务器的 `plugins/` 文件夹中。
## 配置
第一次运行后(或你可以手动创建它),将在 `plugins/mc-data-bridge/` 文件夹中生成一个 `config.yml` 文件。 你**必须**使用你的 MySQL 数据库凭据更新此文件。
```yaml
database:
host: localhost
port: 3306
database: minecraft
username: user
password: password
debug: false
```
* **`database.host`**: 你的 MySQL 数据库主机(例如,`localhost`、`127.0.0.1`、远程 IP 或 [Docker 命名卷](https://docs.docker.com/storage/volumes/#create-and-manage-volumes) 如果你的数据库在 Docker 中运行)。
* **`database.port`**: 你的 MySQL 数据库运行的端口(默认为 `3306`)。
* **`database.database`**: 用于玩家数据的数据库名称。
* **`database.username`**: 用于连接到数据库的用户名。
* **`database.password`**: 数据库用户的密码。
* **`debug`**: 设置为 `true` 以启用服务器控制台中详细的调试消息。 设置为 `false` 以进行正常操作。
### 同步多个服务器组
要同步特定服务器组(例如,一个 Towny 服务器和一个 Towny 资源服务器,与一个创造服务器分开)之间的玩家数据,只需配置 `database.database`(甚至完全不同的 `database.host`、`username`、`password`)以匹配你想要链接的服务器。
**示例:**
* **Towny 服务器 (Towny-Main, Towny-Resource):**
```yaml
database:
host: my_db_host
port: 3306
database: towny_player_data # 所有 Towny 服务器使用此数据库
username: towny_user
password: towny_password
debug: false
```
* **创造服务器 (Creative-Build, Creative-Minigame):**
```yaml
database:
host: my_db_host
port: 3306
database: creative_player_data # 所有 Creative 服务器使用此数据库
username: creative_user
password: creative_password
debug: false
```
## 使用方法
1. **添加 JAR:** 将 `mc-data-bridge-1.21.8.1-shaded.jar` 文件放入所有 PaperMC 服务器的 `plugins/` 文件夹中。
2. **配置:** 编辑每个服务器的 `plugins/mc-data-bridge/` 文件夹中的 `config.yml`,使用适合你所需同步组的数据库凭据。
3. **重启服务器:** 重启你的 Minecraft 服务器容器(或服务器本身)以应用插件和配置更改。
4. **尽情享受吧!** 玩家现在可以无缝切换你的链接服务器,他们的数据将自动同步。
## 重要提示
* 此插件需要 **MySQL 数据库** 才能运行。 确保你的数据库服务器可以从你的 Minecraft 服务器访问。
* 插件将在你指定的数据库中自动创建 `player_data` 表,如果它尚未存在。
* 你可能会在编译时仍然看到关于已弃用 API 的警告。 这些通常是无害的,并且不会阻止插件正常运行。