Skip to content

强化 LyStrengthen2

MySQL 前置要求

启用 MySQL 存储时,必须安装 LyMySQLCore,并确认 LyMySQLCore 已成功连接数据库。否则本插件的保底数据读取、保存和同步不会生效。

LyStrengthen2 是一套配置驱动的 Minecraft 装备强化系统,支持多套强化方案、等级区间规则、强化石、保护符、强化券直升、强化转移、失败结果、公式计算、Lore 属性展示和 NBT 写入。

插件通过装备显示名匹配强化方案。强化时可以消耗金币、材料、强化石和保护符,并根据配置决定成功、失败掉级、装备破碎、等级不变或执行命令等结果。

插件信息

项目内容
插件名LyStrengthen2
当前项目版本1.2.3
作者Liyuan
插件主命令/qh/qh2
配置语言简体中文配置键
数据存储YAML;保底功能可选 MySQL
Java 编译目标Java 8;1.17 及以上 NMS 模块使用 Java 17

支持版本

项目提供以下 NMS 适配模块:

Minecraft 版本NMS 模块
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

以上版本来自项目中实际提供的 NMS 适配模块。未列出的版本不在当前项目证据范围内。

依赖与联动

plugin.yml 中声明的软依赖如下:

插件用途
Mythicmobs默认的物品库来源,也用于读取强化材料、强化石、保护符、强化券和替换物品
Vault读取和扣除强化、转移所需金币
LyMySQLCore为保底数据提供 MySQL 读取和保存支持
PlaceholderAPI提供变量替换、公式计算前的占位符处理和 PlaceholderAPI 变量

配置还提供以下物品库或物品系统开关:

  • neigeItems:启用 NeigeItems 物品库支持。
  • originAttribute:启用 OA 物品库优先支持;未检测到 OA 物品时再检测 MythicMobs。
  • SX-Item:配置文件中提供该物品系统的开关项。
  • 强化达到指定等级时,替换物品 支持配置中列出的 AzureFlow、SX-Item、NeigeItems、OA 相关物品来源;未使用这些来源时默认使用 MythicMobs 物品库。

VaultPlaceholderAPI 未启用时,插件会在启动时输出对应的前置状态。使用依赖相关功能前,应确认对应插件已经正常加载。

核心功能

功能说明
多套强化方案可同时配置多套方案,并按装备显示名匹配不同强化路线
模糊或完整匹配适用物品 默认进行包含匹配,也支持 contain@equals@ 前缀
等级上限每套强化方案单独设置强化上限
单级规则每个强化等级可以单独配置成功率、金币、材料、失败结果和强化内容
等级区间使用如 3-9 的配置键,让多个等级共用同一套规则
动态公式成功率、金币、材料数量、Lore 内容和 NBT 内容支持 {level}、PlaceholderAPI 变量和四则运算
Lore 数值读取从指定 Lore 行提取数值,并通过 {v.变量名} 参与强化内容或 NBT 公式计算
Lore 写入强化后将配置的强化内容写入物品 Lore,并支持指定插入位置
NBT 写入强化后可将计算结果写入指定 NBT 字符串键
强化石增加成功率,并按配置改变材料和金币消耗比例;支持加法或乘法类型
保护符强化失败时消耗保护符,阻止本次掉级或破碎结果
强化券消耗强化券,以配置概率将装备直升到指定强化等级
强化转移将左侧装备的强化等级转移到右侧装备,并按规则扣除等级、金币和材料
失败分支支持不变、掉级、掉多级和 break 破碎结果,并可配置权重
强化命令强化成功和失败后分别执行配置的命令
等级权限每个强化等级可以配置独立强化权限;没有权限时不能进行该级强化
保底按强化方案和等级记录失败次数,达到配置次数后增加成功率
禁止强化 Lore物品 Lore 命中配置关键词后,禁止强化、转移等强化系统功能
多背包槽位读取PlaceholderAPI 变量可以读取多个外部背包或原版槽位中的强化等级
多版本 NBT项目提供多个 Minecraft 版本的 NMS NBT 适配实现

强化机制

装备识别

强化方案通过 适用物品 识别装备显示名:

写法匹配方式
装备名称默认包含匹配,装备显示名包含该文本即可匹配
contain@装备名称明确使用包含匹配
equals@装备名称要求装备显示名完整匹配

同一装备应避免同时命中多个方案,否则可能出现方案匹配冲突。

强化等级

插件将强化等级写入装备显示名,并使用内部隐藏标识识别当前等级。强化内容通常写入 Lore,同时可以通过 设置NBT 写入 NBT。

强化配置支持:

  • 为单个等级配置规则,例如 110
  • 为等级区间配置共用规则,例如 3-9
  • 设置强化上限。
  • 在指定等级替换显示名。
  • 在指定等级直接替换整个物品。
  • 删除两个 Lore 定位行之间的内容后重新写入强化 Lore。
  • 为不同等级设置不同的强化识别字符。

成功率计算

强化按钮会显示基础成功率、强化石加成和保底加成。实际强化成功率还可能包含福星加成。

可参与计算的内容包括:

  • 强化方案中的基础 概率
  • 强化石的加法或乘法成功率加成。
  • 保底触发后的成功率加成。
  • 福星变量 对应的 PlaceholderAPI 变量。
  • 强化等级 {level}
  • PlaceholderAPI 变量。
  • 配置中的公式表达式。

失败结果

强化失败 使用 结果#权重 的形式配置,结果可以是负数、0break

yaml
强化失败:
  - '-1#50'
  - '0#45'
  - 'break#5'
结果含义
负数按数值降低强化等级;如果降低后小于 0,则按 0 处理
0强化等级不变
break装备破碎,从强化界面中移除装备

如果选择了保护符,强化失败时会优先扣除保护符,并阻止掉级或破碎结果。

强化内容与 NBT

强化内容写入 Lore,支持 {level}{v.变量名}、PlaceholderAPI 变量和公式:

yaml
强化内容:
  - '&c&l强化等级: &b&l{level}'
  - '&e&l物理攻击: &b&l<{level}*10~%.0f>'

配置中的公式左右标记默认为 <>,可以通过 calculate-key-leftcalculate-key-right 修改。公式中使用 ~ 时,后面的内容作为 Java 格式化字符串,例如 %.0f 表示保留零位小数。

设置NBT 的值使用同样的变量和公式处理,最终写入物品指定的 NBT 字符串键:

yaml
设置NBT:
  属性: '物理攻击+<{level}*10~%.0f>'

图形界面

插件提供三种 Bukkit Inventory 界面:

界面默认标题界面大小主要用途
强化界面&6 装备强化54 格放入装备、强化石和保护符并执行强化
强化券界面&6强化券使用&a(强化直升)27 格放入装备和强化券并执行直升
强化转移界面&6强化转移54 格放入源装备和目标装备并执行强化转移

强化界面会动态显示:

  • 当前强化等级和下一等级。
  • 基础成功率。
  • 强化石成功率加成。
  • 福星加成。
  • 保底加成和当前保底进度。
  • 当前等级所需金币。
  • 当前等级所需材料及拥有数量。
  • 当前等级可用的保护符。
  • 下一等级的强化内容。
  • 强化失败结果说明。

界面只允许物品放入指定槽位。关闭界面时,界面内未处理的装备、强化石、强化券和转移物品会返还背包;背包空间不足时会掉落在玩家脚下。

指令

主命令为 /qh/qh2。两个命令均注册到插件的命令执行器。

指令用途使用限制
/qh主命令入口无参数时仅管理员显示帮助
/qh reload重载配置、强化方案、强化道具和强化转移配置仅管理员
/qh open打开强化界面玩家执行
/qh qhq打开强化券界面玩家执行
/qh zy打开强化转移界面玩家执行
/qh2第二个主命令入口无参数时仅管理员显示帮助
/qh2 reload重载配置、强化方案、强化道具和强化转移配置仅管理员
/qh2 open打开强化界面玩家执行

项目帮助文本中还显示 /qh yz“重连验证”,但当前提供的 ServerCommand 没有对应的执行分支,因此不将它列为可用功能指令。

插件没有在 plugin.yml 中声明独立的权限节点。强化等级权限由强化方案中的 强化权限 配置控制,重载权限使用管理员状态判断。

PlaceholderAPI 变量

插件注册的 PlaceholderAPI 标识符为 lyqh

槽位强化等级

text
%lyqh_slot_level_槽位来源#槽位参数%

返回指定槽位物品的强化等级。未读取到物品或物品没有强化等级时返回 0

支持的槽位来源如下:

来源格式说明
DragonCoreDragonCore#槽位名读取 DragonCore 槽位
GermPluginGermPlugin#槽位名读取萌芽槽位
APInventoryAPInventory#分页ID#槽位ID槽位 ID 为 053
LyInventoryLyInventory#背包ID#类型读取离渊背包槽位
LyInventoryReloadLyInventoryReload#背包ID#类型读取离渊背包重置版槽位
YeeJewelryYeeJewelry#背包ID#槽位ID读取清守饰品背包槽位
PXRPGPXRPG#类型#背包ID#槽位读取 PXRPG 装备容器槽位
OriginOrigin#MainHand主手
OriginOrigin#OffHand副手
OriginOrigin#Helmet头盔
OriginOrigin#ChestPlate胸甲
OriginOrigin#Legging护腿
OriginOrigin#Boots靴子
MinecraftMinecraft#槽位ID读取原版背包槽位,槽位 ID 为 035

这些变量读取到的是物品当前被插件识别到的强化等级,不会直接读取任意自定义等级字段。

配置文件

插件会在重载时读取以下文件:

文件用途
config.yml全局设置、GUI、消息、公式标记、Lore 写入方式、保底和 MySQL
强化道具.yml强化券和强化石
强化方案/强化方案.yml强化方案、等级规则、材料、失败结果、Lore、NBT、命令和权限
强化转移.yml强化组、转移规则、转移消耗和装备破碎设置

推荐按页面分别查看详细配置:

页面内容
配置说明config.yml 的全局配置、GUI、消息、保底和 MySQL
强化方案强化方案/*.yml 的方案、等级和公式配置
强化道具强化道具.yml 中的强化石、保护符和强化券说明
强化转移强化转移.yml 中的强化组和转移规则
插件变量PlaceholderAPI 变量和多槽位格式
常见问题配置、依赖、强化识别和数据存储问题
更新日志插件或文档更新记录

数据存储

YAML 存储

关闭 mysql.enable 时,保底数据保存到插件目录下的玩家数据文件:

text
plugins/LyStrengthen2/data/<玩家UUID>.yml

数据使用 guaranteed 节点保存各强化方案的失败次数。YAML 存储使用临时文件、备份文件和故障恢复机制,玩家数据文件损坏时会尝试从 .bak 文件恢复。

MySQL 存储

只有在以下条件同时满足时,MySQL 保底数据才会生效:

  1. config.yml 中的 guaranteed-enabletrue
  2. config.yml 中的 mysql.enabletrue
  3. 已安装 LyMySQLCore
  4. LyMySQLCore 已成功连接数据库。

MySQL 模式通过 LyMySQLCore 的安全玩家加载和保存事件读取、保存玩家保底数据。数据库连接失败或前置插件未正常工作时,相关保底数据不会正常读取、保存或同步。

启用或关闭数据库需要重启服务器,单独重载配置不会完成数据库模式切换。

相关说明

  • 强化方案主要依赖物品显示名进行匹配,修改装备显示名可能导致无法匹配原强化方案。
  • 强化识别字符、强化标识符和强化名称一旦投入使用,不应随意修改,否则可能导致已有物品无法正确识别强化等级。
  • 强化材料、强化石、保护符和强化券必须能够被配置的物品库正确读取。
  • 强化石的等级限制支持 -1 表示不限制,也支持如 1-5 的等级范围。
  • 强化券可以限制适用强化方案;不填写方案列表时默认对所有方案可用。
  • Lore 命中 禁止强化功能Lore关键词 中任意关键词的物品,不能进行强化、转移等强化系统操作。
  • 插件提供 NMS NBT 适配,但 NBT 写入内容由强化方案中的 设置NBT 配置决定,不会自动生成统一的装备属性结构。