Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
BackPackManager 1.2.0
Compatible with Bukkit/Paper/Youer servers (versions 1.19.2–26.2); primarily tested and verified on Youer 1.21.1 (Bukkit + NeoForge). Project URL: https://github.com/lsfdc233/BackPackManager
config.yaml: debug=true. When enabled, the server console logs the executor, full arguments, and the result (or failure reason) for every /bpm command.
Build
Requires JDK 17 or higher; the project includes the Gradle Wrapper:
.\gradlew.bat build
Place build/libs/BackPackManager-1.0.0.jar into your server's plugins directory.
Commands
/backpackmanager (Alias: /bpm)
/bpm export -p <player> -n <name>: Save an online player's backpack./bpm setpublic -p <player> -n <name> [-pn <public_name>]: Convert a private backup into a public backup./bpm clear -p <player>: Clear an online player's backpack, armor, and off-hand slots./bpm import -n <name>: Import your own private backup into your backpack./bpm import -p <player> -n <name>: Import a public backup into the specified online player's inventory./bpm rm -player <player> -n <name>or/bpm rm -public -n <name>: Delete a backup./bpm -cn -player <player> -n <name> -en <new_name>: Rename a private backup./bpm -cn -public -n <name> -en <new_name>: Rename a public backup./bpm help: View help.
-p can be written as -player, and -n can be written as -name. Names are restricted to letters, numbers, underscores, and hyphens to prevent path traversal vulnerabilities.
Data and Mod Compatibility
The .bpm format is based on YAML, while items are stored using native Bukkit/Paper binary ItemStack data. Consequently, vanilla item components, enchantments, the "unbreakable" attribute, PDC data, and server-recognized modded item NBT are preserved. The plugin saves the vanilla main inventory, armor slots, and offhand. As there is no unified Bukkit API for NeoForge's additional accessory slots, support for them can be implemented by registering a BackPackExtraSlotProvider if the respective mod provides a Bukkit interface.
The current build uses the Bukkit 1.19.2 API as its compilation baseline. While primary operation and verification are conducted on Minecraft 1.21.1, the plugin maintains forward compatibility up to Minecraft 1.26.2. The implementation avoids direct use of server-internal NMS classes; modern servers automatically utilize native item byte formats, whereas 1.19.2 falls back to Bukkit-compatible serialization. This approach preserves item components, enchantments, the "unbreakable" attribute, PDC, and server-recognized mod data for versions 1.21.1 and later, while ensuring standard Bukkit items can still be saved and restored on 1.19.2. Note that when importing across major version gaps, the preservation of items or data components unrecognized by the server cannot be guaranteed. Version 1.8.9 is not supported by this build; due to incompatibilities in Java versions, item data models, and Bukkit APIs compared to 1.19.2+, a separate build and serialization adaptation layer would be required.
适用于 Bukkit/Paper/Youer 1.19.2–26.2 的服务器;主要运行与验证版本为 Youer 1.21.1(Bukkit + NeoForge)。 项目地址:https://github.com/lsfdc233/BackPackManager
config.yaml: debug=true。开启后,服务器控制台会记录每一条 /bpm 命令的执行者、完整参数、操作结果或失败原因。
构建
需要 JDK 17 或更高版本;项目已附带 Gradle Wrapper:
.\gradlew.bat build
将 build/libs/BackPackManager-1.0.0.jar 放入服务器的 plugins 目录。
命令
/backpackmanager(别名:/bpm)
/bpm export -p <玩家> -n <名称>:保存在线玩家的背包。/bpm setpublic -p <玩家> -n <名称> [-pn <公开名称>]:将私有备份转为公开备份。/bpm clear -p <玩家>:清空在线玩家背包、盔甲和副手。/bpm import -n <名称>:将自己的私有备份导入自己背包。/bpm import -p <玩家> -n <名称>:将公开备份导入指定在线玩家。/bpm rm -player <玩家> -n <名称>或/bpm rm -public -n <名称>:删除备份。/bpm -cn -player <玩家> -n <名称> -en <新名称>:重命名私有备份。/bpm -cn -public -n <名称> -en <新名称>:重命名公开备份。/bpm help:查看帮助。
-p 可写作 -player,-n 可写作 -name。名称只允许字母、数字、下划线和连字符,避免路径穿越。
数据与模组兼容性
.bpm 是 YAML 格式,物品以 Bukkit/Paper 原生二进制 ItemStack 数据保存,因此原版物品组件、附魔、不可破坏属性、PDC 和服务器能识别的模组物品 NBT 会被保留。插件保存原版的主背包、盔甲栏、副手。NeoForge 额外饰品栏没有统一 Bukkit API;若其模组提供 Bukkit 接口,可通过 BackPackExtraSlotProvider 注册实现以纳入备份。
当前构建以 Bukkit 1.19.2 API 作为编译基线,主要运行与验证版本保持 Youer 1.21.1,并尽可能向上兼容至 Minecraft 26.2。实现不使用服务端内部 NMS 类;现代服务端会自动采用原生物品字节格式,1.19.2 则自动回退到 Bukkit 兼容序列化。这样既保留 1.21.1+ 的物品组件、附魔、不可破坏属性、PDC 和服务端可识别模组数据,也可在 1.19.2 中正常保存和恢复 Bukkit 物品。跨不同大版本导入时,服务器不认识的物品或数据组件无法保证保留。1.8.9 不在本构建支持范围内:其 Java 版本、物品数据模型和 Bukkit API 与 1.19.2+ 不兼容,需单独维护旧版构建及序列化适配层。

