Skip to content

配置说明

LyGemReload 的配置由主配置和 4 类独立物品配置组成。插件启动或执行重载后,会重新读取主配置、gem/ 目录下的所有 .yml 文件,以及开孔道具、拆卸工具和额外道具配置。

配置文件

文件 / 目录用途
config.yml属性槽位、属性插件、条件限制、镶嵌上限、拆卸模式、界面和消息。
gem/*.yml宝石配置。gem/ 目录及其子目录下的所有 .yml 文件都会被读取。
开孔道具.yml装备开孔道具、开孔次数、适用装备和随机开孔结果。
拆卸工具.yml拆卸工具、拆卸成功率、返还宝石概率和可拆卸宝石范围。
额外道具.yml镶嵌时使用的额外道具及其附加属性、成功率和消息。

修改配置后,可使用 /lgr reload 重新加载。该重载操作由 OP 执行。

颜色代码使用 &,例如 &a成功。配置中的颜色代码会在插件读取时转换为游戏颜色代码。

config.yml

attribute-slot

attribute-slot 用于声明需要加载镶嵌隐藏属性的装备槽位。插件会读取这些槽位中的装备,并将宝石属性交给 attribute-plugin 指定的属性插件。

数组中的每一项使用 类型#参数 格式。不同类型需要的参数数量不同。

写法说明
DragonCore#槽位名读取 DragonCore 槽位。
GermPlugin#槽位名读取 GermPlugin 槽位。
APInventory#分页ID#槽位ID读取 APInventory 指定分页的槽位,槽位 ID 为 053
LyInventory#背包ID#类型读取 LyInventory 指定背包类型的物品。
LyInventoryReload#背包ID#类型读取 LyInventoryReload 指定背包类型的物品。
PXRPG#类型#背包ID#槽位读取 PXRPG 装备容器中的指定槽位。
Origin#MainHand原版主手。
Origin#OffHand原版副手。
Origin#Helmet原版头盔。
Origin#ChestPlate原版胸甲。
Origin#Legging原版护腿。
Origin#Boots原版鞋子。
Minecraft#槽位ID原版玩家背包槽位。代码读取的是玩家背包索引。

示例:

yaml
attribute-slot:
  - 'Origin#MainHand'
  - 'Origin#OffHand'
  - 'Origin#Helmet'

如果使用隐藏属性但没有在这里填写对应装备槽位,插件不会从该槽位加载宝石隐藏属性。

attribute-plugin

attribute-plugin 指定宝石属性的承载插件。当前代码支持以下值:

说明
AttributePlus使用 AttributePlus 接收属性。
SX-Attribute2使用 SX-Attribute2 接收属性。
SX-Attribute3使用 SX-Attribute3 接收属性。
AttributeSystem使用 AttributeSystem 接收属性。
ItemLoreOrigin使用 ItemLoreOrigin 接收属性。
空字符串不匹配上述属性插件。

示例:

yaml
attribute-plugin: 'AttributePlus'

修改该配置后需要重启服务器。属性插件本身也必须已安装并正常运行。

插件会在玩家加入服务器、关闭容器、切换快捷栏、交换主副手物品等事件后重新检查属性。当前属性列表没有变化时会跳过重复刷新。

germ-message-dos

当安装并启用 GermPlugin 时,message 中发送的消息可以改为执行 GermPlugin 的 DOS。列表中的 {message} 会替换为本次准备发送的消息。

yaml
germ-message-dos:
  - '你的 GermPlugin DOS 配置'

为空或未配置时,消息使用普通聊天消息发送。该配置只在 GermPlugin 已启用时生效。

镶嵌 Lore 限制

the-item-exist-lore-prevent-inlay

装备 Lore 中存在列表内任意一行时,禁止镶嵌。

yaml
the-item-exist-lore-prevent-inlay:
  - '未绑定'

the-gem-exist-lore-prevent-inlay

宝石 Lore 中存在列表内任意一行时,禁止镶嵌。

yaml
the-gem-exist-lore-prevent-inlay:
  - '未绑定'

代码使用 Lore 行的精确包含判断;任意一项命中后会发送对应的禁止镶嵌消息。

placeholder-inlay-enable

是否启用按条件限制每件装备最大镶嵌数量。

yaml
placeholder-inlay-enable: false

设置为 true 后,插件会读取 placeholder-inlay 下的规则。设置为 false 时,不使用这些规则限制镶嵌数量。

placeholder-inlay

placeholder-inlay 下的每个一级键都是一条镶嵌上限规则。规则包含以下配置:

配置项类型说明
max-inlay整数该规则允许每件装备镶嵌的最大宝石数量。
condition字符串列表规则生效条件。列表内的条件需要全部满足。

规则按照配置读取顺序判断,只使用第一条满足条件的规则。因此应将限制较高、条件较严格的规则写在前面,默认规则写在最后。

yaml
placeholder-inlay-enable: true
placeholder-inlay:
  OP权限:
    max-inlay: 999
    condition:
      - 'permission:{admin}'
  大于100级:
    max-inlay: 10
    condition:
      - 'papi:{%player_level% > 100}'
  大于50级:
    max-inlay: 5
    condition:
      - 'papi:{%player_level% > 50}'
  默认:
    max-inlay: 2
    condition: []

支持的条件写法:

写法说明
permission:{权限节点}玩家拥有权限时满足。
nopermission:{权限节点}玩家没有权限时满足。
papi:{表达式}先解析 PlaceholderAPI 占位符,再判断表达式。

papi:{表达式} 支持数值比较、字符串比较、布尔值、&&||。数值表达式支持 +-*/ 和括号。

若启用该功能但没有任何规则满足,最大镶嵌数量保持为 0,因此应始终准备一条无条件的默认规则。

force-out-gem-enable

是否启用点击宝石直接拆卸。

说明
true点击界面中的已镶嵌宝石即可拆卸,不需要拆卸工具,也不检查拆卸工具成功率。宝石会直接返还。
false使用拆卸工具点击宝石进行拆卸,按照 拆卸工具.yml 中的成功率和返还概率处理。
yaml
force-out-gem-enable: false

无论使用哪种模式,宝石自身的 can-disassembled 必须为 true 才能拆卸。

gui-auto-slot-mode-enable

控制镶嵌界面的物品交互方式。

说明
true快捷模式。点击玩家背包中的物品时,宝石自动进入宝石槽,额外道具自动进入额外道具槽,其他物品进入装备槽。点击界面的装备、宝石或额外道具槽会尝试放回玩家背包。拆卸工具不参与自动入槽。
false旧版手动模式。保留原有的拿起和放入交互,只允许操作装备、宝石和额外道具槽。
yaml
gui-auto-slot-mode-enable: true

界面内部的实际功能槽位为:装备 37、宝石 39、额外道具 41、操作按钮 43

gui 界面配置

gui 控制镶嵌界面的标题、填充物品、三个输入槽位、操作按钮和已镶嵌宝石的展示 Lore。

基础界面配置

配置项说明
gui.title界面标题。
gui.fill-item普通填充物品。支持配置中的物品 ID 写法。
gui.fill-name普通填充物品名称。
gui.fill-lore普通填充物品 Lore。代码支持该可选配置。
gui.equip-item装备区域填充物品。
gui.equip-name装备区域填充物品名称。
gui.equip-lore装备区域填充物品 Lore。代码支持该可选配置。
gui.gem-item宝石区域填充物品。
gui.gem-name宝石区域填充物品名称。
gui.gem-lore宝石区域填充物品 Lore。代码支持该可选配置。
gui.buff-item额外道具区域填充物品。
gui.buff-name额外道具区域填充物品名称。
gui.buff-lore额外道具区域填充物品 Lore。代码支持该可选配置。

物品 ID 支持以下写法:

写法说明
160:0数字物品 ID 和耐久值。
STONE#0Bukkit 材料名和数据值。
160只填写数字物品 ID。

示例:

yaml
gui:
  title: '宝石镶嵌'
  fill-item: '160:0'
  fill-name: '&7封锁'
  equip-item: '160:1'
  equip-name: '&7这里面放装备'
  gem-item: '160:2'
  gem-name: '&7这里面放宝石'
  buff-item: '160:3'
  buff-name: '&7这里面放额外道具'

操作按钮

配置项说明
gui.button-item操作按钮物品。
gui.button-name操作按钮名称。
gui.button-lore操作按钮 Lore。

gui.button-lore 支持以下运行时内容:

占位内容替换结果
{eco}当前宝石需要扣除的金币数量。
{chance}当前宝石的成功率百分比,保留 1 位小数。

示例:

yaml
gui:
  button-item: '160:5'
  button-name: '&a[点击镶嵌]'
  button-lore:
    - '&7本次镶嵌需要: &e{eco}金币'
    - '&7镶嵌成功率: &e{chance}%'

宝石的 chance 会先解析 PlaceholderAPI 和数学表达式,再显示为百分比。镶嵌成功判定使用同一个计算结果,并叠加额外道具提供的成功率加成。

gui.gem-add-lore

控制已镶嵌宝石在界面展示区域中的追加 Lore。该配置只影响界面展示,不会直接修改装备 Lore。

yaml
gui:
  gem-add-lore:
    - ''
    - '&7宝石附带属性:'
    - '{attribute}'
    - ''
    - '&7宝石槽位: '
    - '{slot}'
    - ''
    - '&7是否可拆卸: {out}'

支持的内容:

内容说明
{attribute}插入该次镶嵌记录中的隐藏属性列表。
{slot}插入宝石占用的原始槽位 Lore。
{out}可拆卸时替换为 ,不可拆卸或找不到宝石配置时替换为

message 消息配置

message 下的配置用于镶嵌、拆卸、开孔和限制提示。消息为空字符串时不会发送普通聊天消息;如果配置了 germ-message-dos 且 GermPlugin 已启用,则会改为发送 GermPlugin DOS。

配置项触发场景默认含义
out-success拆卸成功。拆卸成功。
out-failed拆卸工具判定失败。拆卸失败。
out-item-error使用的物品不是已注册拆卸工具。请使用正确的拆卸工具。
out-not-isassembled宝石不存在、配置不存在或宝石不可拆卸。该宝石无法拆卸。
inlay-equip-error装备槽为空、物品没有 Lore 或装备格式不正确。装备错误。
inlay-gem-error宝石槽为空或宝石没有显示名称。宝石错误。
inlay-gem-not-to-item宝石名称、Lore 或装备槽位不匹配。宝石无法镶嵌到该装备。
inlay-buff-error额外道具不匹配已注册配置。额外道具错误。
inlay-condition-error宝石的镶嵌条件不满足。不满足镶嵌条件。
inlay-eco-error玩家金币不足。金币不足。
inlay-success镶嵌成功。镶嵌成功。
inlay-failed镶嵌成功率判定失败。镶嵌失败。
slot-success开孔完成。支持 {now}{max}开孔成功。
slot-failed找不到可替换的前置 Lore。开孔失败。
slot-max装备达到开孔道具使用次数上限。支持 {now}{max}开孔次数达到上限。
placeholder-inlay达到条件规则中的最大镶嵌数量。支持 {max}当前装备不能继续镶嵌。
the-gem-exist-lore-prevent-inlay宝石存在禁止镶嵌 Lore。宝石禁止镶嵌。
the-item-exist-lore-prevent-inlay装备存在禁止镶嵌 Lore。装备禁止镶嵌。

消息中的常用替换内容:

占位内容使用位置说明
{now}slot-successslot-max当前装备已经使用开孔道具的次数。
{max}slot-successslot-maxplaceholder-inlay对应的开孔次数上限或镶嵌数量上限。
{message}germ-message-dos当前准备发送的完整消息。

gem/*.yml 宝石配置

gem/ 目录中的每个一级键都是一个宝石 ID。宝石 ID 全局不可重复,开始使用后不要修改,否则已镶嵌物品中的宝石记录可能无法匹配原配置。

插件会递归读取 gem/ 目录下的 .yml 文件,因此可以按分类建立子目录。

宝石识别与显示

配置项类型说明
宝石ID.slot字符串列表允许镶嵌该宝石的装备槽位 Lore。装备中必须存在其中一行。
宝石ID.gem-name字符串用于匹配待镶嵌宝石的显示名称。留空时不检查名称。
宝石ID.gem-lore字符串用于匹配待镶嵌宝石的 Lore。留空时不检查 Lore;配置后只要有一行 Lore 包含该内容即可匹配。
宝石ID.show-name字符串镶嵌成功后写入装备 Lore 的宝石名称。
宝石ID.show-lore字符串列表镶嵌成功后追加到装备 Lore 的内容。

名称匹配为精确匹配。名称和 Lore 同时配置时,两个条件都必须满足。

slot 中的槽位 Lore 也使用精确匹配。镶嵌成功后,装备中命中的槽位 Lore 会被替换为宝石名称和 show-lore

成功率与费用

配置项类型说明
宝石ID.chance字符串或数字镶嵌成功率。默认值为 1。支持 PlaceholderAPI 和数学表达式。
宝石ID.eco整数镶嵌所需金币。默认值为 0。大于 0 时会通过 Vault 经济服务检查并扣除金币。

chance 可以写成表达式,例如:

yaml
chance: '%player_level%*0.01'

插件会先解析 PlaceholderAPI,再计算 +-*/ 和括号表达式。成功率判定使用随机数与计算结果比较。

使用金币功能时需要安装并启用 Vault,同时服务器必须提供可用的经济服务;否则无法正常完成需要金币的镶嵌。

拆卸与条件

配置项类型说明
宝石ID.can-disassembled布尔值是否允许拆卸工具或强制拆卸模式拆除该宝石。
宝石ID.condition字符串列表镶嵌前必须全部满足的条件。

支持的宝石条件:

写法说明
permission:{权限节点}玩家拥有指定权限。
nopermission:{权限节点}玩家没有指定权限。
papi:{表达式}解析 PlaceholderAPI 后判断表达式。
gem-amount:{宝石ID<数量}检查当前装备中指定宝石的数量。支持 <<===>=>

gem-amount 用于制作唯一宝石或限制同类宝石数量。例如:

yaml
condition:
  - 'gem-amount:{示例宝石1<1}'

镶嵌后的消息与指令

配置项类型说明
宝石ID.server-message字符串列表镶嵌成功后发送给全服在线玩家的消息。
宝石ID.success-command字符串列表镶嵌成功后执行的指令。
宝石ID.fail-command字符串列表镶嵌失败后执行的指令。

指令支持以下前缀:

前缀执行身份
[console]控制台执行。
[op]临时以 OP 身份由玩家执行。
无前缀由玩家执行。

指令会解析 PlaceholderAPI,并支持以下宝石相关替换内容:

内容说明
%player_name% 等 PlaceholderAPI 占位符由 PlaceholderAPI 解析。
{gem}宝石配置中的 gem-name
{item}当前装备显示名称;没有显示名称时使用物品材料名。

属性加载

配置项类型说明
宝石ID.attribute字符串列表镶嵌后保存到装备内部记录中的属性。支持变量、表达式和随机范围。
宝石ID.load-item-lore-attribute布尔值是否加载 attribute 中的属性到 attribute-plugin
宝石ID.load-item-lore布尔值是否将被镶嵌宝石物品的全部 Lore 加载到 attribute-plugin

attribute 中的随机范围格式为 {最小值-最大值-格式},例如:

yaml
attribute:
  - '&b生命加成 +{10-20-%.1f}%'
  - '&b物理伤害 +{35-105-%.0f}'
  - '&6等级神力 +{%player_level%*2-%player_level%*5-%.0f}'

其中:

  • 第一个表达式是最小值。
  • 第二个表达式是最大值。
  • 第三个部分是 Java 格式化字符串,例如 %.1f 表示保留 1 位小数。
  • 表达式可以包含 PlaceholderAPI 占位符和四则运算。

如果只希望通过宝石显示 Lore 提供属性,可以删除 attribute,改用 show-lore,并设置 load-item-lore: true

完整示例:

yaml
示例宝石1:
  slot:
    - '&7<绿宝石槽位>'
    - '&7<红宝石槽位>'
  gem-name: '&6示例宝石'
  gem-lore: '&7这是一颗示例宝石'
  show-name: '&7已镶嵌<&6神奇的示例宝石&7>'
  show-lore:
    - '&7  这是一颗示例宝石'
  chance: 1
  eco: 1
  can-disassembled: true
  condition:
    - 'permission:{宝石镶嵌权限}'
    - 'nopermission:{禁止宝石镶嵌权限}'
    - 'papi:{%player_level% > 0}'
    - 'gem-amount:{示例宝石1<1}'
  server-message:
    - '&7恭喜 &a%player_name% &7成功镶嵌了一颗 &6{gem} &7!'
  success-command:
    - '[console]tell %player_name% 你镶嵌了一颗{gem}成功.'
  fail-command:
    - '[op]tell %player_name% 你镶嵌了一颗{gem}失败.'
  attribute:
    - '&b生命加成 +{10-20-%.1f}%'
    - '&b物理伤害 +{35-105-%.0f}'
  load-item-lore-attribute: true
  load-item-lore: true

开孔道具.yml

开孔道具.yml 的每个一级键都是一种开孔道具。使用方法是拿起开孔道具,在生存背包中点击目标装备。

开孔道具配置项

配置项类型说明
道具ID.max-count整数同一件装备最多使用该开孔道具的次数。次数保存在装备 NBT 中。
道具ID.need-name字符串列表允许使用该开孔道具的装备名称。删除该项或留空时,所有装备名称均可使用。代码使用包含匹配。
道具ID.need-lore字符串开孔前必须存在的前置 Lore。成功开孔时会替换这一行。留空时在装备 Lore 末尾追加结果 Lore。
道具ID.name字符串开孔道具显示名称。使用时必须与该名称匹配。
道具ID.result节点开孔结果列表。每个结果包含权重、消息和新增 Lore。

result 结果配置

配置项类型说明
result.结果ID.weight整数随机结果权重。所有结果按权重参与随机选择。
result.结果ID.message字符串列表选中该结果后发送给玩家的消息。
result.结果ID.lore字符串列表选中该结果后写入装备 Lore 的槽位内容。列表中的每一行都会作为一个宝石槽位。

示例:

yaml
普通开孔器:
  max-count: 10
  need-name:
    - '牛马装备'
  need-lore: ''
  name: '&b普通开孔器'
  result:
    失败:
      weight: 30
      message:
        - '&7开槽失败……'
      lore: []
    绿宝石:
      weight: 10
      message:
        - '&a恭喜你开启了 绿宝石槽位'
      lore:
        - '&7<绿宝石槽位>'
    三色宝石:
      weight: 1
      message:
        - '&a恭喜你开启了 三色宝石槽位'
      lore:
        - '&7<绿宝石槽位>'
        - '&7<红宝石槽位>'
        - '&7<蓝宝石槽位>'

开孔结果只会写入 lore 中的内容。若需要让宝石匹配该槽位,宝石配置的 slot 必须与装备 Lore 中的槽位文本一致。

拆卸工具.yml

拆卸工具.yml 的每个一级键都是一种拆卸工具。非强制拆卸模式下,拿起拆卸工具并点击镶嵌界面中的宝石进行拆卸。

配置项类型说明
工具ID.name字符串拆卸工具显示名称。使用时按名称匹配。
工具ID.chance小数拆卸成功率。默认值为 1
工具ID.return-gem布尔值拆卸成功后是否尝试返还原宝石。默认值为 false
工具ID.return-gem-chance小数在允许返还宝石时,返还宝石的概率。默认值为 1
工具ID.disassembled-gem字符串列表该工具允许拆卸的宝石 ID。填写 * 时允许所有宝石。
工具ID.success-command字符串列表拆卸成功后执行的指令。

示例:

yaml
普通拆卸工具:
  name: '&a普通拆卸工具'
  chance: 0.5
  return-gem: true
  return-gem-chance: 0.5
  success-command:
    - 'tell %player_name% 你拆卸了{gem}'
  disassembled-gem:
    - '*'

神级拆卸工具:
  name: '&6神级拆卸工具'
  chance: 1
  return-gem: true
  return-gem-chance: 0.5
  disassembled-gem:
    - '*'

拆卸工具的 success-command 支持 PlaceholderAPI 和 {gem}。拆卸成功后,原宝石是否返还还要同时满足以下条件:

  • 工具的 return-gemtrue
  • 随机判定通过 return-gem-chance
  • 工具的 disassembled-gem 包含该宝石 ID,或包含 *
  • 宝石配置中的 can-disassembledtrue

额外道具.yml

额外道具.yml 的每个一级键都是一种镶嵌额外道具。额外道具放入镶嵌界面的额外道具槽后,只在本次镶嵌中生效,并会在处理时消耗 1 个。

配置项类型说明
道具ID.name字符串额外道具显示名称。使用时按名称匹配。
道具ID.result字符串列表额外道具效果列表。

result 效果写法

写法说明
chance:数值增加本次镶嵌成功率。数值会直接加到宝石成功率上,例如 chance:0.1 表示增加 0.1
attribute:概率,属性文本以指定概率增加隐藏属性。属性会保存到本次镶嵌记录中。
lore:概率,属性文本以指定概率增加显示 Lore 属性。代码实际会将该属性加入本次镶嵌记录的属性列表。
message:消息文本效果生效时向玩家发送消息。

属性文本支持 PlaceholderAPI 和随机范围表达式:

yaml
力量增强器:
  name: '&6力量增强器'
  result:
    - 'lore:0.5,力量+{5-10-%.0f}'
    - 'message:&7本次镶嵌成功使用了力量增强器!'

镶嵌幸运符:
  name: '&6镶嵌幸运符'
  result:
    - 'chance:0.1'
    - 'message:&7本次镶嵌增加了10%成功率!'

attributelore 的概率范围按 01 处理。效果只在镶嵌成功后处理;镶嵌失败时不会应用额外属性,但额外道具会按本次尝试消耗。

依赖与生效条件

项目清单和代码确认了以下可选前置:

前置用途
PlaceholderAPI解析宝石条件、成功率、属性表达式、消息和指令中的占位符;同时提供 LyGemReload 变量。
Vault提供镶嵌金币检查和扣费所需的经济服务。
GermPlugin提供 GermPlugin 槽位读取和可选的 DOS 消息发送。
DragonCore提供 DragonCore 槽位读取。
APInventory提供 APInventory 槽位读取。
LyInventory提供 LyInventory 槽位读取。
LyInventoryReload提供 LyInventoryReload 槽位读取。
PXRPG提供 PXRPG 装备容器槽位读取。
AttributePlus作为属性承载插件。
SX-Attribute2作为属性承载插件。
SX-Attribute3作为属性承载插件。
AttributeSystem作为属性承载插件。
ItemLoreOrigin作为属性承载插件。
ProtocolLib项目声明的软依赖之一。
PlaerPoints项目声明的软依赖之一。
LyShopReload项目声明的软依赖之一。
SX-Attribute项目声明的软依赖之一。

只有在对应前置已安装、启用并且插件能成功调用其 API 时,相关槽位读取、属性加载、经济扣费或消息功能才会生效。