Audit Plugin
XiceAuditLog 审计插件
XiceAuditLog 用于记录服务器里的关键操作,为问题排查、纠纷处理和操作回溯提供依据。
功能概述
XiceAuditLog 在服务器上不会向普通玩家展示额外界面,它主要在后台监听事件并写入审计数据库。插件的目标不是替代备份,也不是提供游戏内回滚,而是稳定记录“谁在什么时候对哪里做了什么”。
记录写入由独立线程完成,主线程只收集事件并放入队列,避免数据库短暂波动直接拖慢服务器玩法。插件本身只负责建表、建索引和写入审计记录,不提供游戏内查询命令。
记录范围
- 方块破坏与放置,包括 TNT、苦力怕等爆炸造成的方块破坏。
- 容器物品放入与取出,按物品类型和数量记录变化。
- 玩家加入与退出,退出记录会携带本次在线时长。
- 后续需要追踪的其它关键行为,可以继续沿用同一套审计表结构扩展。
部署方式
插件基于 Paper API 运行,当前项目按 Paper 1.21.11 和 Java 21 构建。它需要一个可用的 PostgreSQL 数据库服务,数据库连接参数写在运行时配置中。PostgreSQL JDBC 驱动通过 Maven Shade 打包进插件 jar,不需要额外把 JDBC jar 放入服务器插件目录。
Maven 构建产物安装为 /opt/xicemc/runtime/plugins/XiceAuditLog.jar。运行时配置文件位于 /opt/xicemc/runtime/plugins/XiceAuditLog/config.yml,主要字段包括 storage.type、批量写入大小、队列容量、数据库 host/port/database/username,以及密码环境变量名。
当前配置使用 PostgreSQL,默认数据库为 xicemc_audit,默认用户为 xicemc_audit,密码不写入配置文件,而是由环境变量 XICE_AUDIT_DB_PASSWORD 提供。