物品溯源
物品溯源系统记录玩家获取物品的来源,帮助管理员追踪异常物品的流入途径。
工作原理
插件监听玩家执行的命令,当命令匹配配置的关键词时,延迟检查玩家手持物品并记录溯源信息。
监听流程
玩家执行命令(如 /give, /i, /item)
↓
匹配溯源命令关键词
↓
延迟 5 tick 等待命令执行完成
↓
检查玩家主手物品
↓
记录溯源信息到 YAML 文件
配置
tracing:
enabled: true
sources:
- "lottery"
- "command"
- "point-shop"
command-keywords:
- "give"
- "i"
- "item"
| 参数 | 说明 |
|---|---|
enabled | 是否启用溯源功能 |
sources | 记录的来源类型标签 |
command-keywords | 触发溯源记录的命令关键词 |
溯源记录
每条溯源记录(TraceRecord)包含:
| 字段 | 说明 |
|---|---|
playerUuid | 玩家 UUID |
playerName | 玩家名称 |
source | 来源类型(如 command) |
itemDescription | 物品描述(Material + 显示名称) |
amount | 物品数量 |
timestamp | 记录时间戳 |
存储
溯源记录按玩家 UUID 存储在 plugins/EMC大数据/traces/ 目录下:
traces/
12345678-1234-1234-1234-123456789abc.yml
87654321-4321-4321-4321-cba987654321.yml
每个文件格式:
player-name: "Steve"
uuid: "12345678-1234-1234-1234-123456789abc"
records:
- "1704067200000|command|DIAMOND(氪金钻石)|5"
- "1704063600000|lottery|GOLD_INGOT(限定金锭)|3"
查询溯源
使用 /emcdata trace <玩家> [数量] 命令查询玩家的溯源记录:
/emcdata trace Steve # 查看最近 10 条
/emcdata trace Steve 20 # 查看最近 20 条