强化 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.10 | V1_7_R4 |
1.8.8 | V1_8_R3 |
1.11.2 | V1_11_R1 |
1.12.2 | V1_12_R1 |
1.13.2 | V1_13_R2 |
1.14.4 | V1_14_R1 |
1.15.2 | V1_15_R1 |
1.16.5 | V1_16_R3 |
1.17.1 | V1_17_R1 |
1.18.2 | V1_18_R2 |
1.19.2 | V1_19_R1 |
1.19.4 | V1_19_R3 |
1.20.1 | V1_20_R1 |
1.20.2 | V1_20_R2 |
1.20.3 | V1_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 物品库。
Vault 或 PlaceholderAPI 未启用时,插件会在启动时输出对应的前置状态。使用依赖相关功能前,应确认对应插件已经正常加载。
核心功能
| 功能 | 说明 |
|---|---|
| 多套强化方案 | 可同时配置多套方案,并按装备显示名匹配不同强化路线 |
| 模糊或完整匹配 | 适用物品 默认进行包含匹配,也支持 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。
强化配置支持:
- 为单个等级配置规则,例如
1、10。 - 为等级区间配置共用规则,例如
3-9。 - 设置强化上限。
- 在指定等级替换显示名。
- 在指定等级直接替换整个物品。
- 删除两个 Lore 定位行之间的内容后重新写入强化 Lore。
- 为不同等级设置不同的强化识别字符。
成功率计算
强化按钮会显示基础成功率、强化石加成和保底加成。实际强化成功率还可能包含福星加成。
可参与计算的内容包括:
- 强化方案中的基础
概率。 - 强化石的加法或乘法成功率加成。
- 保底触发后的成功率加成。
福星变量对应的 PlaceholderAPI 变量。- 强化等级
{level}。 - PlaceholderAPI 变量。
- 配置中的公式表达式。
失败结果
强化失败 使用 结果#权重 的形式配置,结果可以是负数、0 或 break:
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-left、calculate-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。
支持的槽位来源如下:
| 来源 | 格式 | 说明 |
|---|---|---|
| DragonCore | DragonCore#槽位名 | 读取 DragonCore 槽位 |
| GermPlugin | GermPlugin#槽位名 | 读取萌芽槽位 |
| APInventory | APInventory#分页ID#槽位ID | 槽位 ID 为 0 至 53 |
| LyInventory | LyInventory#背包ID#类型 | 读取离渊背包槽位 |
| LyInventoryReload | LyInventoryReload#背包ID#类型 | 读取离渊背包重置版槽位 |
| YeeJewelry | YeeJewelry#背包ID#槽位ID | 读取清守饰品背包槽位 |
| PXRPG | PXRPG#类型#背包ID#槽位 | 读取 PXRPG 装备容器槽位 |
| Origin | Origin#MainHand | 主手 |
| Origin | Origin#OffHand | 副手 |
| Origin | Origin#Helmet | 头盔 |
| Origin | Origin#ChestPlate | 胸甲 |
| Origin | Origin#Legging | 护腿 |
| Origin | Origin#Boots | 靴子 |
| Minecraft | Minecraft#槽位ID | 读取原版背包槽位,槽位 ID 为 0 至 35 |
这些变量读取到的是物品当前被插件识别到的强化等级,不会直接读取任意自定义等级字段。
配置文件
插件会在重载时读取以下文件:
| 文件 | 用途 |
|---|---|
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 保底数据才会生效:
config.yml中的guaranteed-enable为true。config.yml中的mysql.enable为true。- 已安装
LyMySQLCore。 LyMySQLCore已成功连接数据库。
MySQL 模式通过 LyMySQLCore 的安全玩家加载和保存事件读取、保存玩家保底数据。数据库连接失败或前置插件未正常工作时,相关保底数据不会正常读取、保存或同步。
启用或关闭数据库需要重启服务器,单独重载配置不会完成数据库模式切换。
相关说明
- 强化方案主要依赖物品显示名进行匹配,修改装备显示名可能导致无法匹配原强化方案。
- 强化识别字符、强化标识符和强化名称一旦投入使用,不应随意修改,否则可能导致已有物品无法正确识别强化等级。
- 强化材料、强化石、保护符和强化券必须能够被配置的物品库正确读取。
- 强化石的等级限制支持
-1表示不限制,也支持如1-5的等级范围。 - 强化券可以限制适用强化方案;不填写方案列表时默认对所有方案可用。
- Lore 命中
禁止强化功能Lore关键词中任意关键词的物品,不能进行强化、转移等强化系统操作。 - 插件提供 NMS NBT 适配,但 NBT 写入内容由强化方案中的
设置NBT配置决定,不会自动生成统一的装备属性结构。