自动功能
自动功能负责处理物品拾取、入库后的分解与出售,以及仓库排序和怪物掉落入库。自动分解的处理优先级高于自动出售。
玩家的自动拾取、自动分解组和自动出售组状态会随仓库数据保存。默认使用本地 YAML 数据;启用 MySQL 后,必须安装 LyMySQLCore,并确保 LyMySQLCore 已成功连接数据库,否则 MySQL 数据加载、保存及相关功能不会生效。
处理规则
物品进入仓库时会触发仓库存储事件,自动分解和自动出售根据玩家已开启的分组检查物品 Lore。
| 顺序 | 处理 | 说明 |
|---|---|---|
| 1 | 禁止存入检查 | Lore 命中 prohibited-lore-for-storage 时拒绝入库 |
| 2 | 寻找存放位置 | 优先叠加到已解锁仓库中的相同物品,再寻找空槽位 |
| 3 | 自动分解 | 匹配玩家已开启的自动分解组时尝试分解 |
| 4 | 自动出售 | 未被自动分解处理时,根据自动出售组尝试出售 |
自动分解或自动出售匹配失败时,物品仍按普通物品保存在仓库中。
自动拾取入库
yaml
pickup-to-warehouse-enable: truepickup-to-warehouse-enable 是全服自动拾取功能总开关。关闭后,玩家个人状态和怪物掉落入库均不会触发。
玩家使用以下指令切换自己的自动拾取状态:
| 指令 | 说明 |
|---|---|
/lyck autopick | 开启或关闭地面物品自动拾取入库 |
玩家个人状态可通过 %lyck_autopick% 获取。
入库位置
玩家拾取地面物品时,插件只检查该玩家已经解锁的仓库,并按照 warehouse 中的配置顺序处理:
- 从仓库第一个槽位开始寻找可叠加的相同物品。
- 当前仓库没有可叠加物品时,寻找第一个空槽位。
- 当前仓库没有可用位置时,继续检查下一个已解锁仓库。
- 成功入库后,地面的物品实体会被移除。
- 所有已解锁仓库都无法存放时,物品不会被自动收走。
Lore 命中 prohibited-lore-for-storage 的物品不会自动进入仓库。
自动拾取成功消息由以下配置控制:
yaml
message:
auto-pickup-to-warehouse: '&7背包已满, 您拾取的[&f{name}x{amount}&7]已自动进入&6{id}仓库&7, 该物品在当前仓库内还有{has}个.'| 消息参数 | 内容 |
|---|---|
{id} | 实际进入的仓库标题 |
{name} | 物品名称 |
{amount} | 本次入库数量 |
{has} | 入库后该槽位的物品总数 |
自动分解
自动分解会在物品进入仓库后,根据物品 Lore 和玩家已开启的分解组进行匹配。
yaml
auto-decompose-item:
'垃圾分解':
- '&7品质: &a优秀'
- '&7品质: &f普通'
- '&7品质: &7破烂'auto-decompose-item 下的一级节点是自定义分解组 ID,列表内容是需要匹配的 Lore 关键词。只要物品任意一行 Lore 包含组内任意关键词,即视为命中该组。
| 项目 | 格式或说明 |
|---|---|
| 开关指令 | /lyck autofj 分解组ID |
| 分组权限 | lyck.autofj.分解组ID |
| 状态变量 | %lyck_autofj_分解组ID% |
| 变量结果 | true 或 false |
| 匹配方式 | 物品 Lore 包含配置关键词 |
| 触发时机 | 物品进入仓库时 |
| 功能依赖 | 对应物品必须存在可用的分解配置 |
执行 /lyck autofj 分解组ID 会切换指定分解组。玩家可以同时开启多个分解组,插件会依次检查玩家已经开启的组。
分解条件
Lore 命中后,还需要同时满足以下条件:
- 分解插件能够为该物品返回有效的分解结果。
- 玩家全部仓库的剩余空槽位足以接收分解产物。
- 分解结果能够正常生成物品。
条件满足后,插件会从仓库中扣除本次进入的物品,并将分解产物重新存入玩家仓库。相同分解产物会合并统计后再发放。
相关消息配置:
yaml
message:
auto-decompose: '&7你的{item}x{amount}&7在进入仓库后已经自动分解.'
auto-decompose-permission: '&7你没有权限开关 &6{group} &7自动分解功能.'
auto-decompose-enable: '&a已开启 &6{group} &a自动分解功能.'
auto-decompose-disable: '&7已关闭 &6{group} &7自动分解功能.'
fj-result: '&7分解获得: &f{name}x{amount}'| 消息参数 | 内容 |
|---|---|
{group} | 自动分解组 ID |
{item} | 被分解的物品名称 |
{amount} | 被分解的物品数量,或分解产物数量 |
{name} | 分解产物名称 |
自动出售
自动出售会在物品进入仓库后,根据物品 Lore 和玩家已开启的出售组进行匹配。
yaml
auto-sell-item:
'垃圾出售':
- '&7品质: &a优秀'
- '&7品质: &f普通'
- '&7品质: &7破烂'auto-sell-item 下的一级节点是自定义出售组 ID,列表内容是需要匹配的 Lore 关键词。只要物品任意一行 Lore 包含组内任意关键词,即视为命中该组。
| 项目 | 格式或说明 |
|---|---|
| 开关指令 | /lyck autosell 出售组ID |
| 分组权限 | lyck.autosell.出售组ID |
| 状态变量 | %lyck_autosell_出售组ID% |
| 变量结果 | true 或 false |
| 匹配方式 | 物品 Lore 包含配置关键词 |
| 触发时机 | 物品进入仓库时 |
| 功能依赖 | 出售插件必须能够出售对应物品 |
执行 /lyck autosell 出售组ID 会切换指定出售组。玩家可以同时开启多个出售组。
Lore 命中后,插件会调用出售功能尝试出售本次进入仓库的物品。出售成功时,从仓库扣除对应数量;出售失败时,不会扣除物品。
相关消息配置:
yaml
message:
auto-sell: '&7你的{item}x{amount}&7在进入仓库后已经自动出售.'
auto-sell-permission: '&7你没有权限开关 &6{group} &7自动出售功能.'
auto-sell-enable: '&a已开启 &6{group} &a自动出售功能.'
auto-sell-disable: '&7已关闭 &6{group} &7自动出售功能.'| 消息参数 | 内容 |
|---|---|
{group} | 自动出售组 ID |
{item} | 被出售的物品名称 |
{amount} | 被出售的物品数量 |
自动排序
自动排序通过仓库自定义按钮执行。排序组中的关键词从上到下代表排序优先级。
yaml
sort-button:
品质排序:
- '&7品质: &6史诗'
- '&7品质: &d极品'
- '&7品质: &b精良'
- '&7品质: &a优秀'
- '&7品质: &f普通'
作用排序:
- '&7类型: &b武器'
- '&7类型: &b装备'
- '&7类型: &b首饰'
- '&7类型: &b材料'
- '&7类型: &b道具'在仓库按钮的 handle 中使用 sort:排序组ID:
yaml
warehouse:
'仓库1':
button:
2:
item: '66:0'
name: '&6一键排序'
lore:
- '&a根据品质排序'
handle:
- 'sort:品质排序'排序时,插件依次读取排序组中的 Lore 关键词,将命中前方关键词的物品排在更前面。没有命中任何关键词的物品会放在已匹配物品之后。
排序期间会将玩家标记为正在操作,仓库界面不会接受其他物品操作。排序结束后自动刷新当前仓库界面。
yaml
message:
warehouse-sort-success: '&7背包整理成功!'
warehouse-sort-failed: '&c背包整理失败, 出现异常!'如果按钮引用的排序组不存在,玩家会收到排序 ID 不存在的提示。
MythicMobs 掉落入库
yaml
mythicmobs-drop-to-warehouse: true
pickup-to-warehouse-enable: trueMythicMobs 掉落入库需要同时开启 mythicmobs-drop-to-warehouse 和 pickup-to-warehouse-enable。该功能不读取玩家通过 /lyck autopick 设置的个人自动拾取状态。
当击杀者是玩家时,插件会优先尝试将怪物掉落物存入该玩家的仓库:
- MythicMobs 物品掉落会通过 MythicMobs 掉落事件处理。
- 普通非玩家实体的死亡掉落也存在对应的自动入库处理。
- 仓库成功接收物品后,该物品不会继续作为普通掉落生成。
- MythicMobs 物品无法进入仓库时,会在怪物死亡位置自然掉落。
- 玩家死亡不会触发该自动入库处理。
配置文件标注的 MythicMobs 测试版本为 4.11.0,该信息仅代表项目中的测试环境记录。
相关消息配置:
yaml
message:
mythicmobs-drop-to-warehouse: '&7您击杀 [&c{mob}&7] 时掉落的 [&f{name}x{amount}&7], 已自动进入仓库&7.'| 消息参数 | 内容 |
|---|---|
{mob} | 被击杀实体的自定义名称 |
{name} | 入库物品名称 |
{amount} | 入库物品数量 |
功能开关汇总
| 配置项 | 默认配置 | 说明 |
|---|---|---|
pickup-to-warehouse-enable | true | 自动拾取和怪物掉落入库总开关 |
auto-decompose-item | 配置分组 | 按 Lore 配置自动分解组 |
auto-sell-item | 配置分组 | 按 Lore 配置自动出售组 |
sort-button | 配置分组 | 配置仓库按钮可调用的排序规则 |
mythicmobs-drop-to-warehouse | true | 开启怪物掉落优先入库 |
prohibited-lore-for-storage | Lore 列表 | 阻止指定 Lore 物品进入仓库 |
auto-save-interval | 3 | 玩家仓库数据自动保存间隔,单位为秒 |
修改自动分解组、自动出售组或排序组 ID 后,需要同步修改对应指令、权限、变量或按钮中的组 ID。