Skip to content

槽位规则

槽位规则文件放在插件目录的 slot/ 下,用于定义槽位 ID、强化按钮、等级区间、强化条件、成功率、属性效果和降级规则。

插件会递归读取 slot/ 及其子目录中的 .yml 文件。自带的 slot/示例.yml 仅用于参考,加载时会被跳过。正式使用时需要复制为其他文件名再修改。

同一个文件可以配置多个槽位,每个顶级节点都是一个槽位 ID。不同文件中的槽位 ID 也应保持唯一,重复 ID 会互相覆盖。

配置结构

单个槽位支持以下配置:

配置项类型说明
enable-condition列表槽位可用条件,不满足时无法强化,属性也不会生效
permission-chance-addition节点根据权限调整强化成功率
item字符串强化界面中的按钮物品
name字符串强化按钮名称
lore列表强化按钮描述
level-down节点槽位降级规则
strengthen节点各等级或等级区间的强化规则
lore-get-value节点从当前槽位装备的 Lore 中读取自定义数值
yaml
Origin#MainHand:
  enable-condition: []
  permission-chance-addition: {}
  item: '160:2'
  name: '&6主手强化 &a({now_level}/{max_level})'
  lore: []
  level-down: {}
  strengthen: {}
  lore-get-value: {}

槽位 ID

槽位 ID 写在 YAML 的顶级节点。界面配置中的 slot-set、命令中的槽位参数和 PlaceholderAPI 变量中的槽位 ID,都需要使用这里的完整写法。

写法对应槽位补充说明
DragonCore#槽位名DragonCore 槽位槽位名填写龙核槽位名称
GermPlugin#槽位名GermPlugin 槽位槽位名填写萌芽槽位名称
APInventory#分页ID#槽位ID梦星桐背包槽位 ID 范围由示例标注为 0-53
LyInventory#背包ID#类型离渊背包类型如项链、戒指等
LyInventoryReload#背包ID#类型离渊背包重置版类型如项链、戒指等
YeeJewelry#背包ID#槽位ID清守饰品背包使用对应背包与槽位 ID
Origin#MainHand原版主手玩家当前主手物品
Origin#OffHand原版副手玩家当前副手物品
Origin#Helmet原版头盔玩家头盔栏物品
Origin#ChestPlate原版胸甲玩家胸甲栏物品
Origin#Legging原版护腿玩家护腿栏物品
Origin#Boots原版靴子玩家靴子栏物品
Minecraft#槽位ID原版背包槽位槽位 ID 范围由示例标注为 0-36

示例:

yaml
APInventory#饰品#3:
  item: '160:2'
  name: '&6饰品槽位强化'
  lore: []
  strengthen: {}

LyInventory#饰品#项链:
  item: '160:2'
  name: '&6项链槽位强化'
  lore: []
  strengthen: {}

槽位可用条件

enable-condition 决定玩家是否可以使用该槽位。

  • 玩家必须满足列表中的全部条件。
  • 条件不满足时,玩家无法强化或降级该槽位。
  • 条件不满足时,该槽位产生的强化属性也不会加载。
  • 删除该配置或使用空列表时,不额外限制槽位。
  • 拒绝提示由主配置的 message.enable-condition 设置。
条件格式说明
permission:{权限}玩家必须拥有指定权限
nopermission:{权限}玩家必须没有指定权限
papi:{表达式}解析 PlaceholderAPI 变量并判断表达式
yaml
enable-condition:
  - 'permission:{lss.mainhand}'
  - 'papi:{%player_level% >= 10}'

以上配置表示玩家必须拥有 lss.mainhand,并且 %player_level% 的值必须大于或等于 10

权限成功率加成

permission-chance-addition 可以根据玩家权限调整本次强化成功率。

yaml
permission-chance-addition:
  'VIP1加成':
    permission: 'vip.1'
    formula: '{chance}*1.1'
    show-lore: '&a(VIP1 成功率加成)'
配置项说明
节点名称规则 ID,只需在当前槽位内保持唯一
permission触发该规则所需的权限
formula成功率计算公式,可使用 {chance}
show-lore追加到按钮和成功率变量后的文字

当玩家同时满足多条权限规则时,插件只采用计算结果最高的一条,不会叠加全部规则。最终成功率会限制在 0-1,界面中则显示为 0%-100%

强化按钮

itemnamelore 用于构建强化界面中的槽位按钮。

yaml
item: '160:2'
name: '&7>> &6主手槽位强化 &a({now_level}/{max_level})'
lore:
  - '&7当前强化效果:'
  - '{now_strength}'
  - ''
  - '&7下级强化效果:'
  - '{next_strength}'
  - ''
  - '&7下级强化需求:'
  - '{need_condition}'
  - ''
  - '&7强化成功率:&6{chance}'
  - ''
  - '&7降级需求:'
  - '{leveldown_condition}'
占位符可用位置说明
{now_level}namelore当前强化等级
{max_level}namelore当前槽位最大等级
{now_strength}lore 独立一行展开当前等级的 show-lore
{next_strength}lore 独立一行展开下一级的 show-lore,满级时显示全局 max-level-lore
{need_condition}lore 独立一行展开下一级强化条件中 `
{chance}lore下一级强化成功率,并附加生效的权限加成说明
{leveldown_condition}lore 独立一行展开降级条件中 `

{now_strength}{next_strength}{need_condition}{leveldown_condition} 需要单独占据一行,插件才会将其展开为多行内容。

按钮名称、Lore、成功率公式和展示属性支持 PlaceholderAPI 变量。颜色代码使用 &

强化等级

强化规则写在 strengthen 节点中。子节点可以是单个等级,也可以是闭合等级区间。

yaml
strengthen:
  '1':
    chance: '1'
    condition: []
    fixed-lore:
      - '&6攻击力 &a+1'
    show-lore:
      - '{fixed_lore}'

  '2-5':
    chance: '1-({level}*0.1)'
    condition: []
    fixed-lore:
      - '&6攻击力 &a+<1*{level}~%.0f>'
    show-lore:
      - '{fixed_lore}'
节点写法说明
'1'该规则匹配等级 1
'2-5'该规则匹配等级 25,包含两端

玩家从当前等级强化时,插件读取目标等级对应的规则。例如玩家当前为 2 级,强化到 3 级时使用匹配等级 3 的配置。

槽位最大等级由所有强化节点中的最大等级自动计算。例如最高节点为 '6-10',最大等级就是 10。达到最大等级后,不再执行强化。

每个等级规则支持以下内容:

配置项说明
condition强化前需要满足并扣除的条件
chance强化成功率,可填写固定值、公式和 PlaceholderAPI 变量
start-command条件满足并完成扣除后、判断成功率前执行的命令
success-command强化成功后执行的命令
fail-command强化失败后执行的命令
fixed-lore该等级固定产生的属性 Lore
addition-lore根据槽位装备原有 Lore 数值计算附加属性
show-lore在按钮和变量中展示的强化效果

强化成功率

chance 的有效范围为 0-1

数值对应成功率
00%
0.550%
1100%
yaml
chance: '1-({level}*0.1)'

{level} 在强化规则中表示目标等级。成功率公式也支持 PlaceholderAPI 变量,包括插件提供的失败次数变量:

yaml
chance: '0.5+(%lss_fail_count_Origin#MainHand%*0.05)'

失败次数会在强化失败后增加,在强化成功、降级或强制设置新数据时归零。最终成功率低于 0 时按 0 处理,高于 1 时按 1 处理。

强化条件

condition 中的每一项由“实际条件”和可选的“展示文本”组成:

yaml
condition:
  - 'eco:{10*{level}*{level}}| &e需要:金币 x{amount}'

| 左侧用于检测和扣除,右侧用于 {need_condition} 的界面展示。右侧可以省略;省略后该条件仍会执行,但不会显示在 {need_condition} 中。

玩家必须满足列表中的全部条件。物品和货币条件会先统一检查,全部满足后再扣除。如果后续强化失败,已经扣除的材料不会返还。

条件格式作用是否扣除
item:{插件@物品ID#数量公式}检查物品库物品数量
eco:{金额公式}通过 Vault 经济检查金币
point:{点券公式}通过 PlayerPoints 检查点券
cx:{货币ID#金额公式}检查 CraftX 指定货币
lshop:{货币ID#金额公式}检查离渊商店重置版指定货币
papi:{表达式}判断 PlaceholderAPI 表达式
permission:{权限}判断玩家拥有权限
nopermission:{权限}判断玩家没有权限

物品条件

yaml
condition:
  - 'item:{MM5@强化石#2*{level}}| &7需要:{item} x{amount}'

格式组成:

部分说明
MM5物品库插件标识
强化石对应物品库中的物品 ID
2*{level}需要扣除的数量公式

自带配置示例标注的物品库标识包括 MM4MM5NISISX2。材料数量会按公式计算并转换为整数。

主配置中的 filter-item-contain-specified-lore 会过滤包含指定 Lore 的背包物品,防止这些物品被作为强化或降级材料扣除。

金币条件

金币条件通过 Vault 经济服务处理。使用该条件前,服务器需要存在可用的 Vault 经济实现。

yaml
condition:
  - 'eco:{100*{level}}| &e需要:金币 x{amount}'

点券条件

点券条件通过 PlayerPoints 处理。

yaml
condition:
  - 'point:{10*{level}}| &b需要:点券 x{amount}'

CraftX 货币条件

yaml
condition:
  - 'cx:{强化币#5*{level}}| &b需要:强化币 x{amount}'

离渊商店货币条件

yaml
condition:
  - 'lshop:{强化币#5*{level}}| &b需要:强化币 x{amount}'

判断条件

yaml
condition:
  - 'papi:{%player_level% >= 20}| &7需要:玩家等级达到 20 级'
  - 'permission:{strengthen.use}| &7需要:拥有强化权限'
  - 'nopermission:{strengthen.locked}| &7需要:没有强化锁定权限'

展示文本占位符

| 后的展示文本支持以下占位符:

占位符说明
{item}物品条件对应物品的显示名称
{amount}物品或货币公式计算后的数量
{level}本次配置计算使用的等级

展示文本还会继续解析 PlaceholderAPI 变量。

强化命令

每个强化等级可以配置三个命令阶段:

yaml
start-command:
  - '[op]say %player_name% 正在进行 {now_level} 级到 {next_level} 级的强化'

success-command:
  - '[console]say %player_name% 强化到 {next_level} 级成功'

fail-command:
  - '[console]say %player_name% 强化到 {next_level} 级失败'
配置项执行时机
start-command强化条件检测通过并完成材料扣除后、判断成功率前
success-command强化成功并更新等级时
fail-command强化失败并增加失败次数时

自带示例确认支持以下命令执行前缀:

前缀说明
[console]由控制台执行命令
[op]以玩家的临时 OP 身份执行命令

命令中可以使用:

占位符说明
{now_level}强化前等级
{next_level}强化目标等级
%player_name%PlaceholderAPI 玩家名称变量

固定属性

fixed-lore 用于直接生成属性 Lore。生成结果会提交给主配置 attribute-plugin 指定的属性插件。

yaml
fixed-lore:
  - '&6攻击力 &a+<1*{level}~%.0f>'
  - '&6生命值 &a+<5*{level}~%.1f>'
内容说明
{level}当前实际生效或正在展示的等级
<公式>计算公式并替换为结果
<公式~格式>计算公式并按 Java 数字格式输出

默认公式边界符是 <>,可通过主配置的 calculate-key-leftcalculate-key-right 修改。尖括号公式必须成对出现。

yaml
fixed-lore:
  - '&6攻击力 &a+<1.5*{level}~%.2f>'

以上公式会保留两位小数。fixed-lore 中也可以使用 PlaceholderAPI 变量。

装备 Lore 增幅

addition-lore 会读取当前槽位装备的原有 Lore 数值,再根据强化等级计算附加属性。适合实现“按装备原属性百分比增加”的效果。

yaml
addition-lore:
  '攻击力':
    formula:
      - '&6攻击力 &a+<value>'
    value: '{value}*0.1*{level}'
    attribute-format: '{attribute}+{value}'
配置项说明
节点名称属性名称,可通过 {attribute} 写入最终格式
formula用于匹配装备 Lore 的格式列表,<value> 表示需要提取的数值位置
value将读取结果转换为强化加成的公式
attribute-format提交给属性插件的最终属性文本

处理过程如下:

  1. 插件遍历槽位装备的 Lore。
  2. 根据 formula<value> 左右两侧文字定位数值。
  3. 多个匹配公式和多行匹配结果会累加。
  4. 将累计结果代入 value 中的 {value}
  5. 将结果与属性名称代入 attribute-format

value 支持:

占位符说明
{value}从装备 Lore 中读取并累计的数值
{level}当前槽位强化等级
{v.变量ID}lore-get-value 读取到的自定义数值

attribute-format 支持:

占位符说明
{attribute}addition-lore 的节点名称
{value}计算后的强化加成数值

装备 Lore 中的读取值支持正数单值和正数区间。区间使用两个数值的平均值,例如 10-20 会按 15 参与计算。未读取到有效正数,或累计结果不大于 0 时,不会生成该条附加属性。

效果展示

show-lore 只负责按钮和 PlaceholderAPI 变量中的效果展示,不直接产生属性。

yaml
show-lore:
  - '{fixed_lore}'
  - '&6装备攻击力增幅 &a+<0.1*{level}*100~%.0f>%'
写法说明
{fixed_lore}在当前位置展开当前等级的全部 fixed-lore
{level}当前正在展示的等级
<公式~格式>计算并格式化展示数值
PlaceholderAPI 变量按当前玩家解析

{now_strength}%lss_now_strength_槽位ID% 读取当前等级的 show-lore{next_strength}%lss_next_strength_槽位ID% 读取下一等级的 show-lore

如果希望固定属性同时显示在按钮上,需要在 show-lore 中加入 {fixed_lore}。只配置 fixed-lore 而不配置对应展示内容时,属性仍可生效,但按钮不会自动展示它。

自定义 Lore 数值

lore-get-value 可以从当前槽位装备的固定 Lore 中读取数值,并在 addition-lore.value 中通过 {v.变量ID} 使用。

yaml
lore-get-value:
  '增幅强度':
    default-value: 1
    lore-formula: '&7槽位增幅强度:<value>%'
配置项说明
节点名称自定义变量 ID
default-value没有找到有效数值时使用的默认值,默认是 1
lore-formula装备 Lore 匹配格式,<value> 表示数值位置

在属性增幅中调用:

yaml
addition-lore:
  '攻击力':
    formula:
      - '&6攻击力 &a+<value>'
    value: '{value}*{v.增幅强度}*0.01*{level}'
    attribute-format: '{attribute}+{value}'

读取时只采用第一个匹配结果。支持正数单值和正数区间;区间取平均值。该功能适合读取格式固定的装备 Lore,不适合依赖多层动态结果继续嵌套匹配。

属性生效条件

槽位属性生效前会依次检查:

  1. 玩家是否满足当前槽位的 enable-condition
  2. 当前等级是否存在对应的 strengthen 规则。
  3. 当前槽位中是否存在可读取的装备。
  4. 主配置 check-put-on-condition 中的装备穿戴条件是否通过。
  5. fixed-loreaddition-lore 是否能生成有效属性文本。

fixed-lore 不要求槽位中存在物品即可生成;addition-lore 必须读取槽位装备的 Lore。最终属性由主配置 attribute-plugin 指定的属性插件接收。

降级规则

启用 level-down 后,玩家可以在强化界面中右键槽位按钮,将槽位降低一级。

yaml
level-down:
  enable: true
  condition:
    - 'item:{MM5@降级石#1*{level}}| &7需要:{item} x{amount}'
    - 'eco:{10*{level}*{level}}| &e需要:金币 x{amount}'
  command:
    - '[console]tell %player_name% 降级成功'
配置项说明
enable是否启用右键降级,默认关闭
condition降级前需要满足并扣除的条件
command降级条件通过并完成扣除后执行的命令

降级规则具有以下行为:

  • 当前等级为 0 时不会继续降级。
  • 降级条件支持与强化条件相同的物品、金币、点券、货币、变量和权限写法。
  • 条件全部满足后,物品和货币会被扣除。
  • 降级成功后等级减少 1,失败次数归零。
  • 降级没有随机成功率,条件满足后直接完成。
  • 未启用时,{leveldown_condition} 显示“降级功能未启用”。
  • 条件不足提示由主配置 message.level-down-fail 设置。
  • 成功提示由主配置 message.level-down-success 设置。

降级 condition 中的 {level} 按当前实现会替换为“当前等级加一”。配置按等级变化的降级消耗时,需要按此规则计算。

完整配置参考

yaml
Origin#MainHand:
  enable-condition:
    - 'permission:{lss.mainhand}'
    - 'papi:{%player_level% >= 0}'

  permission-chance-addition:
    'VIP1加成':
      permission: 'vip.1'
      formula: '{chance}*1.1'
      show-lore: '&a(VIP1 成功率加成)'

  item: '160:2'
  name: '&7>> &6主手槽位强化 &a({now_level}/{max_level})'
  lore:
    - '&7当前强化效果:'
    - '{now_strength}'
    - ''
    - '&7下级强化效果:'
    - '{next_strength}'
    - ''
    - '&7下级强化需求:'
    - '{need_condition}'
    - ''
    - '&7强化成功率:&6{chance}'
    - ''
    - '&a左键强化 &7| &c右键降级'
    - ''
    - '&7降级需求:'
    - '{leveldown_condition}'

  level-down:
    enable: true
    condition:
      - 'item:{MM5@降级石#1*{level}}| &7需要:{item} x{amount}'
      - 'eco:{10*{level}*{level}}| &e需要:金币 x{amount}'
    command:
      - '[console]tell %player_name% 降级成功'

  strengthen:
    '0-5':
      condition:
        - 'item:{MM5@强化石#1*{level}}| &7需要:{item} x{amount}'
        - 'eco:{10*{level}*{level}}| &e需要:金币 x{amount}'
        - 'point:{10*{level}}| &b需要:点券 x{amount}'
        - 'papi:{%player_level% >= 0}| &7需要:玩家等级大于或等于 0'
      chance: '1-({level}*0.1)'
      start-command:
        - '[op]say %player_name% 正在进行 {now_level} 级到 {next_level} 级的强化'
      success-command:
        - '[console]say %player_name% 强化到 {next_level} 级成功'
      fail-command:
        - '[console]say %player_name% 强化到 {next_level} 级失败'
      fixed-lore:
        - '&6攻击力 &a+<1*{level}~%.0f>'
      addition-lore:
        '攻击力':
          formula:
            - '&6攻击力 &a+<value>'
          value: '{value}*0.1*{level}'
          attribute-format: '{attribute}+{value}'
      show-lore:
        - '{fixed_lore}'
        - '&6装备攻击力增幅 &a+<0.1*{level}*100~%.0f>%'

  lore-get-value:
    '增幅强度':
      default-value: 1
      lore-formula: '&7槽位增幅强度:<value>%'

配置注意事项

  • slot/示例.yml 不会被加载,必须复制并更改文件名。
  • 槽位 ID 会用于数据保存、界面绑定、命令和变量,投入使用后不应随意更名。
  • 等级节点必须是整数或 最小等级-最大等级 格式。
  • strengthen 中没有任何等级节点时,槽位最大等级为 0
  • condition 的实际判断部分与展示部分使用半角竖线 | 分隔。
  • 物品条件必须同时包含 @#,格式为 插件@物品ID#数量公式
  • cxlshop 条件必须使用 货币ID#金额公式
  • 属性公式默认使用 <>,如果主配置修改了计算边界符,槽位文件也要同步修改。
  • show-lore 仅用于展示;真正提交给属性插件的是 fixed-loreaddition-lore 的计算结果。
  • PlaceholderAPI 变量、Vault 金币、PlayerPoints 点券、CraftX 货币和离渊商店货币只有在对应插件或服务可用时才能正常处理。