Skip to content

配置说明

LyWarehouse 的主配置文件为 plugins/LyWarehouse/config.yml,用于配置数据保存方式、自动处理、仓库定义、仓库按钮、GUI 显示和提示文本。

修改普通配置后,可由 OP 执行 /lyck reload 重载配置。修改 mysql 配置时建议重启服务器,避免旧连接继续存在。

基础配置

配置键默认值说明
papi-slot-amount-default-value'0'%lyck_slot_amount:仓库ID:槽位ID% 查询不存在的物品槽位时返回的值。
debugfalse调试开关。
auto-save-interval3自动保存间隔,单位为秒。用于定期保存玩家仓库数据。
use-give-or-take-command-messagetrue/lyck give/lyck take 执行成功时,是否发送命令反馈。执行失败时仍会发送失败提示。
mythicmobs-drop-to-warehousetrue是否尝试将 MythicMobs 怪物掉落物优先存入仓库。
show-operation-logtrue是否记录玩家对仓库进行存入、取出、出售、分解和删除等操作。
hide-item-amounttrue是否隐藏仓库物品实际数量。启用后,GUI 中通常显示为 1 个;部分界面刷新逻辑会根据物品最大堆叠数显示数量。
try-auto-unlocktrue玩家打开未解锁仓库时,是否自动尝试解锁。关闭后需要玩家先执行解锁指令。
pickup-to-warehouse-enabletrue是否启用地面物品自动存入仓库功能。玩家仍可通过 /lyck autopick 切换自己的自动拾取状态。
prohibited-lore-for-storage[]包含指定 Lore 的物品禁止存入仓库。

禁止存入 Lore

配置值为 Lore 关键字列表。物品任意 Lore 行包含其中一项时,存入会被拒绝。

yaml
prohibited-lore-for-storage:
  - '&c禁止放入随身仓库'

数据库配置

MySQL 前置要求

启用 MySQL 存储前,必须安装 LyMySQLCore,并确认 LyMySQLCore 已成功连接数据库。插件未加载或数据库连接失败时,LyWarehouse 的 MySQL 数据读取、保存、同步以及数据转换功能都不会生效。

yaml
mysql:
  enable: false
  databasename: mc2
  username: mc2
  password: mc1234
  port: 3306
  ip: 127.0.0.1
配置键默认值说明
mysql.enablefalse是否启用 MySQL 存储。关闭时使用插件数据目录中的 YAML 文件保存。
mysql.databasenamemc2数据库名称。
mysql.usernamemc2数据库用户名。
mysql.passwordmc1234数据库密码。
mysql.port3306数据库端口。
mysql.ip127.0.0.1数据库地址。

关闭 MySQL 时,玩家数据默认保存在:

text
plugins/LyWarehouse/data/<玩家UUID>.yml

启用 MySQL 后,插件会使用插件名称创建数据表,并在玩家进入、保存数据时读取或写入玩家仓库数据。

从本地 YAML 转移到 MySQL 前,请先备份 plugins/LyWarehouse/data/。确认 LyMySQLCore 已成功连接数据库后,再由控制台执行:

text
/lyck yaml-to-mysql

该转换命令仅允许控制台执行,并且要求 MySQL 已连接。

自动分解

auto-decompose-item 用于定义自动分解组。玩家开启对应分解组后,符合 Lore 条件的物品在进入仓库时会尝试自动分解。

自动分解需要同时满足以下条件:

  • 玩家已通过 /lyck autofj <分解组ID> 开启对应分解组。
  • 玩家拥有 lyck.autofj.<分解组ID> 权限。
  • 配置中存在对应的分解组。
  • 物品 Lore 包含配置的任意关键字。
  • LyDecomposition 已提供该物品的分解配置。
  • 玩家背包有足够空间接收分解产物。

自动分解优先级高于自动出售。

yaml
auto-decompose-item:
  '垃圾分解':
    - '&7品质: &a优秀'
    - '&7品质: &f普通'
    - '&7品质: &7破烂'
配置路径说明
auto-decompose-item.<分解组ID>分解组名称。组 ID 用于指令、权限和变量。
auto-decompose-item.<分解组ID>.[ ]需要匹配的 Lore 关键字列表。任意 Lore 行包含关键字即可匹配。

自动出售

auto-sell-item 用于定义自动出售组。玩家开启对应出售组后,符合 Lore 条件的物品在进入仓库时会尝试自动出售。

自动出售需要同时满足以下条件:

  • 玩家已通过 /lyck autosell <出售组ID> 开启对应出售组。
  • 玩家拥有 lyck.autosell.<出售组ID> 权限。
  • 配置中存在对应的出售组。
  • 物品 Lore 包含配置的任意关键字。
  • LySell 已提供该物品的出售处理。
yaml
auto-sell-item:
  '垃圾出售':
    - '&7品质: &a优秀'
    - '&7品质: &f普通'
    - '&7品质: &7破烂'
配置路径说明
auto-sell-item.<出售组ID>出售组名称。组 ID 用于指令、权限和变量。
auto-sell-item.<出售组ID>.[ ]需要匹配的 Lore 关键字列表。任意 Lore 行包含关键字即可匹配。

排序按钮

sort-button 用于定义仓库按钮中的排序规则。按钮事件使用 sort:<排序ID> 调用对应规则。

排序规则从上到下执行。物品 Lore 包含越靠前的关键字,排序位置越靠前;没有匹配到关键字的物品会排在后面。

yaml
sort-button:
  品质排序:
    - '&7品质: &6史诗'
    - '&7品质: &d极品'
    - '&7品质: &b精良'
    - '&7品质: &a优秀'
    - '&7品质: &f普通'
  作用排序:
    - '&7类型: &b武器'
    - '&7类型: &b装备'
    - '&7类型: &b首饰'
    - '&7类型: &b材料'
    - '&7类型: &b道具'

排序期间玩家不能操作仓库。排序完成后会刷新界面,并发送 message.warehouse-sort-successmessage.warehouse-sort-failed

仓库配置

所有仓库定义位于 warehouse 下。仓库 ID 用于打开仓库、解锁仓库、按钮跳转和变量查询。

yaml
warehouse:
  '仓库1':
    main-id: '54:0'
    main-name: '&6随身仓库1 {status}'
    main-lore:
      - '&7这是一个随身仓库'
      - '&a[点击解锁/打开]'
    title: '&6随身仓库'
    size: 5
    open-condition: []
    unlock-condition: []
    button: {}

仓库基本属性

配置路径说明
warehouse.<仓库ID>.main-id仓库总览界面显示的物品类型。示例:54:0
warehouse.<仓库ID>.main-name仓库总览界面的物品名称。支持 {status},会替换为已解锁或未解锁文本。
warehouse.<仓库ID>.main-lore仓库总览界面的物品 Lore。支持 PlaceholderAPI 变量和 {status}
warehouse.<仓库ID>.title打开仓库后的 GUI 标题。
warehouse.<仓库ID>.size仓库物品区域的行数。代码会限制为 15 行,每行 9 个槽位。最后一行会用于显示自定义按钮,因此实际 GUI 高度为 size + 1 行。
warehouse.<仓库ID>.open-condition每次打开仓库时检查的条件。不满足时直接阻止打开。
warehouse.<仓库ID>.unlock-condition解锁仓库时检查的条件。涉及物品、经济或点券的条件在解锁成功时会扣除对应数量。
warehouse.<仓库ID>.button仓库底部 9 个按钮的配置。有效槽位为 08

打开条件

open-condition 支持以下条件:

条件格式说明
papi:{表达式}使用 PlaceholderAPI 变量进行数值或表达式判断。支持 >>===<<=
permission:{权限节点}玩家必须拥有指定权限。
nopermission:{权限节点}玩家不能拥有指定权限。

示例:

yaml
open-condition:
  - 'permission:{warehouse.vip.open}'
  - 'papi:{%player_level% > 10}'

解锁条件

unlock-condition 支持以下条件:

条件格式说明
unlock:{仓库ID}玩家必须已经解锁指定仓库。
eco:{金额}玩家需要拥有指定余额。解锁成功后会扣除金额,需要 Vault 经济服务正常工作。
point:{数量}玩家需要拥有指定点券。解锁成功后会扣除点券,需要 PlayerPoints 正常工作。
item:{物品名称#数量}玩家背包需要拥有指定名称和数量的物品。解锁成功后会扣除物品。
papi:{表达式}使用 PlaceholderAPI 变量进行判断。支持 >>===<<=
permission:{权限节点}玩家必须拥有指定权限。
nopermission:{权限节点}玩家不能拥有指定权限。

示例:

yaml
unlock-condition:
  - 'unlock:{仓库0}'
  - 'eco:{10}'
  - 'point:{10}'
  - 'item:{&6牛马工具#10}'
  - 'papi:{%player_level% > 10}'
  - 'permission:{解锁权限.10级}'
  - 'nopermission:{解锁权限.10级}'

条件扣除

ecopointitem 条件会在全部条件检查通过后扣除对应资源。配置这些条件时,请确认 Vault、PlayerPoints 以及相关物品匹配功能可正常使用。

仓库按钮

按钮配置位于 warehouse.<仓库ID>.button.<槽位>,槽位范围为 08

配置路径说明
item按钮物品类型。示例:54:0
name按钮名称。支持 & 颜色代码。
lore按钮 Lore 列表。
handle点击按钮后依次执行的事件列表。

示例:

yaml
button:
  1:
    item: '54:0'
    name: '&6一键存入'
    lore:
      - '&a将背包内尽可能所有物品依次尝试存入本仓库'
    handle:
      - 'dislodge'
  2:
    item: '66:0'
    name: '&6一键排序'
    lore:
      - '&a根据品质排序'
    handle:
      - 'sort:品质排序'

支持的按钮事件:

事件格式说明
close关闭当前 GUI。
delay:<秒数>延迟指定秒数后继续执行后续事件。支持小数。
message:<文本>向玩家发送文本。支持 & 颜色代码。
command:<指令>以控制台身份执行指令,并先解析玩家的 PlaceholderAPI 变量。
open:<仓库ID>打开指定仓库的存储模式。
fj:<仓库ID>打开指定仓库的分解模式。需要 LyDecomposition 提供分解功能。
sell:<仓库ID>打开指定仓库的出售模式。需要 LySell 提供出售功能。
remove:<仓库ID>打开指定仓库的删除模式。
sort:<排序ID>使用 sort-button.<排序ID> 中的规则整理仓库。
dislodge尝试将玩家背包中的物品依次存入当前仓库。

常用模式按钮示例:

yaml
button:
  3:
    item: '54:0'
    name: '&6存储模式'
    lore:
      - '&a[点击进入]'
    handle:
      - 'message:&7你进入了 仓库1 存储模式'
      - 'open:仓库1'
  4:
    item: '145:2'
    name: '&6分解模式'
    lore:
      - '&a[点击进入]'
    handle:
      - 'fj:仓库1'
  5:
    item: '266:0'
    name: '&6出售模式'
    lore:
      - '&a[点击进入]'
    handle:
      - 'sell:仓库1'
  6:
    item: '327:0'
    name: '&6删除模式'
    lore:
      - '&a[点击进入]'
    handle:
      - 'remove:仓库1'

GUI 配置

yaml
gui:
  lock-replace: '&7[未解锁]'
  unlock-replace: '&a[已解锁]'
  main-title: '&6仓库总览'
  fill-item: '160:9'
  fill-name: '&7封锁'
  search-last-item: '341:0'
  search-last-name: '&b上翻页'
  search-next-item: '341:0'
  search-next-name: '&b下翻页'

总览和搜索界面

配置键说明
gui.lock-replace仓库总览中未解锁仓库的状态文本。
gui.unlock-replace仓库总览中已解锁仓库的状态文本。
gui.main-title仓库总览界面的标题。
gui.fill-itemGUI 空白位置使用的填充物品。
gui.fill-name填充物品名称。
gui.search-last-item搜索界面上翻页按钮物品。
gui.search-last-name搜索界面上翻页按钮名称。
gui.search-next-item搜索界面下翻页按钮物品。
gui.search-next-name搜索界面下翻页按钮名称。

搜索界面每页显示最多 45 个匹配物品,并使用上翻页和下翻页按钮切换页面。搜索内容会匹配物品显示名称和 Lore,也支持拼音匹配。

物品 Lore

以下配置用于在仓库物品后追加操作说明。{amount} 会替换为仓库中该物品的实际数量。

配置键使用场景
gui.extra-lore普通存储模式和搜索界面。
gui.fj-lore分解模式。
gui.sell-lore出售模式。
gui.remove-lore删除模式。

默认示例:

yaml
gui:
  extra-lore:
    - '&7&m                           '
    - '&7物品数量: &a{amount}'
    - ''
    - '&6左键&a取出1个'
    - '&6右键&a取出10个'
    - '&6SHIFT+左键&a取出一组'
    - '&6SHIFT+右键&a尽量全部取出'
    - ''
    - '&6中键点击&a后再&6中键点击&6另一位置可进行位置互换'
  fj-lore:
    - '&7&m                           '
    - '&7物品数量: &a{amount}'
    - ''
    - '&6左键&a分解1个'
    - '&6右键&a分解10个'
    - '&6SHIFT+左键&a分解100个'
    - '&6SHIFT+右键&a分解1000个'
  sell-lore:
    - '&7&m                           '
    - '&7物品数量: &a{amount}'
    - ''
    - '&6左键&a出售1个'
    - '&6右键&a出售10个'
    - '&6SHIFT+左键&a出售100个'
    - '&6SHIFT+右键&a出售1000个'
  remove-lore:
    - '&7&m                           '
    - '&7物品数量: &a{amount}'
    - ''
    - '&6左键&c删除1个'
    - '&6右键&c删除10个'
    - '&6SHIFT+左键&c删除100个'
    - '&6SHIFT+右键&c删除1000个'

提示文本

所有提示文本位于 message 下。文本支持 & 颜色代码。消息中的占位符会在发送时替换。

配置键支持占位符说明
message.not-storage仓库只允许取出时,阻止存入提示。
message.prohibited-lore-for-storage物品 Lore 被禁止时的提示。
message.storage-success{amount}存入成功提示。
message.warehouse-full没有可用仓库槽位时的提示。
message.replace-event-log{slot}记录待交换的仓库槽位。
message.replace-event-success{oldSlot}{newSlot}槽位互换成功提示。
message.get-warehouse-item-success{getAmount}{warehouseAmount}取出成功提示。
message.fj-warehouse-item-success{getAmount}{time}{warehouseAmount}分解成功提示。
message.fj-result{name}{amount}分解产物提示。
message.fj-warehouse-item-failed{slot}分解时仓库空间不足提示。
message.remove-warehouse-item-success{name}{amount}删除物品成功提示。
message.sell-warehouse-item-success{getAmount}{warehouseAmount}出售成功提示。
message.unlock-success强制解锁成功提示。
message.unlock-fail不满足解锁条件提示。
message.unlock-repeat重复解锁提示。
message.warehouse-is-lock仓库未解锁提示。
message.auto-pickup-to-warehouse{name}{amount}{id}{has}背包已满,物品自动进入仓库提示。
message.give-command-message{name}{amount}{id}/lyck give 发放成功提示。
message.mythicmobs-drop-to-warehouse{mob}{name}{amount}MythicMobs 掉落物进入仓库提示。
message.warehouse-sort-success仓库排序成功提示。
message.warehouse-sort-failed仓库排序失败提示。
message.auto-sell{item}{amount}物品进入仓库后自动出售提示。
message.auto-decompose{item}{amount}物品进入仓库后自动分解提示。
message.auto-sell-permission{group}没有权限切换自动出售组提示。
message.auto-sell-enable{group}自动出售组开启提示。
message.auto-sell-disable{group}自动出售组关闭提示。
message.auto-decompose-permission{group}没有权限切换自动分解组提示。
message.auto-decompose-enable{group}自动分解组开启提示。
message.auto-decompose-disable{group}自动分解组关闭提示。

配置文件中的变量

以下变量由插件注册到 PlaceholderAPI,变量标识符为 lyck

变量返回内容
%lyck_now_warehouse%当前打开的仓库 ID。未打开仓库时返回空文本。
%lyck_now_warehouse_mode%当前 GUI 模式:存储分解出售删除总览
%lyck_unlock:<仓库ID>%玩家是否解锁指定仓库,返回 truefalse
%lyck_empty_slot_all%所有已解锁仓库的剩余空槽位数量。
%lyck_empty_slot:<仓库ID>%指定仓库的剩余空槽位数量。
%lyck_amount:<物品名>%玩家所有已解锁仓库中指定物品的数量。可匹配物品类型名称或显示名称。
%lyck_autopick%玩家自动拾取入库状态,返回 §a启用中§7未启用
%lyck_slot_amount:<仓库ID>:<槽位ID>%指定仓库指定槽位的物品数量。槽位不存在时返回 papi-slot-amount-default-value
%lyck_autofj_<分解组ID>%指定自动分解组是否开启,返回 truefalse
%lyck_autosell_<出售组ID>%指定自动出售组是否开启,返回 truefalse

尖括号内容是需要替换的实际参数,例如:

text
%lyck_unlock:仓库1%
%lyck_empty_slot:仓库1%
%lyck_slot_amount:仓库1:0%
%lyck_autofj_垃圾分解%
%lyck_autosell_垃圾出售%

配置相关注意事项

  • 仓库 size 最终只会生效为 15 行,超出范围的值会被限制。
  • 仓库底部额外增加 1 行,用于放置 button 中配置的按钮。
  • open-condition 只在打开仓库时检查,不满足条件时不会发送专用失败提示。
  • unlock-condition 中的经济和点券条件会在解锁成功后扣除资源。
  • 自动分解和自动出售都要求物品拥有 Lore,并按照 Lore 包含关系匹配配置关键字。
  • MySQL 功能依赖 LyMySQLCore 的有效数据库连接;仅填写 mysql 配置但未成功连接时不会启用 MySQL 数据存储。