跳到主要内容

Tracking

记录玩家会话,用粒子回放,并绘制在 BlueMap 上。

免费v0.11世界与建造
依赖TypeWriter0.9PacketEventsBlueMap可选

概览​

Tracking 会每隔固定时间记录每位玩家的位置。玩家每次加入时都会开始一个新的会话,扩展每隔几秒就向其中添加一个点(坐标、世界和时间),直到玩家离开。会话保存在一个构件中。

管理员随后可以查看某个会话。路径会以一条由尘埃粒子组成的动画轨迹围绕管理员重放;如果你使用 BlueMap,还会在网页地图上绘制为一条线,并在每个点上放置标记。这是一个很好的工具,可用来了解玩家如何穿行于你的建筑、在哪里迷路,或复查可疑的会话。

功能​

  • 会话记录 — 每位玩家每次登录一个会话,包含坐标、世界和时间戳。
  • 可配置的间隔 — 每 pointIntervalSeconds 秒记录一个点,默认 20。
  • 游戏内回放 — 只有正在查看的管理员能看到的动画粒子轨迹。
  • BlueMap 显示 — 路径线的颜色取自玩家,并可选择显示点标记。
  • 持久化存储 — 每次变化几秒后,会话会被写入 TypeWriter 构件。
  • 大小受限 — 每个会话最多保留 10,000 个点。
  • 兼容 Folia — 记录和粒子循环使用区域安全的调度器。

安装​

  1. 安装 PacketEvents,TypeWriter 本来就需要它。粒子轨迹通过它发送。
  2. 可选:安装 BlueMap,以便在网页地图上查看会话。
  3. 将 Tracking 的 JAR 放入 plugins/Typewriter/extensions/ 并重启服务器。

快速上手​

  1. 在 TypeWriter 网页面板中,打开一个**清单(manifest)**页面,添加一个 Tracking Artifact。保留其 artifactId(默认为 tracking_storage)。
  2. 添加一个 Tracking Manifest,并在 storage 中链接该构件。如果没有链接构件,则不会记录任何内容。
  3. 设置 pointIntervalSeconds(例如 10),并确认 trackingEnabled 已开启。
  4. 发布。从现在起加入的玩家会获得会话。发布时已经在线的玩家,在重新连接之前不会有会话。
  5. 过一段时间后,运行 /tracking sessions <player> 列出某位玩家的会话 id。
  6. 运行 /tracking inspect <player> <session> 回放某个会话。如果安装了 BlueMap,路径也会出现在地图上。
  7. 不带参数运行 /tracking 即可停止查看。
隐私

Tracking 会存储玩家的精确坐标,且没有过期时间。如果当地法律要求,请在服务器规则中说明这一点,并在不再需要这些数据时清除构件文件。

工作原理​

会话 id 是在所有玩家之间按顺序分配的数字(1、2、3……),而不是每位玩家各自编号。玩家退出时会话结束。

命令​

该命令是注册为 /tracking(也可用 /typewriter:tracking)的标准服务器命令,而不是 /typewriter 的子命令。它只能由玩家使用,并需要 typewriter.tracking.inspect。

命令说明
/tracking sessions <player>列出为某位玩家记录的会话 id。
/tracking inspect <player>列出某位玩家的会话 id。
/tracking inspect <player> <session>开始查看某个会话:为你显示粒子轨迹,如已启用,还会显示 BlueMap 标记。
/tracking停止你的查看,并移除其 BlueMap 标记。

只要服务器知道玩家的名称,你就可以查看离线玩家。

权限​

权限授予
typewriter.tracking.inspect所有 /tracking 命令。

配置​

所有设置都在 Tracking Manifest 条目中。只会使用找到的第一个清单,更改会在几秒内生效。

  • trackingEnabled 用于开启或关闭记录。关闭后将不再添加点。只有在其开启期间加入的玩家才会创建新会话。
  • blueMapEnabled、showBlueMapPoints 和 showBlueMapPath 控制在 BlueMap 上绘制的内容。如果两个显示选项都关闭,则不会绘制任何内容。
  • 轨迹只会绘制距离管理员约 30 格以内、且位于管理员所在世界的线段。

条目​

2 个条目,由扩展源码生成。

构件1
清单1

故障排查​

没有记录到任何会话。 清单必须存在,trackingEnabled 必须开启,并且已链接 storage 构件。会话在玩家加入时开始,因此在你发布之前就已在线的玩家需要重新连接。

/tracking inspect 提示 "No tracking sessions found"。 该玩家还没有记录到会话,或者名称有误。请运行 /tracking sessions <player>。会话至少需要一个点才有用:第一个点会在 pointIntervalSeconds 之后记录。

看不到粒子轨迹。 你所在的世界中至少需要有 2 个点,并且你必须在路径约 30 格范围内。轨迹只对执行查看的管理员可见。

BlueMap 上没有显示。 BlueMap 必须已安装并启用,blueMapEnabled 必须开启且至少开启一个显示选项,并且这些点所在的世界必须是 BlueMap 已知的世界。运行 /tracking 时标记会被移除。

会话不再增长。 一个会话最多保留 10,000 个点。按默认间隔计算,这相当于超过 55 小时的游戏时间。

崩溃后数据丢失。 数据会在最后一次变化 5 秒后以及卸载时保存。在这个时间窗口内发生崩溃,可能会丢失最新的点。