# GraniteLog — 轻量级、快速且现代化的区块记录器 for Paper/Spigot
GraniteLog 是一个为 Paper/Spigot 服务器打造的 **高性能区块记录和回滚插件**。
它优先考虑 **速度、清晰度和管理员可用性**,同时保持数据库模式 **简单、高效和易于迁移**。
✅ 在最新 Paper 构建版本上积极测试
✅ 紧凑的存储,默认情况下为 **无 NBT**(可选 JSON 压缩)
✅ 多种存储选项:**SQLite、MySQL/MariaDB、PostgreSQL**
---
## 关键特性
### 区块 & 动作追踪
* 追踪 **所有主要区块相关事件**:
* 区块放置/破坏、流体流动、作物生长、爆炸
* 交互:门、杠杆、按钮、床、盔甲架、告示牌编辑、书架编辑
* 容器编辑 (添加/移除物品) ,并带有 **感知元数据的差异**
* 漏斗/管道 IO 移动单独追踪
### 调查工具
* `/inspect` — 点击方块以查看完整历史记录
* 潜行 → 分页结果
* 冲刺 → 查看容器差异 + 最近的告示牌编辑
* `/lookup` — 快速列出目标区块的更改
### 回滚、还原 & 撤销
* 使用过滤器回滚/还原 **任意一组更改**:
* 半径、时间、用户、区块 ID、动作、实体
* **预览 → 确认工作流程** 可避免错误
* 每个操作会生成一个 **批次 ID**,允许使用 `/rbundo` 进行精确撤销
### Discord Webhook
* 将格式化的更改日志直接发送到 Discord
* 特性:
* 多个端点,具有 **每个 Webhook 动作过滤器**
* 异步调度队列(不会阻塞游戏玩法)
* 火药爆炸显示 **受影响的方块计数**
### 存储 & 维护
* 支持的数据库:**SQLite(默认)、MySQL/MariaDB、PostgreSQL**
* 启动时自动执行模式迁移
* 留存策略自动清除旧数据
* 可选 **JSON 元数据压缩** 以节省空间
### 性能导向
* 具有反向压力和计数器的异步流入队列
* 批量数据库写入和优化索引
* 用于重型回滚的可配置安全上限
---
## 命令概览
### 检查 & 查找
* `/inspect [on|off]` → 点击方块获取历史记录
* `/lookup [limit=N]` → 立即列出最近的更改
### 回滚 & 还原
* `/rollback preview `
* `/rollback confirm `
* `/restore preview `
* `/restore confirm `
* 过滤器:`radius|r`, `time=30m/12h/3d`, `user=`, `block=`, `action=place,break,explode`, `entity=`, `chunklock`, `page=`
### 撤销
* `/rbundo ` — 撤销精确的回滚/还原
### 管理员
* `/glog status` → 事件和队列统计信息
* `/glog reload` → 重新加载配置
* `/glog purge olderThan: