Skip to content

LyGalaxyRune

LyGalaxyRune 是一个服务端符文刻印插件。玩家可以把符文镶嵌到符合条件的装备中,通过解锁槽位和升级槽位等级提高符文属性,并在符文界面中查看、镶嵌、升级和拆卸符文。

项目证据中未发现客户端 MOD 模块,因此这是纯服务端插件,不要求玩家额外安装客户端 MOD。

用途与玩法

  • 使用装备 Lore 识别可以刻印符文的装备。
  • 使用符文 Lore 识别可镶嵌的符文物品。
  • 通过六行九列的符文界面管理装备符文。
  • 每页显示最多 27 个符文槽位,支持翻页。
  • 解锁符文槽位后,可以在对应槽位中镶嵌符文。
  • 已镶嵌槽位支持升级和拆卸。
  • 槽位等级可以提供配置中的属性增幅。
  • 符文属性会提交给配置指定的属性插件。
  • 符文库使用 SQLite 或 MySQL 保存,装备可以引用共享符文库。
  • 长期未访问的符文库可以进入观察期并归档到备份数据中。

依赖与兼容版本

服务端依赖

依赖类型用途
ProtocolLib必需依赖插件启动所需的服务端协议支持。
PlayerPoints可选依赖point 条件以及点券扣除。未安装时,使用点券条件的解锁或升级无法完成。
Vault可选依赖eco 条件以及金币扣除。未安装或没有可用经济服务时,使用金币条件的操作无法完成。
PlaceholderAPI可选依赖papi 条件和配置中的 PlaceholderAPI 变量替换。使用相关条件时必须可用。
属性插件按配置选择支持 AttributePlus、AttributeSystem、SX-Attribute、ItemLoreOrigin。
数据库连接前置MySQL 模式必需启用 MySQL 后必须安装,并且数据库连接成功后相关功能才会生效。

SQLite 模式默认使用插件数据目录中的 rune.db。MySQL 模式由 mysql.enable 控制;数据库连接失败时,符文相关功能不会正常初始化。

服务端版本

项目包含以下 Minecraft 服务端版本适配:

Minecraft 版本对应适配
1.7.10V1_7_R4
1.8.8V1_8_R3
1.11.2V1_11_R1
1.12.2V1_12_R1
1.13.2V1_13_R2
1.14.4V1_14_R1
1.15.2V1_15_R1
1.16.5V1_16_R3
1.17.1V1_17_R1
1.18.2V1_18_R2
1.19.2V1_19_R1
1.19.4V1_19_R3
1.20.1V1_20_R1
1.20.2V1_20_R2
1.20.3V1_20_R3

符文界面

默认界面标题为 &6符文刻印,布局为六行九列。

组件默认字符功能
装备槽位E放入或查看当前装备。
属性统计A统计所有已镶嵌符文的实际属性,并计入槽位等级增幅。
符文槽位R显示空槽位、已镶嵌符文或槽位升级信息。
上一页<切换到上一页符文槽位。
下一页>切换到下一页符文槽位。
关闭X关闭符文界面。

符文界面支持以下操作:

  • 点击背包中的可刻印装备,自动放入装备槽位。
  • 点击背包中的符文,自动尝试放入当前页可用的符文槽位。
  • 已镶嵌槽位左键升级,右键拆卸。
  • 已解锁的空槽位左右键均可尝试升级。
  • 未解锁槽位左右键均可尝试解锁。
  • 拆卸时按照配置决定是否需要拆卸工具,以及是否返还原符文。
  • 取下装备或关闭界面时,界面中的草稿内容统一提交。
  • 界面操作成功后,资源会按照配置条件处理;数据库保存失败时会执行资源补偿流程。
  • 取下装备不会自动关闭界面。

默认布局如下:

yaml
layout:
  - '####E####'
  - '###A#####'
  - 'RRRRRRRRR'
  - 'RRRRRRRRR'
  - 'RRRRRRRRR'
  - '<###X###>'

指令

plugin.yml 中注册的命令名为 lgfw,本文按照注册证据使用 /lgfw

指令功能
/lgfw open打开符文界面。
/lgfw reload重载插件配置和符文界面配置。
/lgfw restore由玩家手持物品恢复对应的备份符文库。

项目证据没有提供具体权限节点名称,因此本文不填写未经确认的权限字符串。备份恢复限制为管理员操作;备份恢复还必须由玩家手持物品执行。

配置总览

主配置文件为 config.yml,界面配置文件为 gui/符文界面.yml。配置键必须保持原名称,包括 atttribute-increase-loreatttribute-increase-formula 中已有的拼写。

基础配置

配置键默认值说明
attribute-pluginAttributePlus选择属性处理插件。支持 AttributePlus、AttributeSystem、SX-Attribute、ItemLoreOrigin。
attribute-refresh-interval20检查符文属性变化的间隔,单位为 tick。20 tick 约为 1 秒。
operation-cooldown-ms200镶嵌或拆卸成功后的操作冷却,单位为毫秒。填写 0 表示关闭冷却。
condition-true-text&a✔条件满足时,{status} 使用的文字。
condition-false-text&c✘条件不满足时,{status} 使用的文字。
yaml
attribute-plugin: 'AttributePlus'
attribute-refresh-interval: 20
operation-cooldown-ms: 200
condition-true-text: '&a✔'
condition-false-text: '&c✘'

数据库配置

yaml
mysql:
  enable: false
  ip: '127.0.0.1'
  port: 3306
  databasename: 'mc2'
  username: 'mc2'
  password: 'mc1234'
配置键说明
mysql.enablefalse 使用 SQLite,true 使用 MySQL。
mysql.ipMySQL 地址。
mysql.portMySQL 端口。
mysql.databasename数据库名称。
mysql.username数据库用户名。
mysql.password数据库密码。

启用 MySQL 时,必须安装 数据库连接前置,并确保数据库连接成功。只有连接成功后,符文库、槽位数据和相关存储功能才会生效。

调试与归档

yaml
debug:
  storage: false

library-gc:
  enable: false
  interval-hours: 12
  inactive-days: 180
  grace-days: 30
  batch-size: 50
配置键说明
debug.storage是否输出符文库读取、保存和归档扫描的调试信息,默认关闭。数据库错误提示不受影响。
library-gc.enable是否启用长期未访问符文库的自动归档。
library-gc.interval-hours归档扫描的最短间隔,单位为小时。
library-gc.inactive-days符文库连续未访问达到该天数后进入观察期。
library-gc.grace-days进入观察期后继续等待的天数,期间再次访问会取消归档标记。
library-gc.batch-size单次归档扫描最多处理的符文库数量。

归档是两阶段流程,归档数据会移动到备份表,不会直接删除。归档功能默认关闭。

玩家消息

message 配置用于界面操作反馈,主要键包括:

配置键用途
unlock-slot-success槽位解锁成功。
unlock-slot-fail槽位解锁失败。
slot-level-upgrade-success槽位升级成功。
slot-level-upgrade-max槽位已经达到最高等级。
slot-level-upgrade-config-fail槽位升级规则不可用。
slot-level-upgrade-condition-fail槽位升级条件不满足。
slot-level-upgrade-cost-fail升级资源不足。
slot-level-upgrade-state-fail界面状态已经变化。
equipment-amount-one装备数量不是一件。
item-not-equipment物品不是可刻印装备。
rune-loading符文正在加载。
attribute-loading符文属性正在计算。
attribute-retry属性读取失败后的提示。
rune-no-available-slot没有空闲槽位。
rune-level-no-match没有符合符文等级要求的槽位。
rune-source-not-enough当前符文已经全部预留。
cursor-item-not-out-item手持物品不是正确的拆卸工具。
out-rune-need-item拆卸时需要先手持拆卸工具。
rune-upgrade-empty-cursor升级槽位时手上必须为空。
disassemble-inventory-full背包空间不足,无法取出符文。
operation-delivery-pending物品暂时无法返还,等待后续领取。
equipment-takeoff-pending装备暂时无法取出。
operation-cooldown操作仍在冷却。
gui-draft-pending操作成功,取下装备后生效。
gui-draft-cost-fail草稿操作所需资源不足。
gui-draft-state-fail草稿状态已经变化。

database-message 负责数据库不可用、备份恢复和相关提示,支持的键包括 unavailablemissingrestore-loadingrestore-successrestore-activerestore-missingrestore-failedrestore-no-libraryrestore-no-permissionrestore-player-only

装备与符文识别

yaml
rune-lore:
  - '&6已刻印 &a{now}/{max} &6个符文'

enable-show-slot: true
show-slot-format: '&7已刻印 >> &6{rune}'
unload-rune-lore: '&6可刻印符文'
rune-item-lore: '&7类型: &a符文'
rune-level-key: '&f符文等级: {value}'
配置键说明
rune-lore装备成功镶嵌符文后写入的 Lore 列表。
enable-show-slot是否展开 {show_slot},逐个显示已镶嵌符文名称。
show-slot-format单个符文名称的显示格式,{rune} 会替换为符文显示名称。
unload-rune-lore可刻印装备必须包含的整行 Lore。默认值为 &6可刻印符文
rune-item-lore符文物品必须包含的识别 Lore。默认值为 &7类型: &a符文
rune-level-key符文等级限制的 Lore 模板。留空表示不限制等级。

装备识别 Lore 必须与配置内容完全匹配。符文识别会匹配配置指定的 Lore 文本,并处理颜色码和首尾空格差异。rune-level-key 只能使用一个 {value},数值必须为 0 或正整数。

拆卸配置

yaml
disassemble-need-item-enable: true
disassemble-item-name: '&6符文蜕印石'
disassemble-return-rune: true
配置键说明
disassemble-need-item-enable是否必须手持拆卸工具。
disassemble-item-name拆卸工具的显示名称,必须完全匹配。
disassemble-return-rune拆卸成功后是否返还原符文。

属性与槽位等级

yaml
atttribute-increase-lore:
  - '&f物理伤害 +{value}'

max-level-show-lore: '&6已满级'

atttribute-increase-lore 是属性 Lore 白名单。只有与列表模板匹配的符文 Lore 才会参与属性统计。{value} 表示属性数值,也支持例如 10-20 这样的范围值。

槽位等级配置的键表示目标等级范围。默认规则如下:

yaml
slot-level-config:
  1:
    atttribute-increase-formula: '{level} * 0.05'
    show-lore:
      - '&7当前等级: &e{current_level}/{max_level} 级'
      - '&7当前属性增幅: &e{current_attribute_increase}'
      - '&7下级属性增幅: &e{next_attribute_increase}'
    condition: []
  2-5:
    atttribute-increase-formula: '{level} * 0.05'
    show-lore:
      - '&7当前等级: &e{current_level}/{max_level} 级'
      - '&7当前属性增幅: &e{current_attribute_increase}'
      - '&7下级属性增幅: &e{next_attribute_increase}'
    condition:
      - 'item:{&6符文槽位升级石#{level}}| &6{item}x{amount} {status}'
      - 'eco:&#123;&#123;level} * 100}| &7金币x{amount} {status}'
  6-10:
    atttribute-increase-formula: '{level} * 0.05'
    show-lore:
      - '&7当前等级: &e{current_level}/{max_level} 级'
      - '&7当前属性增幅: &e{current_attribute_increase}'
      - '&7下级属性增幅: &e{next_attribute_increase}'
    condition:
      - 'item:{&6高级符文槽位升级石#{level}}| &6{item}x{amount} {status}'
      - 'eco:&#123;&#123;level} * 200}| &7金币x{amount} {status}'

1 级是新解锁槽位的初始等级,默认每级增加 5% 属性。升级条件从目标等级 2 开始检查。范围键不能重叠或断档,最后一个范围的最大值决定最高等级。

槽位解锁

yaml
unlock-config:
  1-4:
    show-lore:
      - '&7当前槽位数量: &e{current_slot} / {max_slot}&7 个'
    condition:
      - 'papi:{%player_level% > 0}| &7需要玩家等级大于0级 {status}'
      - 'item:{&6符文破印石#{slot}}| &6{item}x{amount} {status}'
      - 'eco:{ (%player_level%+{slot}) * 5 }| &7金币x{amount} {status}'
  5-10:
    show-lore:
      - '&7当前槽位数量: &e{current_slot} / {max_slot}&7 个'
    condition:
      - 'papi:{%player_level% > 0}| &7需要玩家等级大于0级 {status}'
      - 'item:{&6符文破印石#{slot}}| &6{item}x{amount} {status}'
      - 'eco:{ (%player_level%+{slot}) * 10 }| &7金币x{amount} {status}'

范围键表示解锁完成后的槽位数量。例如 1-4 表示解锁第 1 至第 4 个槽位时使用同一组规则。默认最多解锁 10 个槽位。

条件类型

条件格式为:

text
实际条件|界面显示文字
类型格式功能
papipapi:{表达式}使用 PlaceholderAPI 变量计算逻辑表达式。
permissionpermission:{权限节点}检查玩家是否拥有指定权限。
itemitem:{显示名称#数量表达式}检查并扣除背包中显示名称匹配的物品。
pointpoint:{数量表达式}检查并扣除 PlayerPoints 点券。
ecoeco:{数量表达式}检查并扣除 Vault 经济余额。

升级或解锁的所有条件都满足,并且数据库保存成功后,物品、点券和金币才会正式扣除。保存失败时会执行退款或保留待补偿记录。

运行时变量

装备 Lore 变量

变量所在配置含义
{now}rune-lore当前已经镶嵌的符文数量。
{max}rune-lore当前已经解锁的槽位数量。
{show_slot}rune-lore展开逐个符文显示行。
{rune}show-slot-format符文的显示名称。
{value}rune-level-keyatttribute-increase-lore符文等级或属性数值。

槽位和解锁变量

变量所在配置含义
{level}槽位等级条件、属性公式当前目标等级。
{slot}槽位解锁条件当前目标槽位编号。
{current_level}槽位展示 Lore当前槽位等级。
{next_level}槽位展示 Lore下一等级。
{max_level}槽位展示 Lore最高等级。
{current_attribute_increase}槽位展示 Lore当前属性增幅。
{next_attribute_increase}槽位展示 Lore下一等级属性增幅。
{current_slot}解锁展示 Lore当前已解锁槽位数量。
{next_slot}解锁展示 Lore下一次解锁后的槽位数量。
{max_slot}解锁展示 Lore、装备模板最大可解锁槽位数量。
{item}条件显示文字条件要求的物品名称。
{amount}条件显示文字条件要求的数量。
{status}条件显示文字条件满足或不满足的状态文字。

GUI 变量

变量所在配置含义
{unlocked}装备模板当前已经解锁的槽位数量。
{attribute}属性统计按钮所有已镶嵌符文的属性统计结果。
{level}已解锁槽位模板当前槽位等级。
{current_stage}槽位 Lore当前等级阶段的展示内容。
{next_stage}槽位 Lore下一等级阶段的展示内容。
{upgrade_condition}槽位和解锁 Lore下一次升级或解锁的条件显示内容。
{current_condition}未解锁槽位 Lore当前解锁阶段的展示内容。
{library_id}database-message.restore-success恢复成功的符文库 ID。

运行时变量统一使用 {变量} 格式。PlaceholderAPI 表达式仍使用 PlaceholderAPI 自身的变量格式,例如默认配置中的 %player_level%

属性机制

插件会按照 atttribute-increase-lore 过滤符文属性 Lore,并将统计结果应用到 attribute-plugin 指定的属性插件。

支持的属性插件名称为:

  • AttributePlus
  • AttributeSystem
  • SX-Attribute
  • ItemLoreOrigin

属性刷新默认每 20 tick 检查一次。玩家退出、插件停用或配置重载时,会清理本插件提交的属性来源。属性插件未安装、未启动、接口不匹配或配置名称错误时,属性不会正常提交。

常见问题

装备无法放入界面

检查装备 Lore 是否包含与 unload-rune-lore 完全相同的一整行文字。默认值为 &6可刻印符文。装备数量必须为 1。

符文无法镶嵌

检查符文 Lore 是否包含与 rune-item-lore 对应的识别文字,并确认目标槽位已经解锁且等级满足 rune-level-key 的要求。

槽位无法解锁

检查当前目标槽位是否落在 unlock-config 的有效范围内,再检查 PlaceholderAPI 条件、物品数量、金币余额和其它配置条件。默认第 1 至第 4 个槽位与第 5 至第 10 个槽位使用不同的金币公式。

槽位无法升级

检查目标等级是否配置在 slot-level-config 的有效范围内,并确认升级材料和金币足够。1 级是新解锁槽位的初始等级,升级条件从目标等级 2 开始。

拆卸按钮没有反应

disassemble-need-item-enabletrue 时,必须手持显示名称与 disassemble-item-name 完全一致的拆卸工具。默认工具名称为 &6符文蜕印石

属性没有生效

确认 attribute-plugin 填写的是支持的名称,并确认对应属性插件已经启动。符文 Lore 还必须匹配 atttribute-increase-lore 白名单。属性刷新默认最多等待约 20 tick。

MySQL 模式启动后功能不可用

确认已经安装 数据库连接前置,mysql.enable 已设置为 true,并检查地址、端口、数据库名、用户名和密码。只有数据库成功连接后,符文库和相关功能才会生效。

点券或金币条件无法完成

点券条件需要可用的 PlayerPoints,金币条件需要可用的 Vault 经济服务。使用 papi 条件时还需要 PlaceholderAPI 正常运行。

关闭界面后修改没有立即写入

界面操作会先记录在当前界面草稿中,取下装备或关闭界面时统一提交。数据库保存失败时不会将未完成的修改当作成功结果。

归档后的符文库如何处理

启用 library-gc 后,长期未访问的符文库会先进入观察期,之后移动到备份表。管理员可以使用手持带有效符文库引用的物品执行 /lgfw restore,恢复对应的备份数据。