跳到正文

BlockWatch

作者:Hata

方块、容器和物品记录器,支持检查、预览和回滚。仅服务端;可选客户端界面。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

Blockwatch

查看谁在何时更改了什么,并撤销更改。 Blockwatch 会记录你的 Fabric 服务器上的方块、容器、物品和实体变更,方便管理人员检查、搜索、预览并回滚记录。它只需安装在服务器端即可运行;在客户端安装了它的玩家或管理人员还可以使用带有选项卡和筛选器的全屏界面。

记录内容

| 选项卡 | 事件 |
|—|—|
| 方块 | 破坏、放置、变更、爆炸、燃烧、放置流体、践踏耕地 |
| 容器 | 放入物品、取出物品、容器被破坏(含容器内容物) |
| 物品 | 丢弃、拾取(重复记录会合并) |
| 实体 | 击杀、命名或驯服生物死亡、拴绳、用桶捕获 |
| 玩家 | 加入、离开、死亡、切换维度 |

每条记录都会保存操作者(玩家、生物、火焰、爆炸或环境)、事件内容、位置、维度和时间。方块实体数据(箱子内容、告示牌、刷怪笼)也会保存,因此回滚时也能一并恢复。

检查、搜索、回滚与预览

  • /bw inspect或使用检查器物品(/bw wand):点击或敲击方块或箱子即可查看其历史记录。
  • /bw search player:Steve time:2h radius:20 action:block_break及相关功能。筛选器使用普通的 key:value 键值对。
  • /bw rollback ...和/bw restore ...可以按时间从新到旧撤销和重做更改,并分批处理,不会让服务器卡顿。
  • /bw preview ...会将结果仅显示给你,以世界幽灵影像的形式呈现;随后/bw apply可提交更改,或/bw cancel将其放弃。
  • 被击杀的实体不会复活(这是所有记录类模组的限制)。

界面(可选的客户端模组)

在客户端安装 Blockwatch(26.1 和 26.2 版本),然后/bw即可打开界面,其中包含方块、容器、物品、实体和玩家选项卡;带有建议项的玩家输入框;时间、半径、维度和操作筛选器;行选择功能;一键传送至某条记录;以及带确认步骤的回滚、恢复和预览按钮。将鼠标悬停在某条记录上时,世界中对应的方块会显示轮廓。

无需安装客户端模组也能使用

以上所有功能都可以通过聊天使用。未安装模组的玩家也能看到可点击的视图,其中包括选项卡、上一页/下一页和每条记录上的传送链接。目前,1.20.1、1.21.1 和 1.21.11 版本仅提供服务器端功能和聊天视图。

权限

Blockwatch 使用权限节点(兼容 LuckPerms 及任何使用 Fabric Permissions API 的模组);若未安装权限模组,则使用管理员等级作为后备权限。

| 节点 | 允许的操作 | 默认等级 |
|—|—|—|
| blockwatch.view | 打开日志 | op 2 |
| blockwatch.inspect | 检查方块并使用检查器物品 | op 2 |
| blockwatch.search | 搜索和浏览 | op 2 |
| blockwatch.teleport | 传送至某条记录 | op 2 |
| blockwatch.preview | 预览回滚和恢复 | op 3 |
| blockwatch.rollback | 回滚 | op 3 |
| blockwatch.restore | 恢复(重做) | op 3 |
| blockwatch.purge | 删除旧记录 | op 4 |
| blockwatch.unlimited | 回滚时不受半径或时间限制 | op 4 |

没有 blockwatch.unlimited 时,回滚范围和记录时间会受配置文件中设定的限制(默认半径为 64 格,时间范围为 7 天)。

性能

写入操作会通过独立线程上的队列批量写入 SQLite,因此记录过程不会阻塞游戏刻。在我们的负载测试中,服务器线程处理 50,000 条排队记录约耗时 30 毫秒,并在几秒内将其写入磁盘。回滚每游戏刻处理数千个方块(可配置)。早于 retentionDays 的记录会每天清理一次。

配置

config/blockwatch.json5(允许添加注释):

{
  "categories": { "blocks": true, "containers": true, "items": true, "entities": true, "players": true },
  "recording": true,
  "retentionDays": 60,
  "limitedRadius": 64,
  "limitedDays": 7,
  "rollbackPerTick": 2000,
  "ignoredBlocks": ["minecraft:short_grass"],
  "skipDimensions": [],
  "discordWebhook": "",
  "language": "en_us",
  "extraAliases": []
}

回滚、恢复和清理操作也会写入 logs/blockwatch-actions.log;如果设置了 discordWebhook,还会发送到 Discord。

常见问题

只能装在服务器上吗?是的。客户端模组为可选。

支持哪些版本?Fabric 版本:1.20.1、1.21.1、1.21.11、26.1 和 26.2。

数据存在哪里? world/blockwatch.db(SQLite)。请和世界存档一起备份。

可以在不同 Minecraft 版本之间迁移世界吗?方块数据迁移没有问题。箱子和物品快照会标记格式系列;如果快照与当前格式系列不兼容,回滚会拒绝恢复,而不是错误地还原。

会记录创造模式或命令造成的变更吗?它会记录玩家、生物和爆炸在正常游戏过程中造成的变更。通过 /fill 等命令进行的变更不会归因到某位玩家名下。

支持哪些语言?英语、乌克兰语、德语、波兰语、俄语、西班牙语、巴西葡萄牙语、法语和简体中文(最后六种语言仅覆盖简短的界面文本;服务器消息会回退为英语)。

回滚会修改你的世界,请务必备份。

常见问题

BlockWatch 支持哪些 Minecraft 版本?

BlockWatch 支持 Minecraft Java 版 1.20.1–26.2,共 21 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

BlockWatch 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。

评论

登录后评论和评分

Hata 的其他作品

查看全部 →