Skip to content

自动功能

自动功能负责处理物品拾取、入库后的分解与出售,以及仓库排序和怪物掉落入库。自动分解的处理优先级高于自动出售。

玩家的自动拾取、自动分解组和自动出售组状态会随仓库数据保存。默认使用本地 YAML 数据;启用 MySQL 后,必须安装 LyMySQLCore,并确保 LyMySQLCore 已成功连接数据库,否则 MySQL 数据加载、保存及相关功能不会生效。

处理规则

物品进入仓库时会触发仓库存储事件,自动分解和自动出售根据玩家已开启的分组检查物品 Lore。

顺序处理说明
1禁止存入检查Lore 命中 prohibited-lore-for-storage 时拒绝入库
2寻找存放位置优先叠加到已解锁仓库中的相同物品,再寻找空槽位
3自动分解匹配玩家已开启的自动分解组时尝试分解
4自动出售未被自动分解处理时,根据自动出售组尝试出售

自动分解或自动出售匹配失败时,物品仍按普通物品保存在仓库中。

自动拾取入库

yaml
pickup-to-warehouse-enable: true

pickup-to-warehouse-enable 是全服自动拾取功能总开关。关闭后,玩家个人状态和怪物掉落入库均不会触发。

玩家使用以下指令切换自己的自动拾取状态:

指令说明
/lyck autopick开启或关闭地面物品自动拾取入库

玩家个人状态可通过 %lyck_autopick% 获取。

入库位置

玩家拾取地面物品时,插件只检查该玩家已经解锁的仓库,并按照 warehouse 中的配置顺序处理:

  1. 从仓库第一个槽位开始寻找可叠加的相同物品。
  2. 当前仓库没有可叠加物品时,寻找第一个空槽位。
  3. 当前仓库没有可用位置时,继续检查下一个已解锁仓库。
  4. 成功入库后,地面的物品实体会被移除。
  5. 所有已解锁仓库都无法存放时,物品不会被自动收走。

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%
变量结果truefalse
匹配方式物品 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%
变量结果truefalse
匹配方式物品 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: true

MythicMobs 掉落入库需要同时开启 mythicmobs-drop-to-warehousepickup-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-enabletrue自动拾取和怪物掉落入库总开关
auto-decompose-item配置分组按 Lore 配置自动分解组
auto-sell-item配置分组按 Lore 配置自动出售组
sort-button配置分组配置仓库按钮可调用的排序规则
mythicmobs-drop-to-warehousetrue开启怪物掉落优先入库
prohibited-lore-for-storageLore 列表阻止指定 Lore 物品进入仓库
auto-save-interval3玩家仓库数据自动保存间隔,单位为秒

修改自动分解组、自动出售组或排序组 ID 后,需要同步修改对应指令、权限、变量或按钮中的组 ID。