- 版权类型
- 原创
- 插件中文名称
- 背包哨卫
- 插件英文名称
- InvSentinel
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- Leaves
- 其他核心
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
InvSentinel 并非普通的背包查看或定时存档插件,而是一套面向服务器管理场景打造的玩家物品安全方案。插件围绕“自动备份、快速查包、精细恢复、操作审计与跨服同步”进行设计,完整保存玩家背包、快捷栏、装备、副手、末影箱与经验数据,并同时提供 Java GUI、基岩版原生表单和响应式 Web 管理后台。
无论是玩家误丢物品、异常死亡、服务器故障回档,还是群组服切换子服时的背包同步,管理员都可以通过清晰的历史快照快速定位数据,并在多重安全保护下完成恢复。
- Geyser/Floodgate 为可选依赖,未安装时自动使用 Java 箱子 GUI
- Redis 跨服背包同步默认关闭,启用时需要所有子服共享 MySQL 并连接同一 Redis
以下分别为 电脑端 Web 与手机端 Web 界面
支持A服务器的 Web 界面 选择查看 B服务器所有玩家的数据
核心技术亮点
1. Folia 与传统服务端双架构兼容
同一份插件 JAR 同时兼容传统 Bukkit 主线程环境与 Folia Region-based 区域多线程环境。插件会自动识别运行平台,在 Folia 上使用 Global Region Scheduler 与玩家 Entity Scheduler在 Spigot、Paper、Purpur、Leaves 上使用 Bukkit 调度器,无需下载或切换不同版本。
2. 异步数据处理与分批捕获
必须访问玩家实体的背包捕获和恢复操作会在安全的主线程或玩家区域线程执行;数据压缩、哈希计算、数据库读写、文件 IO、Redis 通信、Web 查询、快照对比与 JSON 导出均交由异步线程处理。
定时备份采用队列分批捕获机制,可通过 backup.players-per-tick 控制每 tick 处理的玩家数量,避免大量玩家同时备份造成瞬时卡顿,适合中大型服务器长期运行。
3. 压缩、去重与智能合并
快照数据使用 GZIP 压缩并通过 SHA-256 哈希识别内容。相同物品数据块只保存一份,玩家背包未发生变化时,连续的定时快照会自动合并,从而减少重复写入与数据库空间占用。
插件还会自动清理超过保留期限且未被恢复队列引用的历史数据,并删除不再使用的数据块,在保留恢复能力的同时控制存储体积。
4. 多重恢复安全保障
每次恢复或跨服同步前,插件都会先为玩家当前状态创建安全备份。管理员可以选择恢复背包、快捷栏、装备和副手,单独恢复末影箱,恢复全部物品与经验,或只取回某一个指定物品。
玩家离线时,恢复操作会写入持久化队列,并在玩家下次进入服务器后执行。单玩家恢复锁、条件删除、跨服分布式锁与 MySQL 持久化回执可共同避免任务重复执行;所有恢复结果都会写入审计记录,方便管理员追踪操作来源与执行状态。
5. 安全的 Web 管理后台
插件内置电脑与手机均可使用的响应式 Web 查包后台,支持管理员登录、玩家搜索、分页浏览、时间与备份原因筛选、完整物品详情、潜影盒等嵌套容器查看、快照对比、JSON 导出、恢复队列和操作审计。
Web 写操作带有会话校验、CSRF 防护与一次性确认令牌。执行恢复前必须再次输入完全一致的目标玩家名,服务端还会复核快照 UUID 与数据归属,降低误操作和伪造请求风险。
核心功能
- 多场景自动备份:支持定时、玩家加入、退出、死亡、切换世界和服务器关闭时自动创建快照
- 完整数据保存:保存背包、快捷栏、盔甲、副手、末影箱、等级、经验进度与总经验
- 精细化安全恢复:支持恢复背包区域、末影箱、全部物品和经验,也可单独恢复某一件物品
- Java 可视化 GUI:分页查看玩家与历史快照,浏览物品详情并执行恢复操作
- 基岩版原生表单:安装 Geyser/Floodgate 后,基岩版管理员可使用 Cumulus 原生表单完成查包与恢复;不可用时自动回退 Java GUI
- 响应式 Web 查包:支持电脑和手机访问,可进行搜索、筛选、对比、导出、恢复和审计查看
- SQLite/MySQL 双存储:SQLite 适合单服即装即用,MySQL 适合群组服共享数据与跨服管理
- 跨服数据查看:所有子服共享 MySQL 后,可在 Web 后台切换服务器并查看其他子服的玩家快照
- Redis 背包同步:通过 Redis 通知、在线状态与分布式锁配合 MySQL 持久化数据,实现群组服安全背包同步
- 离线恢复队列:目标玩家不在线时自动排队,玩家下次登录后执行恢复
- 快照保留与清理:可自定义备份保留时间和清理周期,待恢复任务引用的快照不会被误删
- 数据库统计:可查看数据库占用、玩家数量、快照数量、去重数据块、恢复队列和审计记录数量
- 热重载与资源释放:基础配置支持热重载,插件禁用时会主动关闭任务、线程池、数据库、Redis 与 Web 服务资源
插件指令
- /isv - 打开玩家选择界面
- /isv <玩家名>` - 直接打开指定玩家的备份界面
- /isv open <玩家名>` - 打开指定玩家的备份界面
- /isv backup <在线玩家>` - 立即创建指定玩家的背包备份
- /isv stats - 查看数据库占用与备份统计
- /isv web - 查看 Web 管理后台运行状态与访问地址
- /isv cleanup - 立即清理超过保留期限的快照
- /isv reload`- 热重载备份、保留、GUI、Web 与消息等基础配置
插件权限
- invsentinel.admin - 使用管理界面与基础管理指令
- invsentinel.restore - 恢复玩家背包、末影箱、全部数据或单个物品
- invsentinel.backup - 手动创建玩家备份
- invsentinel.reload - 热重载基础配置
以上权限默认仅 OP 拥有。
配置提示
基础备份、保留时间、GUI、基岩版表单、Web 和消息设置位于 config.yml 大部分内容可通过 /isv reload 热重载。
SQLite/MySQL 服务器唯一标识、跨服查看、Redis 与背包同步设置位于 storage.yml 修改这些底层设置后,请重新加载插件或完整重启服务器。
无论是玩家误丢物品、异常死亡、服务器故障回档,还是群组服切换子服时的背包同步,管理员都可以通过清晰的历史快照快速定位数据,并在多重安全保护下完成恢复。
- Geyser/Floodgate 为可选依赖,未安装时自动使用 Java 箱子 GUI
- Redis 跨服背包同步默认关闭,启用时需要所有子服共享 MySQL 并连接同一 Redis
以下分别为 电脑端 Web 与手机端 Web 界面
支持A服务器的 Web 界面 选择查看 B服务器所有玩家的数据
核心技术亮点
1. Folia 与传统服务端双架构兼容
同一份插件 JAR 同时兼容传统 Bukkit 主线程环境与 Folia Region-based 区域多线程环境。插件会自动识别运行平台,在 Folia 上使用 Global Region Scheduler 与玩家 Entity Scheduler在 Spigot、Paper、Purpur、Leaves 上使用 Bukkit 调度器,无需下载或切换不同版本。
2. 异步数据处理与分批捕获
必须访问玩家实体的背包捕获和恢复操作会在安全的主线程或玩家区域线程执行;数据压缩、哈希计算、数据库读写、文件 IO、Redis 通信、Web 查询、快照对比与 JSON 导出均交由异步线程处理。
定时备份采用队列分批捕获机制,可通过 backup.players-per-tick 控制每 tick 处理的玩家数量,避免大量玩家同时备份造成瞬时卡顿,适合中大型服务器长期运行。
3. 压缩、去重与智能合并
快照数据使用 GZIP 压缩并通过 SHA-256 哈希识别内容。相同物品数据块只保存一份,玩家背包未发生变化时,连续的定时快照会自动合并,从而减少重复写入与数据库空间占用。
插件还会自动清理超过保留期限且未被恢复队列引用的历史数据,并删除不再使用的数据块,在保留恢复能力的同时控制存储体积。
4. 多重恢复安全保障
每次恢复或跨服同步前,插件都会先为玩家当前状态创建安全备份。管理员可以选择恢复背包、快捷栏、装备和副手,单独恢复末影箱,恢复全部物品与经验,或只取回某一个指定物品。
玩家离线时,恢复操作会写入持久化队列,并在玩家下次进入服务器后执行。单玩家恢复锁、条件删除、跨服分布式锁与 MySQL 持久化回执可共同避免任务重复执行;所有恢复结果都会写入审计记录,方便管理员追踪操作来源与执行状态。
5. 安全的 Web 管理后台
插件内置电脑与手机均可使用的响应式 Web 查包后台,支持管理员登录、玩家搜索、分页浏览、时间与备份原因筛选、完整物品详情、潜影盒等嵌套容器查看、快照对比、JSON 导出、恢复队列和操作审计。
Web 写操作带有会话校验、CSRF 防护与一次性确认令牌。执行恢复前必须再次输入完全一致的目标玩家名,服务端还会复核快照 UUID 与数据归属,降低误操作和伪造请求风险。
核心功能
- 多场景自动备份:支持定时、玩家加入、退出、死亡、切换世界和服务器关闭时自动创建快照
- 完整数据保存:保存背包、快捷栏、盔甲、副手、末影箱、等级、经验进度与总经验
- 精细化安全恢复:支持恢复背包区域、末影箱、全部物品和经验,也可单独恢复某一件物品
- Java 可视化 GUI:分页查看玩家与历史快照,浏览物品详情并执行恢复操作
- 基岩版原生表单:安装 Geyser/Floodgate 后,基岩版管理员可使用 Cumulus 原生表单完成查包与恢复;不可用时自动回退 Java GUI
- 响应式 Web 查包:支持电脑和手机访问,可进行搜索、筛选、对比、导出、恢复和审计查看
- SQLite/MySQL 双存储:SQLite 适合单服即装即用,MySQL 适合群组服共享数据与跨服管理
- 跨服数据查看:所有子服共享 MySQL 后,可在 Web 后台切换服务器并查看其他子服的玩家快照
- Redis 背包同步:通过 Redis 通知、在线状态与分布式锁配合 MySQL 持久化数据,实现群组服安全背包同步
- 离线恢复队列:目标玩家不在线时自动排队,玩家下次登录后执行恢复
- 快照保留与清理:可自定义备份保留时间和清理周期,待恢复任务引用的快照不会被误删
- 数据库统计:可查看数据库占用、玩家数量、快照数量、去重数据块、恢复队列和审计记录数量
- 热重载与资源释放:基础配置支持热重载,插件禁用时会主动关闭任务、线程池、数据库、Redis 与 Web 服务资源
插件指令
- /isv - 打开玩家选择界面
- /isv <玩家名>` - 直接打开指定玩家的备份界面
- /isv open <玩家名>` - 打开指定玩家的备份界面
- /isv backup <在线玩家>` - 立即创建指定玩家的背包备份
- /isv stats - 查看数据库占用与备份统计
- /isv web - 查看 Web 管理后台运行状态与访问地址
- /isv cleanup - 立即清理超过保留期限的快照
- /isv reload`- 热重载备份、保留、GUI、Web 与消息等基础配置
插件权限
- invsentinel.admin - 使用管理界面与基础管理指令
- invsentinel.restore - 恢复玩家背包、末影箱、全部数据或单个物品
- invsentinel.backup - 手动创建玩家备份
- invsentinel.reload - 热重载基础配置
以上权限默认仅 OP 拥有。
配置提示
基础备份、保留时间、GUI、基岩版表单、Web 和消息设置位于 config.yml 大部分内容可通过 /isv reload 热重载。
SQLite/MySQL 服务器唯一标识、跨服查看、Redis 与背包同步设置位于 storage.yml 修改这些底层设置后,请重新加载插件或完整重启服务器。