跳到主要内容

物品溯源

物品溯源系统记录玩家获取物品的来源,帮助管理员追踪异常物品的流入途径。

工作原理

插件监听玩家执行的命令,当命令匹配配置的关键词时,延迟检查玩家手持物品并记录溯源信息。

监听流程

玩家执行命令(如 /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 条