[MD]
# ScoreBoardSync - 计分板数据导出插件
基于 LegacyScriptEngine 的 Minecraft 基岩版计分板数据导出插件,用于扫描服务器现有的所有计分板并导出所有玩家的分数数据。
## 功能特性
- ✅ **白名单计分板扫描** - 只扫描配置文件白名单中指定的计分板
- ✅ **导出所有玩家分数** - 获取白名单计分板中所有玩家的分数数据(在线+离线)
- ✅ **智能玩家数据获取** - 优先使用官方API获取离线玩家,提供多重备用机制
- ✅ **白名单管理** - 通过命令动态添加、删除、查看白名单中的计分板
- ✅ **服务器启动自动导出** - 服务器启动时自动扫描和导出数据
- ✅ **手动触发导出** - 通过 `/jfb export` 命令手动导出
- ✅ **详细数据记录** - 包含玩家名、分数、XUID、UUID、时间戳、在线状态
- ✅ **导出报告** - 显示导出统计和详细信息
- ✅ **JSON格式存储** - 易于读取和处理的数据格式
## 安装说明
## 导出数据格式
插件会在 `plugins/ScoreBoardSync/ScoreBoard.json` 创建导出文件,格式如下:
```json
{
"whitelist": [
"money",
"level",
"kills"
],
"scoreboards": {
"money": {
"displayName": "金钱",
"players": {
"PlayerName1": {
"score": 1000,
"xuid": "2535428477519093",
"uuid": "12345678-1234-1234-1234-123456789abc",
"lastUpdate": "2024-01-01T12:00:00.000Z",
"isOnline": true
},
"PlayerName2": {
"score": 500,
"xuid": "2535428477519094",
"uuid": "87654321-4321-4321-4321-cba987654321",
"lastUpdate": "2024-01-01T12:00:00.000Z",
"isOnline": false
}
},
"playersCount": 2,
"lastExport": "2024-01-01T12:00:00.000Z"
},
"level": {
"displayName": "等级",
"players": {
"PlayerName1": {
"score": 15,
"xuid": "2535428477519093",
"uuid": "12345678-1234-1234-1234-123456789abc",
"lastUpdate": "2024-01-01T12:00:00.000Z",
"isOnline": true
}
},
"playersCount": 1,
"lastExport": "2024-01-01T12:00:00.000Z"
}
},
"exportTime": "2024-01-01T12:00:00.000Z",
"totalPlayers": 3,
"totalScoreboards": 2
}
```
## 命令使用
**权限要求**: 仅 OP 玩家可以使用游戏内命令
### 游戏内命令
```
/jfb
```
显示所有可用的子命令帮助。
### 子命令
```bash
/jfb export # 扫描并导出白名单中的计分板数据
/jfb report # 显示导出报告和统计信息
/jfb list # 列出白名单中存在的计分板
/jfb whitelist # 管理计分板白名单
```
### 白名单管理命令
```bash
/jfb whitelist list # 显示当前白名单
/jfb whitelist add <计分板名> # 添加计分板到白名单
/jfb whitelist remove <计分板名> # 从白名单移除计分板
/jfb whitelist clear # 清空白名单
```
### 控制台命令
```bash
jfb export # 控制台版本的导出命令
jfb report # 控制台版本的报告命令
jfb list # 控制台版本的列表命令
jfb whitelist list # 控制台查看白名单
```
## 工作原理
### 启动时
1. 服务器启动5秒后自动开始扫描
2. 检查配置文件中的白名单
3. 使用 `mc.getScoreObjective(name)` 验证白名单中的计分板是否存在
4. 获取每个存在的计分板中所有玩家的分数(在线+离线)
5. 将数据保存到JSON文件
### 手动导出
1. 使用 `/jfb export` 命令触发
2. 重新扫描白名单中的计分板
3. 重新获取所有玩家数据
4. 覆盖之前的导出数据
5. 更新导出时间戳
### 白名单管理
1. **初始化**: 插件首次运行时会创建包含常见计分板的默认白名单
2. **动态管理**: 可通过命令实时添加、删除白名单中的计分板
3. **持久化**: 白名单修改会立即保存到配置文件
4. **验证**: 导出时会验证白名单中的计分板是否真实存在
## 使用场景
1. **数据备份**: 定期导出计分板数据作为备份
2. **服务器迁移**: 在服务器之间迁移玩家数据
3. **数据分析**: 导出数据进行统计分析
4. **存档管理**: 保存玩家成就和进度数据
5. **插件开发**: 为其他插件提供计分板数据
## 注意事项
- 插件仅在 LeviLamina + LegacyScriptEngine 环境下运行
- 智能获取在线和离线玩家数据,提供多重备用机制
- 导出的数据会覆盖之前的记录
## 版本信息
- 版本: 1.0.0
- 作者: weimu
[/MD]