BackPackManager —— 简单好用的背包插件

原创 其他 BackPackManager —— 简单好用的背包插件 2.0.2

请登录后获取
版权类型
原创
插件中文名称
背包管理
插件英文名称
BackPackManager
原帖地址
#
支持的核心(服务端)
  1. Paper
  2. Folia
  3. Purpur
  4. Leaves
语言支持
多语言
适配版本(Java)
  1. 26.x
  2. 1.21
BackPackManager —— 实体物品背包系统(持久存储 + 防复制 + 备份管理)

为 Paper 1.21.x 设计的物理实体背包插件:真实物品背包、分页持久化存储、容量扩展、快照备份与恢复、管理员搜索与隔离、第三方自定义物品全面兼容。可选 Redis / Velocity 跨服部署,SQLite / MySQL / MariaDB 三选一存储。


效果预览





插件信息

  • 插件名称:BackPackManager
  • 当前版本:2.0.
  • 适用服务端:Paper 1.21.
  • 插件类型:背包 / 存储 / 管理类
  • 语言支持:简体中文(默认)、English
  • 主命令:/backpack(别名 /bp)
  • Q群:1102249149

软依赖(全部可选,按需增强)

  • 自定义物品:ItemsAdder、Oraxen、Nexo、CraftEngine、MMOItems、NeigeItems、MythicMobs / MythicCrucible、ExecutableItems、EcoItems、SCore
  • 占位符 / 绑定:PlaceholderAPI(自带扩展)、ItemSoulBind、SakuraBind、GuibindPro、MythicLib
  • 容器锁:ChestProtect
  • 领地保护(AntiGriefLib 体系):WorldGuard、Lands、Residence、Towny、Factions、PlotSquared、GriefPrevention、GriefDefender、Kingdoms、BentoBox、SuperiorSkyblock2、HuskClaims、HuskTowns、IridiumSkyblock、CrashClaim、RedProtect、Dominion 等 26+ 插件




核心功能

1. 实体背包物品

  • 背包是真实物品:手持背包右键即开,可交易、可存放、可放置;
  • 每个背包拥有独立的Instance UUID(背包实例)与 Storage UUID(存储空间),身份与数据分离,扩容、备份均不改变身份。

2. 分页持久化存储

  • 每页54 个真实储物槽,无保留控制行,全页可放物品;
  • 逻辑容量9 ~ 540 格,页数、扩容上限均可配置;
  • 换页手势原生顺手:多页背包空手点击界面外,左键上一页、右键下一页;
  • 背包标题实时显示页码,同尺寸翻页原地刷新,不重建界面。

3. 默认 8 种背包(可自由定义)

皮革旅行背包(18 格)、简易背包、铜制背包、铁制背包、伐木背包、矿工背包、钻石背包、下界合金背包——每种背包独立定义材质、名称、容量与 Lore,支持自定义模型数据。

4. 容量扩展

  • 手持扩容核心(默认末影之眼,可换任意原版/自定义物品)在背包栏左键点击真实背包即可扩容;
  • 每次 +9 格,单个 Storage 最大可扩至225 格;
  • 扩容走 CAS 提交 + 索引 + 审计,同背包扩容后身份不变,外部引用不失效。

5. 内容预览

  • 支持BUNDLE 原版背包图标网格或Lore 文字预览两种模式;
  • 预览数据只来自权威 Storage,绝不把界面状态当数据。

6. 备份 / 恢复 / 审计(管理员利器)

  • 不可变快照 + 同状态去重 + 按理由/时限保留策略;
  • 支持快照对比、恢复前预览(PRE_RESTORE)、导出;
  • 完整管理链路:玩家列表 → 筛选/搜索 → 选中玩家背包 → 统一管理 → 快照历史 → 只读快照页 → 对比/确认恢复;
  • 手动备份、备份删除、导出均有独立权限节点。

7. 管理员搜索与违禁管理

  • 按单个 Storage / 单个玩家 / 全服三种范围搜索背包内容;
  • 快照本地只读过滤 + 违禁规则视图;
  • 隔离 / 完整性校验 / 解除隔离完整工作流(GUI 确认);
  • 危险结果删除需独立权限(默认不授予),先备份、校验过期结果、CAS 写入、全程审计。

8. 远程管理

  • 管理员可远程只读打开任意玩家背包;
  • 远程编辑需独立权限,物品变更带明细审计,责任可追溯。

9. 第三方生态兼容

  • 自定义物品 Provider 统一注册:ItemsAdder、Oraxen、Nexo、CraftEngine、MMOItems、NeigeItems、MythicMobs/Crucible、ExecutableItems、EcoItems;
  • 灵魂绑定兼容:识别第三方绑定(附魔 / PDC / Lore),放置 → 方块/家具 → 收回全流程保持绑定状态;尊重第三方找回/追回逻辑,不越权接管;
  • PlaceholderAPI 扩展随插件注册,可展示背包容量、使用格数等占位符。

10. 防复制 / 防重复(fail-closed)

  • 放置日志持久化:PLACE_PENDING → COMMITTED → BREAK_PENDING → RECOVERY_REQUIRED,重启自动对账;
  • 重复扫描 + CAS 提交 + 审计写入,杜绝卡顿复制、延迟拆除复制等常见刷法;
  • 背包打开期间由会话缓冲区管理,禁止移动直接落到物理物品,防幽灵物品。

11. 跨服部署(可选)

  • MySQL/MariaDB 为权威数据源 + Redis 分布式写锁(Single Writer) + Velocity 缓存失效中继(SBX3 协议,只转发带过期时间的失效通知,真实数据不过代理);
  • 玩家跨服加入时数据库对账,远程版本冲突自动围栏;
  • 代理端插件 BackPackManager-Velocity-2.0.0:事件 UUID 去重(120 秒)、仅接受后端来源、消费客户端消息防伪造。

12. 保护集成

  • 已放置背包的领地/区域保护交给 AntiGriefLib 体系(26+ 主流领地插件);
  • 容器锁/信任交给ChestProtect(若安装);
  • OP 绕过与独立绕过权限均可配置。




命令列表

  • /bp help(command) —— 命令帮助(所有人)
  • /bp info —— 查看插件信息(所有人)
  • /bp give(玩家)(类型) —— 发放指定类型背包(survivalbackpacks.admin.give)
  • /bp open(storage-uuid) —— 打开指定存储空间(survivalbackpacks.admin.open)
  • /bp backup(storage-uuid/玩家) —— 手动创建备份(survivalbackpacks.admin.backup.create)
  • /bp reload —— 重载配置(survivalbackpacks.admin.reload)

背包内容搜索、隔离/释放、恢复、导出均在管理后台 GUI 中操作。




权限列表(survivalbackpacks 前缀)

  • survivalbackpacks.use —— 使用背包(默认 true)
  • survivalbackpacks.expand —— 使用扩容核心扩容(默认 true)
  • survivalbackpacks.protection.bypass —— 绕过领地保护判定(默认 false)
  • survivalbackpacks.admin —— 管理员总权限(聚合下列子权限,默认 op)
  • survivalbackpacks.admin.give / open / reload —— 发放 / 打开 / 重载(默认 op)
  • survivalbackpacks.admin.remote(含 .view) —— 远程只读(默认 op)
  • survivalbackpacks.admin.remote.edit —— 远程编辑(独立授权,默认 false)
  • survivalbackpacks.admin.search —— 内容搜索(默认 op)
  • survivalbackpacks.admin.search.remove —— 危险结果删除(默认不授予)
  • survivalbackpacks.admin.quarantine / unquarantine —— 隔离 / 解除隔离(默认 op)
  • survivalbackpacks.admin.backup.* —— 备份查看 / 创建 / 恢复 / 删除 / 导出(默认 op)
  • survivalbackpacks.admin.soulbound.bypass —— 灵魂绑定绕过(默认 op)




配置结构(首次启动自动生成)

代码:
plugins/BackPackManager/
├─ config.yml                 # 主配置(config-version 20):语言 / 显示 / 持久化 / 安全 / 保护 / 扩容 / 灵魂绑定 / 跨服
├─ database.yml               # 数据存储(SQLite / MySQL / MariaDB + 连接池)
├─ backups.yml                # 备份保留策略
├─ restrictions.yml           # 违禁规则
├─ backpacks/                 # 背包定义(leather / simple / copper / iron / lumber / miner / diamond / netherite)
├─ menus/                     # 管理后台 GUI 布局
├─ languages/                 # zh_CN.yml / en_US.yml
└─ data/backpacks.db          # SQLite 数据文件(默认)




配置示例(真实模板)

背包定义 backpacks/leather.yml(皮革旅行背包)

YAML:
id: leather
enabled: true
material: LEATHER
storage:
  slots: 18                 # 18 格容量
display:
  name: <gold>皮革旅行背包
  lore:
  - ''
  - '{contents}'            # 内容预览占位符(自动替换)
  - ''
  - '<gray>容量: <white>{used}/{capacity}'
  - ''
  - <yellow>右键打开

扩容与交互 config.yml(关键片段)

YAML:
storage:
  max-pages: 10                 # 最多 10 页(每页 54 格)
  expansion:
    enabled: true
    slots-per-use: 9            # 每次扩容 +9 格
    max-capacity: 225           # 单个背包最大 225 格
    material: ENDER_EYE         # 扩容核心:默认末影之眼
    # 也支持自定义物品:itemsadder:namespace:item / oraxen:item / nexo:item
    amount: 1

soulbound-detection:
  enabled: true
  respect-external-owner: true
  enchantments:
    enabled: true
    key-contains: [soulbound, soul_bind, soulbind]
  pdc:
    enabled: true
    exact-keys: [itemsoulbind:soulbinduuid, itemsoulbind:soulbindgroup]
  lore:
    enabled: false
    contains: [Soulbound, 灵魂绑定, 已绑定]

备份策略 backups.yml

YAML:
config-version: 20
enabled: true
automation:
  on-close: true              # 背包关闭时自动快照
  interval-minutes: 0         # 0 = 不按间隔自动备份
  skip-identical: true        # 状态未变化跳过(去重)
retention:
  max-per-storage: 120        # 每个 Storage 最多保留 120 条
  max-age-days: 30            # 超过 30 天自动清理
  reasons:
    CLOSE: 10
    MANUAL: 50
    PRE_RESTORE: 20
    QUARANTINE: 20
export:
  shulker:
    enabled: true             # 支持导出为潜影盒

违禁规则 restrictions.yml

YAML:
config-version: 20
# policy: allow / empty-only / deny —— 背包内禁止嵌套容器
containers:
  backpack:
    policy: deny
  ender-chest:
    policy: empty-only
  shulker-box:
    policy: empty-only
  bundle:
    policy: deny
  hopper:
    policy: allow

admin-search:
  enabled: true
  max-results: 200
  materials:                  # 预设违禁物扫描
  - BEDROCK
  - BARRIER
  - COMMAND_BLOCK
  - STRUCTURE_BLOCK
  - DEBUG_STICK
  checks:
    illegal-enchant-level: true
    illegal-stack-size: true

数据存储 database.yml

YAML:
database-version: 1
backend:
  type: sqlite                # sqlite / mysql / mariadb
  sqlite:
    file: data/backpacks.db
  remote:
    host: localhost
    port: 3306
    database: minecraft
    username: root
    password: ""
pool:
  maximum-size: 10
  minimum-idle: 2
  connection-timeout-ms: 10000




安装说明

  1. 将 BackPackManager-2.0.0.jar 放入子服 plugins/ 目录;
  2. (群组服可选)将 BackPackManager-Velocity-2.0.0.jar 放入代理端 plugins/ 目录;
  3. 重启服务器;单服默认 SQLite 零配置即可使用;
  4. 修改配置后执行 /bp reload。




截图

(发帖前请补充:背包 GUI / 内容预览 / 管理后台 / 快照对比 / 跨服架构示意)




更新日志(2.0.0 要点)

  • 放置事务化:放置日志 + 启动对账 + fail-closed 防重复,替代旧版事件/两 tick 假设;
  • 统一存储事务边界:Single Writer + Redis 锁 + 存储串行化 + 权威读 + CAS + 审计提交;
  • 执行上下文显式化:GLOBAL / ENTITY / REGION / ASYNC,Paper/Folia 调度边界无反射回退;
  • Provider 健康隔离:单个物品 Provider 故障不影响其他物品识别;
  • PAPI 修复:占位符扩展注册与卸载修复,与 PlaceholderAPI 最新版兼容;
  • 物理物品变更防火墙:打开期间物品不会被界面操作改写,杜绝幽灵物品。




常见问题(FAQ)

Q1:用 SQLite 还是 MySQL?
A:单服直接用默认 SQLite(零配置);群组服跨服同步必须使用 MySQL / MariaDB,并在 database.yml 中配置。

Q2:跨服模式怎么开启?
A:四步:① database.yml 配置 MySQL/MariaDB;② config.yml 打开 cross-server.enabled;③ 配置 Redis(分布式写锁);④ 代理端安装 BackPackManager-Velocity,确保各子服 server-id 唯一。

Q3:灵魂绑定需要装插件吗?
A:BackPackManager不内置灵魂绑定,只识别并尊重第三方绑定结果(ItemSoulBind / SakuraBind / GuibindPro 等),放置 → 方块/家具 → 收回全流程保持绑定状态。

Q4:扩容核心怎么用?
A:默认末影之眼(可在配置中更换),把它拿到光标上,左键点击背包栏里的真实背包即可扩容,每次 +9 格,最大 225 格。

Q5:备份存在哪里?怎么恢复?
A:快照存在数据库内,通过管理后台 GUI 操作:玩家列表 → 背包 → 快照历史 → 对比 → 恢复前预览 → 确认恢复;也支持导出为潜影盒。

Q6:怎么防止玩家复制背包?
A:三层机制:放置日志持久化 + 重启自动对账(fail-closed);重复扫描 + CAS 提交;背包打开期间由会话缓冲区管理,禁止界面操作直接改写物理物品。

Q7:背包放进末影箱/潜影盒会被禁吗?
A:默认策略:末影箱与潜影盒只允许空背包放入(empty-only),背包内禁止嵌套背包(deny),防止无限嵌套刷物品。

Q8:支持哪些领地插件?
A:AntiGriefLib 体系 26+ 插件(WorldGuard、Lands、Residence、Towny、Factions、PlotSquared、GriefPrevention、GriefDefender、Kingdoms、BentoBox、SuperiorSkyblock2 等),已放置背包的放置/打开/拆除均受领地保护。

Q9:从旧版本升级会怎样?
A:本插件只接受当前版本的配置与数据库格式(config-version 20 / database-version 1 / JDBC schema 6),跨大版本迁移请使用全新数据目录,不会强行改写旧库。




注意事项

  • 本插件只接受当前版本的配置与数据库格式(config-version 20 / database-version 1 / JDBC schema 6),跨大版本迁移请使用全新数据目录,不会强行改写旧库;
  • BackPackManager不内置灵魂绑定与容器锁,只识别与尊重第三方插件的结果;
  • 跨服模式必须先配置好 MySQL/MariaDB 与 Redis,且各子服 server-id 唯一。


作者
浪子清风
价格
33.00金粒
下载
3
查看
204
首次发布
最后更新

评分

0.00 星 0 次评分

最新更新

  1. 2.0.2版本更新内容

    # BackPackManager 2.0.2 更新内容 - 修复背包放置拆除问题 - 修复背包Lore显示第三方物品名称问题
后退
顶部 底部