- 版权类型
- 原创
- 插件中文名称
- 梦·物品仓库
- 插件英文名称
- CarryAll
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- ProtocolLib
- 适配版本(Java)
- 1.12
- 1.7
[MD]
## 1. 简介
**CarryAll** 是一款面向生存/RPG 服务器的 **个人物品仓库** 插件。玩家可通过 GUI 界面存入、取出物品,并支持开启 **自动收纳**:拾取地面掉落物时自动存入仓库。
物品数据通过 **MySQL** 持久化保存,支持按权限扩展 **堆叠上限** 与 **仓库格数**,适用于需要减轻背包压力、统一管理材料的服环境。
> **售价:50 元**(购买、授权与售后事宜请联系作者 QQ)
---
## 2. 功能特性
- **GUI 仓库**:54 格界面,每页 45 个物品位,支持翻页浏览
- **存入物品**:在仓库界面中,点击玩家背包(下方背包区域)中的物品进行存入
- **取出物品**:
- 左键:取出 1 个
- 右键:取出一组(受物品最大堆叠限制)
- Shift + 点击:尽可能取出所有同类物品(受背包空格限制)
- **NBT 完整保存**:存储物品时支持保留名称、Lore、附魔、耐久及自定义 NBT 等数据
- **同类合并**:存入时自动合并到仓库中 **NBT 完全相同** 的物品堆叠,直至达到堆叠上限
- **自动收纳**:可在仓库界面切换;开启后拾取掉落物将自动尝试存入仓库
- **权限扩展**:通过权限节点增加单格堆叠上限、仓库可存物品种类数量
- **黑名单**:可配置禁止存入的物品类型(Material 名称)
- **大区开关**:可全局禁止存入(`noSave`)或禁止取出(`noTake`)
- **管理员功能**:OP 可打开指定玩家的仓库、重载配置
- **多版本支持**:理论支持所有基于 **Bukkit** 体系的服务端;已在 **1.7.10**、**1.12.2** 完成适配与实测
---
## 3. 环境要求
### 理论环境
| 项目 | 要求 |
|------|------|
| 服务端 | 理论支持所有基于 **Bukkit** 的核心(Spigot、CraftBukkit 及衍生端等) |
| Java | **Java 8+** |
| 数据库 | **MySQL 5.7+**(或兼容的 MariaDB) |
| 前置插件 | **ProtocolLib**(用于物品 NBT 序列化与反序列化,必须安装) |
| 可选前置 | DreamCity(`plugin.yml` 中为软依赖,未安装不影响核心功能) |
### 实际测试环境
| 项目 | 版本 / 说明 |
|------|-------------|
| 1.12.2 端 | **CatServer** |
| 1.7.10 端 | **Uranium** |
| 数据库 | **MySQL 5.7.33** |
| Java | **Java 8** |
> 除上表所列环境外,其他 Bukkit 系版本未逐一实测,使用前建议自行测试或联系作者进行适配。
---
## 4. 安装方法
### 4.1 准备
1. 确认服务端为基于 **Bukkit** 的核心(推荐 **1.7.10** 或 **1.12.2**,已实测)
2. 安装 **ProtocolLib**(版本需与服务端匹配)
3. 准备可连接的 **MySQL** 数据库,并创建好数据库(表由插件自动创建)
### 4.2 安装步骤
1. 将 `CarryAll-1.3.jar` 放入服务端 `plugins` 目录
2. 启动服务器,生成配置文件 `plugins/CarryAll/config.yml`
3. 停止服务器,编辑 `config.yml`,填写正确的 MySQL 连接信息
4. 再次启动服务器,控制台出现数据库连接成功提示即可
5. (可选)配置权限节点、黑名单等
---
## 5. 配置文件
配置文件路径:`plugins/CarryAll/config.yml`
```yaml
# 插件消息前缀(支持 & 颜色代码)
pluginTitle: "&3Carry&bAll &7&l>>> &e"
# 是否禁止存入(true = 全服禁止存入,含自动收纳)
noSave: false
# 是否禁止取出(true = 全服禁止从仓库取出)
noTake: false
# 禁止存入的物品类型(Bukkit Material 名称,如 DIAMOND)
blackList:
- "BLACK_BLOCK_NAME"
# 默认:单个物品种类在仓库中最大堆叠数量
defaultMaxStack: 5000
# 默认:仓库最多可存放多少「种」物品(每个不同物品占一格)
defaultMaxSave: 100
mysql:
host: "localhost"
port: 3306
user: "root"
password: "1234"
database: "ym"
options: "useSSL=false&&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true"
pool:
maxConnections: 10 # 连接池最大连接数
idleTimeout: 2592000 # 空闲超时(毫秒)
# 额外堆叠上限(权限节点: 增加数量,可叠加)
extraStack:
gsStack3000: 3000
gsStack5000: 5000
gsStack10000: 10000
gsStack50000: 50000
# 额外仓库格数(权限节点: 增加格数,可叠加;节点名不要包含 ".")
extraSave:
gsVip1: 10
gsVip2: 20
```
### 配置说明摘要
| 配置项 | 说明 |
|--------|------|
| `pluginTitle` | 插件聊天消息前缀 |
| `noSave` | 为 `true` 时禁止一切存入(含自动拾取收纳) |
| `noTake` | 为 `true` 时禁止从仓库取出 |
| `blackList` | 填入 `Material` 名称,列表内物品无法存入 |
| `defaultMaxStack` | 无权限时,单种物品最大堆叠数 |
| `defaultMaxSave` | 无权限时,仓库最多物品种类数 |
| `extraStack` | 拥有对应权限的玩家,在默认值上 **累加** 堆叠上限 |
| `extraSave` | 拥有对应权限的玩家,在默认值上 **累加** 仓库格数 |
| `mysql.*` | 数据库连接与连接池参数,请务必修改为实际信息 |
### 重载配置
OP 执行:
```
/ca reload
```
---
## 6. 命令
| 命令 | 权限 | 说明 |
|------|------|------|
| `/carryall` `/ca` `/caa` | 玩家 | 显示帮助 |
| `/ca menu` | 玩家 | 打开自己的仓库 |
| `/ca open <玩家名>` | OP | 打开指定玩家的仓库 |
| `/ca reload` | OP | 重载配置文件 |
---
## 7. 仓库界面操作
打开仓库后,界面标题格式为:`All <玩家名>丨<页码>`
### 物品区(上方 0–44 格)
| 操作 | 效果 |
|------|------|
| 左键 | 取出 1 个 |
| 右键 | 取出一组 |
| Shift + 左/右键 | 尽可能取出所有同类(受背包空间限制) |
[/MD]
[MD] ### 玩家背包区(点击下方背包中的物品) | 操作 | 效果 | |------|------| | 左键 | 存入 1 个 | | 右键 | 存入当前堆叠(最多一组) | | Shift + 左/右键 | 存入背包中所有同类物品 | [/MD]
[MD] ### 功能按钮 | 位置 | 按钮 | 说明 | |------|------|------| | 48 | 漏斗 | 切换 **自动收纳** 开/关 | | 49 | 信标 | 查看帮助、当前堆叠上限与仓库容量 | | 45 / 53 | 纸 | 上一页 / 下一页(首页/末页时自动隐藏) | [/MD]
[MD] > 仅仓库所有者本人可操作自己的仓库;OP 可打开他人仓库进行管理。 --- ## 8. 数据库结构 插件启动时自动创建表 `carryall`(若不存在)。 ### 表名:`carryall` | 字段 | 类型 | 说明 | |------|------|------| | `owner` | `VARCHAR(36)` | 玩家名(主键) | | `pick` | `TINYINT` | 自动收纳:`1` 开启,`0` 关闭,默认 `0` | | `items` | `LONGTEXT` | 物品列表(序列化字符串) | ### `items` 字段格式 - 多个物品条目之间用 `;;` 分隔 - 单条物品格式:`数量丨物品序列化数据` - 物品数据由 **ProtocolLib** 序列化,请勿手动修改 ### 建表 SQL(插件启动时自动建表) ```sql CREATE TABLE IF NOT EXISTS carryall ( owner VARCHAR(36) PRIMARY KEY NOT NULL COMMENT '仓库所有者', pick TINYINT DEFAULT 0 COMMENT '拾取检测 1开启 0关闭', items LONGTEXT NOT NULL COMMENT '物品列表(序列化字符串)' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` --- ## 9. 常见问题 ### Q1:启动后提示数据库连接失败? - 检查 `config.yml` 中 MySQL 地址、端口、用户名、密码、数据库名是否正确 - 确认 MySQL 服务已启动,且数据库已创建 - 检查 `mysql.options` 连接参数是否与服务端环境匹配(时区、SSL 等) - 查看控制台完整报错信息 ### Q2:提示缺少 ProtocolLib? - 本插件依赖 ProtocolLib 进行物品序列化,请务必安装 - 确认 ProtocolLib 版本与服务端版本兼容 ### Q2.1:附魔、Lore、自定义 NBT 会丢失吗? - 不会。存入与取出 附魔、显示名、Lore、耐久及常见自定义 NBT 会一并保存 - 合并堆叠时要求 NBT 完全一致;仅材质相同但 NBT 不同的物品会分格存放 - 若某类 Mod 物品使用了无法识别的特殊 NBT,可能无法正确存取,需自行测试(目前未遇) ### Q3:物品存入后重启消失? - 多为数据库未正确写入,检查数据库连接与表是否存在 - 查看控制台是否有 “存入失败,数据库错误” 等提示 ### Q4:自动收纳不生效? - 确认 `noSave` 为 `false` - 在仓库界面点击漏斗按钮,确认已 **启用自动收纳** - 物品是否在 `blackList` 黑名单中 - 仓库是否已满(格数或堆叠达上限) ### Q5:无法取出物品? - 检查 `noTake` 是否为 `true` - 确认背包是否有足够空间 ### Q6:权限配置了但不生效? - `extraStack` / `extraSave` 中的键名即为 **权限节点名**(不要包含 `.`) - 玩家需在线时才会按权限计算上限(离线玩家按默认值处理) - 修改配置后执行 `/ca reload` 或重启服务器 ### Q7:支持哪些服务端版本? - **理论**支持所有基于 Bukkit 的版本(需安装对应版本的 ProtocolLib) - 当前 JAR 已内置 **1.7.10**、**1.12.2** 的 NMS 适配,这两个版本可直接使用,无需按版本分 jar - 其他版本未经完整测试,若无法启动或物品名称异常,请联系作者确认是否需要增加适配 --- ## 10. 版本信息 | 项目 | 内容 | |------|------| | 当前版本 | **1.3** | | 理论支持 | 所有基于 Bukkit 的服务端 | | 已适配实测 | 1.7.10、1.12.2 | | 售价 | **50 元** | | 硬依赖 | ProtocolLib | | 数据存储 | MySQL | ### 更新记录 - **1.3**:多版本 NMS 适配重构;Maven 多模块工程;理论支持 Bukkit 全系,已实测 1.7.10 / 1.12.2 - **1.2**及更早:内部测试使用 --- ## 11. 联系作者 | 项目 | 联系方式 / 说明 | |------|-----------------| | 插件售价 | **50 元** | | 作者 QQ | 1011115423 | | 交流群 | 1104439995 | | 版本反馈 | 欢迎反馈 1.12.2 版本的 Bug 或建议 | | 插件定制 | 接受其他插件定制开发需求 | --- [/MD]
[MD] ### 玩家背包区(点击下方背包中的物品) | 操作 | 效果 | |------|------| | 左键 | 存入 1 个 | | 右键 | 存入当前堆叠(最多一组) | | Shift + 左/右键 | 存入背包中所有同类物品 | [/MD]
[MD] ### 功能按钮 | 位置 | 按钮 | 说明 | |------|------|------| | 48 | 漏斗 | 切换 **自动收纳** 开/关 | | 49 | 信标 | 查看帮助、当前堆叠上限与仓库容量 | | 45 / 53 | 纸 | 上一页 / 下一页(首页/末页时自动隐藏) | [/MD]
[MD] > 仅仓库所有者本人可操作自己的仓库;OP 可打开他人仓库进行管理。 --- ## 8. 数据库结构 插件启动时自动创建表 `carryall`(若不存在)。 ### 表名:`carryall` | 字段 | 类型 | 说明 | |------|------|------| | `owner` | `VARCHAR(36)` | 玩家名(主键) | | `pick` | `TINYINT` | 自动收纳:`1` 开启,`0` 关闭,默认 `0` | | `items` | `LONGTEXT` | 物品列表(序列化字符串) | ### `items` 字段格式 - 多个物品条目之间用 `;;` 分隔 - 单条物品格式:`数量丨物品序列化数据` - 物品数据由 **ProtocolLib** 序列化,请勿手动修改 ### 建表 SQL(插件启动时自动建表) ```sql CREATE TABLE IF NOT EXISTS carryall ( owner VARCHAR(36) PRIMARY KEY NOT NULL COMMENT '仓库所有者', pick TINYINT DEFAULT 0 COMMENT '拾取检测 1开启 0关闭', items LONGTEXT NOT NULL COMMENT '物品列表(序列化字符串)' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` --- ## 9. 常见问题 ### Q1:启动后提示数据库连接失败? - 检查 `config.yml` 中 MySQL 地址、端口、用户名、密码、数据库名是否正确 - 确认 MySQL 服务已启动,且数据库已创建 - 检查 `mysql.options` 连接参数是否与服务端环境匹配(时区、SSL 等) - 查看控制台完整报错信息 ### Q2:提示缺少 ProtocolLib? - 本插件依赖 ProtocolLib 进行物品序列化,请务必安装 - 确认 ProtocolLib 版本与服务端版本兼容 ### Q2.1:附魔、Lore、自定义 NBT 会丢失吗? - 不会。存入与取出 附魔、显示名、Lore、耐久及常见自定义 NBT 会一并保存 - 合并堆叠时要求 NBT 完全一致;仅材质相同但 NBT 不同的物品会分格存放 - 若某类 Mod 物品使用了无法识别的特殊 NBT,可能无法正确存取,需自行测试(目前未遇) ### Q3:物品存入后重启消失? - 多为数据库未正确写入,检查数据库连接与表是否存在 - 查看控制台是否有 “存入失败,数据库错误” 等提示 ### Q4:自动收纳不生效? - 确认 `noSave` 为 `false` - 在仓库界面点击漏斗按钮,确认已 **启用自动收纳** - 物品是否在 `blackList` 黑名单中 - 仓库是否已满(格数或堆叠达上限) ### Q5:无法取出物品? - 检查 `noTake` 是否为 `true` - 确认背包是否有足够空间 ### Q6:权限配置了但不生效? - `extraStack` / `extraSave` 中的键名即为 **权限节点名**(不要包含 `.`) - 玩家需在线时才会按权限计算上限(离线玩家按默认值处理) - 修改配置后执行 `/ca reload` 或重启服务器 ### Q7:支持哪些服务端版本? - **理论**支持所有基于 Bukkit 的版本(需安装对应版本的 ProtocolLib) - 当前 JAR 已内置 **1.7.10**、**1.12.2** 的 NMS 适配,这两个版本可直接使用,无需按版本分 jar - 其他版本未经完整测试,若无法启动或物品名称异常,请联系作者确认是否需要增加适配 --- ## 10. 版本信息 | 项目 | 内容 | |------|------| | 当前版本 | **1.3** | | 理论支持 | 所有基于 Bukkit 的服务端 | | 已适配实测 | 1.7.10、1.12.2 | | 售价 | **50 元** | | 硬依赖 | ProtocolLib | | 数据存储 | MySQL | ### 更新记录 - **1.3**:多版本 NMS 适配重构;Maven 多模块工程;理论支持 Bukkit 全系,已实测 1.7.10 / 1.12.2 - **1.2**及更早:内部测试使用 --- ## 11. 联系作者 | 项目 | 联系方式 / 说明 | |------|-----------------| | 插件售价 | **50 元** | | 作者 QQ | 1011115423 | | 交流群 | 1104439995 | | 版本反馈 | 欢迎反馈 1.12.2 版本的 Bug 或建议 | | 插件定制 | 接受其他插件定制开发需求 | --- [/MD]