符文规则
LyRune 的符文系统通过 GUI 管理装备槽位、符文刻印和符文拆卸。系统使用物品 Lore 识别装备与符文,并将槽位和符文数据写入物品 NBT。
支持版本与前置
配置文件中的 minecraft-version 支持以下值:
| 配置值 | 对应实现 |
|---|---|
1.7.10 | 使用 1.7.10 专用 API |
1.12.2 | 使用 1.12.2 专用 API |
插件声明了以下软依赖:
| 插件 | 用途 |
|---|---|
| PlaceholderAPI | 解析玩家变量、符文等级和槽位解锁条件中的变量表达式 |
| Vault | 扣除和检查金币条件 |
| PlayerPoints | 扣除和检查点券条件 |
| ProtocolLib | 序列化和读取已刻印的符文物品数据 |
使用对应功能时,需要安装并启用相应前置插件。未安装 Vault、PlayerPoints 或 PlaceholderAPI 时,使用依赖它们的配置条件可能无法正常完成检查。
可刻印装备
装备 Lore 中必须存在 unload-rune-lore 配置值对应的整行文本,插件通过这一行判断物品是否支持符文刻印。
默认配置如下:
yaml
unload-rune-lore: '&6可刻印符文'识别规则:
- Lore 必须存在完整的一行匹配文本。
- 插件比较时会处理
&颜色代码。 - 未解锁槽位的装备可以通过 GUI 逐个解锁槽位。
- 第一次刻印或解锁槽位后,识别行会被符文统计 Lore 替换。
- 槽位数量写入物品 NBT 键
LyRuneSlotMax。 - 符文数据写入物品 NBT 节点
LyRune。 - 不要手动删除或修改插件写入的隐藏 Lore 标记,否则可能导致后续 Lore 刷新异常。
符文物品
符文物品 Lore 中必须存在 rune-item-lore 配置值对应的整行文本。
默认配置如下:
yaml
rune-item-lore: '&7符文'插件会检查符文物品的全部 Lore,只要存在一整行匹配文本,就会将该物品识别为符文。
刻印时的基本规则:
- 装备必须已经拥有对应的已解锁槽位。
- 目标槽位必须为空。
- 玩家鼠标上拿着的物品必须被识别为符文。
- 每次刻印只消耗鼠标物品中的一个符文。
- 符文刻印后,装备 Lore 会重新统计已刻印符文的属性。
符文等级限制
可以通过符文 Lore 限制符文的最低玩家等级。
yaml
rune-level-key: '&f符文等级'
rune-level-placeholder: '%player_level%'当符文 Lore 中存在包含 rune-level-key 的文本时,插件会从该行提取数字作为最低等级。例如:
yaml
- '&f符文等级 10'此时玩家变量 rune-level-placeholder 返回的等级必须大于或等于 10,否则无法刻印。
如果 rune-level-key 为空字符串,则不进行符文等级限制:
yaml
rune-level-key: ''等级检查需要 PlaceholderAPI 正常工作,并且 rune-level-placeholder 必须返回可转换为整数的值。
符文刻印界面
通过命令打开符文 GUI 后,界面中的固定位置如下:
| 位置 | 用途 |
|---|---|
4 | 放置需要刻印符文的装备 |
18 至 44 | 显示当前页的 27 个符文槽位 |
45 | 上一页按钮 |
53 | 下一页按钮 |
界面行为:
- 将可刻印装备放入位置
4后,界面刷新槽位状态。 - 已解锁且为空的槽位可以放入符文。
- 未解锁槽位显示解锁物品和解锁条件。
- 已刻印的符文会显示在对应槽位中。
- 一个页面显示 27 个槽位,超过当前页范围时可以翻页。
- GUI 内禁止拖动物品。
- GUI 内禁止 Shift 点击。
- 关闭界面后,位置
4中的装备会返还到玩家背包。
GUI 外观由以下配置控制:
| 配置键 | 作用 |
|---|---|
gui.title | GUI 标题 |
gui.frame-item | 边框物品 |
gui.frame-name | 边框物品名称 |
gui.fill-item | 填充物品 |
gui.fill-name | 填充物品名称 |
gui.last-item | 上一页按钮物品 |
gui.last-name | 上一页按钮名称 |
gui.next-item | 下一页按钮物品 |
gui.next-name | 下一页按钮名称 |
gui.unlock-item | 未解锁槽位显示物品 |
gui.unlock-name | 未解锁槽位名称 |
gui.unlock-lore | 未解锁槽位 Lore |
gui.unlock-name 中的 <slot> 会替换为当前待解锁的槽位序号。gui.unlock-lore 中的 {condition} 会替换为当前槽位对应的 show-lore 内容。
槽位解锁
unlock-config 用于定义每个槽位的显示说明和解锁条件。键可以使用单个槽位编号,也可以使用槽位区间:
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 }'
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 }'区间规则
1-5表示槽位1至5。- 单个数字表示单独配置某一个槽位,例如
6。 - 插件根据待解锁的槽位序号查找对应配置。
- 如果没有找到对应配置,槽位无法解锁。
<slot>会替换为本次待解锁的槽位序号。<>内的内容会进行简单四则运算。- PlaceholderAPI 变量会先替换,再计算表达式。
- 区间配置存在重叠时,应避免重复覆盖同一槽位。
解锁条件
| 条件格式 | 作用 | 检查内容 |
|---|---|---|
papi:{表达式} | PlaceholderAPI 表达式条件 | 表达式执行结果必须为 true |
permission:{权限节点} | 权限条件 | 玩家必须拥有指定权限 |
item:{物品名称#数量} | 物品条件 | 玩家背包中必须拥有指定显示名称和数量的物品 |
eco:{金额} | 金币条件 | 玩家 Vault 余额必须达到指定金额 |
point:{点券数量} | 点券条件 | 玩家 PlayerPoints 点券必须达到指定数量 |
示例:
yaml
condition:
- 'papi:{%player_level% > 0}'
- 'permission:{vip.1}'
- 'item:{&6符文破印石#<slot>}'
- 'eco:{100}'
- 'point:{100}'解锁过程分为两步:
- 检查全部条件是否满足。
- 条件全部满足后,扣除
item、eco和point条件对应的资源,并写入新的槽位数量。
papi 和 permission 条件只负责检查,不会扣除资源。
物品条件按物品显示名称匹配,颜色代码会被处理;物品材质、Lore 和其他 NBT 不作为该条件的匹配依据。
装备 Lore 统计
当装备存在已刻印符文时,插件会根据 rune-lore 重新生成统计 Lore。
默认配置如下:
yaml
rune-lore:
- '&6已刻印 &a{now}/{max} &6个符文'
- '&6符文属性统计:'
- '{attribute}'可用占位符:
| 占位符 | 作用 |
|---|---|
{now} | 当前已刻印的符文数量 |
{max} | 当前装备的槽位数量 |
{attribute} | 替换为统计后的符文属性 Lore |
{show_slot} | 替换为已刻印符文列表,受 enable-show-slot 控制 |
启用已刻印符文列表:
yaml
enable-show-slot: true
show-slot-format: '&7已刻印 >> &6{rune}'show-slot-format 中的 {rune} 会替换为符文显示名称。符文没有自定义名称时,使用物品材质名称。
属性统计
statistics-lore-key 定义参与统计的 Lore 关键词以及统计后的显示格式:
yaml
statistics-lore-key:
'物理伤害': '&f物理伤害 +{value}'统计规则:
- 插件遍历所有已刻印符文的 Lore。
- Lore 中包含配置关键词时,提取该行中的第一个数字。
- 相同关键词的数字会累加。
- 统计结果使用配置中的显示格式输出。
{value}会替换为统计总值,并保留两位小数。- 只有实际统计到的关键词才会显示。
拆卸符文
拆卸功能由以下配置控制:
yaml
disassemble-need-item-enable: true
disassemble-item-name: '&6符文蜕印石'
disassemble-return-rune: true| 配置键 | 作用 |
|---|---|
disassemble-need-item-enable | 是否必须使用拆卸道具 |
disassemble-item-name | 拆卸道具的显示名称 |
disassemble-return-rune | 拆卸后是否返还符文物品 |
启用拆卸道具时:
- 玩家需要在鼠标上拿着显示名称匹配
disassemble-item-name的物品。 - 点击已刻印符文的槽位即可拆卸。
- 每次成功拆卸消耗一个拆卸道具。
disassemble-return-rune: true时,符文返还到玩家背包。disassemble-return-rune: false时,符文不会返还。
禁用拆卸道具时:
yaml
disassemble-need-item-enable: false玩家可以直接点击已刻印符文的槽位进行拆卸,不需要手持拆卸道具。
拆卸道具通过显示名称识别,物品材质、Lore 和其他 NBT 不作为识别依据。
消息配置
相关提示消息位于 message 节点:
| 配置键 | 触发场景 |
|---|---|
message.unlock-slot-success | 槽位解锁成功 |
message.unlock-slot-fail | 槽位解锁失败或没有可用解锁配置 |
message.cursor-item-not-rune | 鼠标上的物品不是符文 |
message.cursor-item-not-out-item | 鼠标上的物品不是拆卸道具 |
message.out-rune-need-item | 当前配置要求拆卸道具,但玩家没有手持拆卸道具 |
message.rune-need-level | 玩家等级低于符文最低等级 |
消息中的占位符:
| 占位符 | 可用消息 |
|---|---|
{slot} | unlock-slot-success、unlock-slot-fail |
{level} | rune-need-level |
{need_level} | rune-need-level |
相关命令
插件注册了两个命令标签:lr 和 lyfw,两者功能相同。
| 命令 | 用途 | 使用限制 |
|---|---|---|
/lr open | 打开符文刻印界面 | 仅玩家可用 |
/lyfw open | 打开符文刻印界面 | 仅玩家可用 |
/lr reload | 重载配置文件 | 需要管理员身份 |
/lyfw reload | 重载配置文件 | 需要管理员身份 |
无参数执行命令时,管理员可以查看可用提示;普通玩家不会显示该帮助内容。
注意事项
- 可刻印装备、符文和拆卸道具都依赖配置中的 Lore 或显示名称识别。
- 解锁条件中的物品名称应与实际物品显示名称完全对应,比较时忽略大小写。
- 使用
eco条件时需要 Vault 已成功连接经济服务。 - 使用
point条件时需要 PlayerPoints 已启用。 - 使用
papi条件或符文等级限制时需要 PlaceholderAPI 已启用。 - 修改
rune-lore时,应保留需要使用的占位符,否则装备 Lore 将不会显示对应内容。 - 不要手动删除装备 Lore 中由插件写入的隐藏标记。