配置说明
LyRune 仅生成一个 config.yml,用于设置服务端适配版本、提示消息、符文界面、装备与符文识别、属性统计、符文拆卸及槽位解锁条件。
修改配置后,可使用 /lr reload 或 /lyfw reload 重载。重载子命令仅允许服务器管理员执行。
配置文件
| 文件 | 用途 |
|---|---|
plugins/LyRune/config.yml | LyRune 的全部功能配置 |
服务端版本
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
minecraft-version | 字符串 | 1.12.2 | 选择插件使用的服务端适配实现,可填写 1.7.10 或 1.12.2 |
yaml
minecraft-version: '1.12.2'此配置必须与实际服务端版本一致。插件仅在值完全等于 1.7.10 时加载 1.7.10 实现,其他值会加载 1.12.2 实现,因此不要填写未列出的版本。
提示消息
message 节点用于设置玩家操作符文界面时收到的提示。
| 配置项 | 可用内容 | 触发时机 |
|---|---|---|
message.unlock-slot-success | {slot} | 成功解锁新符文槽位 |
message.unlock-slot-fail | {slot} | 槽位没有对应配置、条件不满足或解锁失败 |
message.cursor-item-not-rune | 无 | 玩家尝试放入的物品不符合符文识别条件 |
message.cursor-item-not-out-item | 无 | 槽位内已有符文,但玩家拿起的物品不是拆卸工具 |
message.out-rune-need-item | 无 | 已启用拆卸工具消耗,但玩家未拿起拆卸工具 |
message.rune-need-level | {level}、{need_level} | 玩家等级低于符文要求等级 |
yaml
message:
unlock-slot-success: '&a解锁第 &6{slot}&a 个槽位成功!'
unlock-slot-fail: '&a解锁第 &6{slot}&7 个槽位成功!'
cursor-item-not-rune: '&7鼠标拿起的物品不是符文, 无法操作.'
cursor-item-not-out-item: '&7鼠标拿起的物品不是拆卸工具, 无法操作.'
out-rune-need-item: '&7拆卸该槽位的符文需要拆卸工具.'
rune-need-level: '&c你当前的等级为&6{level}, &c小于符文可用等级&6{need_level}&c, 无法刻印!'默认配置中的 message.unlock-slot-fail 文本写成了“成功”,建议根据实际用途改为失败提示。
message.rune-need-level 会替换等级变量,但当前实现不会主动把该配置中的 & 转换为颜色符号。其他提示消息会进行 & 颜色转换。
符文界面
界面固定为 54 格:第 5 格放置需要处理的装备,第 19 至 45 格显示当前页的 27 个符文槽位,第 46 格和第 54 格分别为上一页、下一页按钮。
界面基础设置
| 配置项 | 类型 | 说明 |
|---|---|---|
gui.title | 字符串 | 符文刻印界面的标题 |
gui.frame-item | 字符串 | 装备周围边框及不可操作槽位使用的物品 |
gui.frame-name | 字符串 | 边框物品名称 |
gui.fill-item | 字符串 | 界面空白区域使用的填充物品 |
gui.fill-name | 字符串 | 填充物品名称 |
gui.last-item | 字符串 | 上一页按钮物品 |
gui.last-name | 字符串 | 上一页按钮名称 |
gui.next-item | 字符串 | 下一页按钮物品 |
gui.next-name | 字符串 | 下一页按钮名称 |
yaml
gui:
title: '&6 符文刻印'
frame-item: '160:1'
frame-name: '&7请在槽位内放置需要刻印符文的物品'
fill-item: '160:0'
fill-name: '&7封锁'
last-item: '262:0'
last-name: '&6上一页'
next-item: '262:0'
next-name: '&6下一页'界面物品支持旧版数字 ID 与数据值格式,例如 160:1。代码同时支持通过 Bukkit 材质名称读取物品,但 minecraft-version 仍必须使用插件明确支持的版本。
未解锁槽位
| 配置项 | 类型 | 可用内容 | 说明 |
|---|---|---|---|
gui.unlock-item | 字符串 | 无 | 未解锁槽位显示的物品 |
gui.unlock-name | 字符串 | <slot> | 未解锁槽位物品名称 |
gui.unlock-lore | 字符串列表 | {condition} | 未解锁槽位的描述 |
yaml
gui:
unlock-item: '160:5'
unlock-name: '&6解锁第<slot>个符文槽位'
unlock-lore:
- ''
- '&7槽位解锁后, 拿起符文点击指定槽位,'
- '&7即可将符文刻印在此位置.'
- ''
- '&7当背包内存在&6<符文蜕印石>&7时点击有符文的槽位'
- '&7即可拆卸该符文.'
- ''
- '&7解锁新的符文槽位需要以下条件:'
- '{condition}'
- ''
- '&a[点击解锁]'<slot>会替换为当前准备解锁的槽位编号。{condition}会替换为对应unlock-config分组中的全部show-lore。gui.unlock-lore会经过 PlaceholderAPI 变量解析。show-lore中的<数学表达式>会计算为整数后再显示。- 如果
gui.unlock-lore没有{condition},解锁条件说明不会显示在按钮描述中,但实际条件仍会检查。
可刻印装备识别
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
unload-rune-lore | 字符串 | &6可刻印符文 | 用于识别尚未初始化符文槽位的装备描述 |
yaml
unload-rune-lore: '&6可刻印符文'装备必须在 Lore 中包含与该配置完全一致的一整行,才能被识别为可刻印装备。颜色代码会先从 & 转换为游戏颜色格式,比较时忽略大小写。
装备第一次解锁槽位或刻印符文后,这一行会被符文信息描述替换。插件会在装备 NBT 中保存槽位上限和已刻印的符文,不需要在装备 Lore 中手动维护这些数据。
不要把普通装备描述设置成与 unload-rune-lore 相同,否则这些装备也会被识别为可刻印装备。
装备符文信息
符文信息模板
| 配置项 | 类型 | 说明 |
|---|---|---|
rune-lore | 字符串列表 | 装备拥有槽位后写入装备 Lore 的符文信息模板 |
rune-lore 支持以下替换内容:
| 内容 | 说明 |
|---|---|
{now} | 当前已经刻印的符文数量 |
{max} | 当前装备已经解锁的槽位数量 |
{attribute} | 插入 statistics-lore-key 统计出的属性行 |
{show_slot} | 插入所有已刻印符文的名称列表 |
yaml
rune-lore:
- '&6已刻印 &a{now}/{max} &6个符文'
- '&6符文属性统计:'
- '{attribute}'
# - '{show_slot}'{attribute} 和 {show_slot} 会展开为零行或多行内容。没有匹配到任何属性或符文时,对应位置不会生成额外 Lore。
插件会在自己生成的 Lore 后加入内部标记,用于后续更新和清理。不要手动复制、修改或删除插件生成的符文信息行,否则可能导致装备 Lore 更新位置异常。
已刻印符文列表
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enable-show-slot | 布尔值 | true | 是否允许 {show_slot} 输出已刻印符文列表 |
show-slot-format | 字符串 | &7已刻印 >> &6{rune} | 每个已刻印符文的显示格式 |
yaml
enable-show-slot: true
show-slot-format: '&7已刻印 >> &6{rune}'| 内容 | 说明 |
|---|---|
{rune} | 符文的显示名称;没有自定义名称时使用物品材质名称 |
仅开启 enable-show-slot 不会自动显示列表,仍需在 rune-lore 中加入 {show_slot}。设置为 false 后,即使模板中存在 {show_slot},也不会插入符文列表。
符文物品识别
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
rune-item-lore | 字符串 | &7符文 | 用于识别符文物品的完整 Lore 行 |
yaml
rune-item-lore: '&7符文'符文物品必须在 Lore 中包含与该配置完全一致的一整行。颜色代码会先从 & 转换为游戏颜色格式,比较时忽略大小写。
刻印时只消耗鼠标拿起物品中的 1 个,并把单个符文物品的完整数据保存到装备中。
符文等级限制
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
rune-level-key | 字符串 | &f符文等级 | 从符文 Lore 中查找需求等级的关键词;留空关闭等级检查 |
rune-level-placeholder | 字符串 | %player_level% | 读取玩家当前等级的 PlaceholderAPI 变量 |
yaml
rune-level-key: '&f符文等级'
rune-level-placeholder: '%player_level%'启用等级限制后,插件会执行以下处理:
- 在符文 Lore 中查找包含
rune-level-key的第一行。 - 移除关键词、颜色符号、百分号和非数字内容。
- 把剩余数字作为该符文的需求等级。
- 解析
rune-level-placeholder,并将结果转换为玩家当前等级。 - 玩家等级低于需求等级时拒绝刻印。
例如符文包含以下 Lore:
yaml
- '&f符文等级: &610'当 rune-level-key 为 &f符文等级 时,插件会读取出需求等级 10。
此功能直接调用 PlaceholderAPI。启用等级限制时,必须安装 PlaceholderAPI,并确保 rune-level-placeholder 最终返回整数。留空关闭检查:
yaml
rune-level-key: ''属性统计
statistics-lore-key 用于读取所有已刻印符文的 Lore,把指定属性累加后写入装备的 {attribute} 位置。
yaml
statistics-lore-key:
'物理伤害': '&f物理伤害 +{value}'每个子项的键是匹配关键词,值是最终写入装备 Lore 的格式。
| 部分 | 说明 |
|---|---|
物理伤害 | 在符文 Lore 中搜索的关键词 |
&f物理伤害 +{value} | 汇总后写入装备 Lore 的格式 |
{value} | 所有匹配数值的总和,固定显示两位小数 |
统计规则:
- 插件遍历全部已刻印符文的 Lore。
- Lore 只要包含配置的关键词即可参与统计,不要求整行完全一致。
- 插件移除颜色代码后,读取这一行出现的第一个非负整数或小数。
- 同一符文的一行 Lore 只会匹配一次属性。
- 相同关键词的数值会累加。
- 没有匹配数值的属性不会显示。
- 统计结果使用
0.00格式,例如15.00、2.50。
可以配置多个属性:
yaml
statistics-lore-key:
'物理伤害': '&f物理伤害 +{value}'
'生命值': '&c生命值 +{value}'
'暴击率': '&e暴击率 +{value}%'当前数值匹配规则不会读取负号,因此不要依赖该功能汇总负数属性。
符文拆卸
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
disassemble-need-item-enable | 布尔值 | true | 拆卸符文时是否必须使用拆卸工具 |
disassemble-item-name | 字符串 | &6符文蜕印石 | 拆卸工具必须拥有的显示名称 |
disassemble-return-rune | 布尔值 | true | 拆卸后是否把符文物品返还到玩家背包 |
yaml
disassemble-need-item-enable: true
disassemble-item-name: '&6符文蜕印石'
disassemble-return-rune: true启用拆卸工具后,玩家需要拿起名称与 disassemble-item-name 完全一致的物品,再点击已有符文的槽位。名称比较忽略大小写,并支持 & 颜色代码。
成功拆卸时会消耗鼠标上的 1 个拆卸工具。关闭 disassemble-need-item-enable 后,直接点击已有符文的槽位即可拆卸,不会检查或消耗拆卸工具。
disassemble-return-rune 为 true 时,符文会直接加入玩家背包;为 false 时,符文从装备数据中移除且不返还。
槽位解锁
unlock-config 决定每个槽位的显示说明、解锁要求和消耗。玩家点击当前未解锁槽位时,插件会尝试解锁下一个槽位。
分组格式
分组名称可以是单个槽位,也可以是包含首尾的槽位范围。
yaml
unlock-config:
1:
show-lore:
- '&7第一个槽位'
condition: []
2-5:
show-lore:
- '&7第<slot>个槽位'
condition:
- 'permission:{rune.slot}'| 格式 | 说明 |
|---|---|
1 | 只应用于第 1 个槽位 |
2-5 | 应用于第 2 至第 5 个槽位,包含两端 |
show-lore | 显示在未解锁槽位按钮中的条件说明 |
condition | 解锁时实际检查的条件列表 |
插件按照 unlock-config 中的分组查找当前槽位。当前槽位没有匹配的分组时,解锁会失败。因此,配置中能够匹配到的最高槽位就是可解锁上限。
解锁内容替换
show-lore 和 condition 支持以下内容:
| 内容 | 说明 |
|---|---|
<slot> | 当前准备解锁的槽位编号 |
| PlaceholderAPI 变量 | 按当前玩家解析,例如 %player_level% |
<数学表达式> | 计算尖括号内的四则运算,并把结果显示为整数 |
支持 +、-、*、/ 和小括号运算。例如:
yaml
show-lore:
- '&7金币x<(%player_level%+<slot>) * 5>'假设玩家等级为 10,准备解锁第 3 个槽位,显示结果为 金币x65。
尖括号表达式支持嵌套,插件会优先计算最内层内容。<slot> 会先被替换为数字,然后再进行计算。
条件类型
| 条件格式 | 是否消耗 | 所需插件 | 说明 |
|---|---|---|---|
papi:{表达式} | 否 | PlaceholderAPI | 解析变量后执行布尔表达式,结果必须为 true |
permission:{权限节点} | 否 | 无额外插件 | 检查玩家是否拥有指定权限 |
item:{物品名称#数量} | 是 | 无额外插件 | 检查玩家背包前 36 格中的同名物品,并在成功解锁后扣除 |
eco:{金额表达式} | 是 | Vault 及可用经济插件 | 检查并扣除玩家金币 |
point:{点券表达式} | 是 | PlayerPoints | 检查并扣除玩家点券 |
所有条件必须同时满足,槽位才会解锁。插件会先完成全部条件检查,确认通过后再统一扣除物品、金币和点券。
PlaceholderAPI 条件
yaml
condition:
- 'papi:{%player_level% > 10}'PlaceholderAPI 变量会先替换为实际值,随后使用 JavaScript 表达式计算结果。表达式必须返回布尔值,否则条件失败并在控制台输出错误。
使用该条件必须安装 PlaceholderAPI,并确保对应变量能够正常解析。
权限条件
yaml
condition:
- 'permission:{vip.1}'此处的权限节点是槽位解锁条件,不是 LyRune 内置命令权限。插件没有在 plugin.yml 中声明固定权限节点,可以直接填写服务器实际使用的权限。
物品条件
yaml
condition:
- 'item:{&6符文破印石#<slot>}'物品条件按照物品显示名称判断,不检查材质或 Lore。颜色代码会进行转换,名称比较忽略大小写。
# 左侧为物品名称,右侧为数量。配置中的普通空格会在检查前移除,因此需要检测的物品名称不应包含空格。
金币条件
yaml
condition:
- 'eco:{(%player_level%+<slot>) * 5}'金币数量支持 PlaceholderAPI 变量和四则运算。使用 eco 条件时,必须安装 Vault、可用的经济插件,并确保 Vault 已成功连接该经济服务,否则金币检查和扣除无法正常工作。
点券条件
yaml
condition:
- 'point:{100}'点券数量支持 PlaceholderAPI 变量和四则运算。使用 point 条件时必须安装并启用 PlayerPoints。
默认解锁配置
yaml
unlock-config:
1-5:
show-lore:
- '&7需要大于0级'
- '&6符文破印石x<slot>'
- '&7金币x<(%player_level%+<slot>) * 5>'
condition:
- 'papi:{%player_level% > 0}'
- 'item:{&6符文破印石#<slot>}'
- 'eco:{(%player_level%+<slot>) * 5}'
5-10:
show-lore:
- '&7需要大于0级'
- '&6符文破印石x<slot>'
- '&7金币x<(%player_level%+<slot>) * 10>'
condition:
- 'papi:{%player_level% > 0}'
- 'item:{&6符文破印石#<slot>}'
- 'eco:{(%player_level%+<slot>) * 10}'默认配置中的 1-5 与 5-10 都包含第 5 个槽位。插件会使用遍历时首先匹配到的分组。为避免边界配置产生歧义,建议改成不重叠的范围,例如 1-5 与 6-10。
完整配置参考
yaml
# 服务端版本,可选 1.7.10 或 1.12.2
minecraft-version: '1.12.2'
message:
unlock-slot-success: '&a解锁第 &6{slot}&a 个槽位成功!'
unlock-slot-fail: '&c解锁第 &6{slot}&c 个槽位失败!'
cursor-item-not-rune: '&7鼠标拿起的物品不是符文, 无法操作.'
cursor-item-not-out-item: '&7鼠标拿起的物品不是拆卸工具, 无法操作.'
out-rune-need-item: '&7拆卸该槽位的符文需要拆卸工具.'
rune-need-level: '&c你当前的等级为&6{level}, &c小于符文可用等级&6{need_level}&c, 无法刻印!'
gui:
title: '&6 符文刻印'
frame-item: '160:1'
frame-name: '&7请在槽位内放置需要刻印符文的物品'
fill-item: '160:0'
fill-name: '&7封锁'
last-item: '262:0'
last-name: '&6上一页'
next-item: '262:0'
next-name: '&6下一页'
unlock-item: '160:5'
unlock-name: '&6解锁第<slot>个符文槽位'
unlock-lore:
- ''
- '&7槽位解锁后, 拿起符文点击指定槽位,'
- '&7即可将符文刻印在此位置.'
- ''
- '&7当背包内存在&6<符文蜕印石>&7时点击有符文的槽位'
- '&7即可拆卸该符文.'
- ''
- '&7解锁新的符文槽位需要以下条件:'
- '{condition}'
- ''
- '&a[点击解锁]'
rune-lore:
- '&6已刻印 &a{now}/{max} &6个符文'
- '&6符文属性统计:'
- '{attribute}'
# - '{show_slot}'
enable-show-slot: true
show-slot-format: '&7已刻印 >> &6{rune}'
statistics-lore-key:
'物理伤害': '&f物理伤害 +{value}'
unload-rune-lore: '&6可刻印符文'
rune-item-lore: '&7符文'
rune-level-key: '&f符文等级'
rune-level-placeholder: '%player_level%'
disassemble-need-item-enable: true
disassemble-item-name: '&6符文蜕印石'
disassemble-return-rune: true
unlock-config:
1-5:
show-lore:
- '&7需要大于0级'
- '&6符文破印石x<slot>'
- '&7金币x<(%player_level%+<slot>) * 5>'
condition:
- 'papi:{%player_level% > 0}'
- 'item:{&6符文破印石#<slot>}'
- 'eco:{(%player_level%+<slot>) * 5}'
6-10:
show-lore:
- '&7需要大于0级'
- '&6符文破印石x<slot>'
- '&7金币x<(%player_level%+<slot>) * 10>'
condition:
- 'papi:{%player_level% > 0}'
- 'item:{&6符文破印石#<slot>}'
- 'eco:{(%player_level%+<slot>) * 10}'以上完整配置修正了默认失败提示文本,并把重叠的 5-10 范围调整为 6-10。