新强化 LyGalaxyStrengthen
LyGalaxyStrengthen 是一款服务端装备强化插件,提供普通强化、强化直升和强化转移三套独立界面。插件会根据装备显示名称自动识别强化方案,将强化方案、当前等级、历史最高等级、连续失败次数和属性基础值保存在装备数据中,并按照配置完成成功率、材料、货币、保护石、失败保底、失败结果和 Lore 属性结算。
插件只需安装在服务端,不包含客户端 MOD,玩家客户端无需安装额外内容。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名 | LyGalaxyStrengthen |
| 中文名 | 新强化 |
| 当前版本 | 1.0.0 |
| 项目类型 | 服务端插件 |
| 主命令 | /lgs |
| 作者 | 离渊 |
| 客户端要求 | 无需安装客户端 MOD |
| 数据存储 | 强化数据保存在装备 NBT 与 Lore 标记中 |
| 数据库要求 | 不使用 MySQL |
支持版本
项目包含以下 Minecraft 服务端版本的装备 NBT 适配:
| Minecraft 版本 | 适配版本 |
|---|---|
| 1.7 | 1.7.10 |
| 1.8 | 1.8.8 |
| 1.11 | 1.11.2 |
| 1.12 | 1.12.2 |
| 1.13 | 1.13.2 |
| 1.14 | 1.14.4 |
| 1.15 | 1.15.2 |
| 1.16 | 1.16.5 |
| 1.17 | 1.17.1 |
| 1.18 | 1.18.2 |
| 1.19 | 1.19.2、1.19.4 |
| 1.20 | 1.20.1、1.20.2、1.20.3 |
未列出的服务端版本没有在项目中发现对应适配。插件启动或重载时会检查当前服务端是否存在可用的 NBT 适配器,没有适配器时强化系统不会进入可用状态。
依赖与兼容插件
插件没有声明强制依赖。以下插件均为可选依赖,只有启用对应功能时才需要安装。
功能扩展
| 插件 | 用途 |
|---|---|
| PlaceholderAPI | 解析界面标题、界面名称、界面 Lore、脚本条件和脚本指令中的变量 |
| Vault | 扣除普通强化和强化转移所需的金币 |
| PlayerPoints | 提供 point 点券货币 |
| LyShopReload | 提供 lyshop@货币ID 类型的商城货币 |
| CraftX | 提供 cx@变量ID 类型的扩展货币 |
未安装对应货币插件时,不要在强化方案或转移方案中配置该货币。方案没有配置 need-money 或对应额外货币时,不需要相关经济插件。
物品库兼容
普通强化材料和强化转移材料可以从以下物品库读取:
| 物品库 | 材料标识 |
|---|---|
| MythicMobs | MythicMobs@物品ID |
| LyItemSave | LyItemSave@物品ID |
| AzureFlow | AzureFlow@物品ID |
| NeonFlash | NeonFlash@物品ID |
| SX-Item | SX-Item@物品ID |
| NeigeItems | NeigeItems@物品ID |
| OriginAttribute | OriginAttribute@物品ID |
材料没有填写 物品库@ 前缀时,会使用 config.yml 中的 item-provider。该配置为空时默认使用 MythicMobs。MythicMobs 与 LyItemSave 的物品名称可以互通。
项目还声明了 LyLootsWareHouse、LyWarehouse 和 YeeCore 的兼容关系。扣除方案材料时,插件会尝试从已经连接的兼容外部存储和玩家背包中查找材料,实际可用范围取决于服务器安装并成功启用的插件。
材料标识对应的物品库没有连接时,配置重载会产生警告。该警告不会直接阻止重载,但对应材料将无法正常读取或扣除。
主要功能
| 功能 | 说明 |
|---|---|
| 普通强化 | 按方案逐级强化装备,结算成功率、金币、额外货币、材料和失败结果 |
| 强化直升 | 使用符合方案的强化券,将已有强化数据的装备直接提升到指定等级 |
| 强化转移 | 将来源装备的强化等级转移给目标装备,并随机损失一定等级 |
| 自动方案识别 | 根据装备显示名称识别普通强化方案,避免玩家手动选择错误方案 |
| Lore 属性强化 | 从装备 Lore 提取基础数值,按等级、系数和公式重新生成属性 Lore |
| 失败保底 | 根据装备的连续失败次数提高本次强化成功率 |
| 保护石 | 阻止失败造成的降级或装备破坏 |
| 通用强化材料 | 代替一次普通强化所需的金币、额外货币和普通材料 |
| 强化触发脚本 | 根据强化结果和条件修改 Lore,或执行控制台、管理员和玩家指令 |
| 自定义界面 | 分别配置普通强化、直升和转移界面的布局、按钮、展示物品和变量 |
| 安全重载 | 校验全部方案、引用和界面;失败时继续使用重载前的可用配置 |
| 开发接口 | 提供等级读取、方案读取、失败次数读取、完整强化、升级和降级等接口 |
主要玩法
普通强化
玩家将装备放入普通强化界面后,插件会检查全部普通强化方案。未绑定方案的装备需要满足方案的 equipment-names 名称包含规则;已经拥有强化数据的装备会继续使用原本绑定的方案。
识别到唯一方案后,插件会读取装备实际拥有的 Lore 模板,生成下一等级的属性预览,并显示基础成功率、权限加成、失败保底、最终成功率、材料、金币、额外货币和失败结果。
一次普通强化可以结算以下内容:
- Vault 金币。
- PlayerPoints 点券。
- LyShop 扩展货币。
- CraftX 扩展货币。
- 一个或多个物品库材料。
- 通用强化材料。
- 强化保护石。
只有真正进入强化结算后,才会扣除费用并处理连续失败次数。金币、额外货币或普通材料不足时,不会执行强化,也不会增加连续失败次数。
强化直升
强化直升需要同时放入已经拥有强化数据的装备和符合直升方案名称规则的强化券。
每个直升方案可以设置:
| 配置能力 | 说明 |
|---|---|
| 强化券匹配文本 | 使用物品显示名称包含匹配 |
| 目标等级 | 直升成功后装备直接到达的等级 |
| 成功率 | 使用 0 至 100 的百分比 |
| 适用强化方案 | 限制哪些普通强化方案可以使用该强化券,空列表表示不限制 |
装备当前等级必须低于直升目标等级,目标等级不能超过装备绑定方案的强化等级上限。全部检查通过并进入成功率判断后,无论直升成功还是失败,都会消耗一张强化券。
强化转移
强化转移用于将来源装备的强化等级转移到目标装备。来源装备和目标装备都必须已经拥有强化数据,并满足转移方案配置的来源方案与目标方案关系。
转移时会检查以下条件:
- 来源装备等级高于目标装备等级。
- 来源等级没有超过目标强化方案的等级上限。
- 来源方案与目标方案存在允许的转移关系。
- 玩家拥有足够的金币、额外货币和材料。
转移成功后,插件会按照方案的 level-loss.min 与 level-loss.max 随机损失等级,转移结果最低为 1 级。
来源装备可以按方案选择以下处理方式:
destroy-source-item | 处理结果 |
|---|---|
true | 转移成功后消耗来源装备 |
false | 保留来源装备,并将其当前强化等级恢复为 0 级 |
强化机制
方案自动识别
普通强化不要求玩家手动选择方案。插件会根据装备数据和显示名称进行检测:
- 未强化装备按照显示名称包含规则检查
equipment-names。 - 没有方案匹配时,装备无法强化。
- 只有一个方案匹配时,装备绑定该强化方案。
- 同时匹配多个方案时,插件拒绝操作,避免装备绑定到错误方案。
- 已经拥有强化数据的装备继续使用原本保存的方案 ID。
强化方案的 coefficient 用于声明可以处理的 Lore 模板。装备只会读取自己实际拥有的模板 Lore,不要求每件装备拥有方案引用的全部模板。
装备强化数据
插件会在装备中记录以下数据:
| 数据 | 用途 |
|---|---|
| 强化方案 ID | 标记装备绑定的普通强化方案 |
| 当前强化等级 | 计算当前属性、下次目标等级和转移结果 |
| 历史最高等级 | 供强化脚本判断装备是否首次达到某个等级 |
| 连续失败次数 | 计算失败保底加成 |
| 原始显示名称 | 根据名称格式重绘强化后的装备名称 |
| Lore 基础数值 | 根据属性公式重新生成强化 Lore |
| Lore 模板实例数量 | 检查强化属性 Lore 是否被增加或删除 |
| 数据结构版本 | 供装备强化数据兼容处理使用 |
未强化装备按 0 级处理。装备降级、转移后重置或恢复到 0 级时,历史最高等级不会随当前等级一起降低。
强化方案 ID、Lore 模板 ID 和已经投入使用的数据标识不应随意修改,否则已有装备可能无法继续按照原方案读取和重绘。
成功率计算
普通强化的最终成功率按照以下顺序计算:
- 读取目标等级规则中的基础成功率。
- 应用玩家拥有的最高权限成功率加成。
- 根据装备连续失败次数应用失败保底。
- 将最终结果限制在
0%至100%。
权限成功率按照以下方式计算:
text
基础成功率 × (1 + 权限加成)玩家同时拥有多项成功率权限时,只使用 chance 数值最高的一项,不会叠加所有权限。
失败保底支持两种全局模式:
| 模式 | 计算方式 |
|---|---|
add | 在应用权限后的成功率上直接增加指定百分点 |
multiply | 将应用权限后的成功率乘以指定倍率 |
失败结果
每个强化等级规则可以配置多个带权重的失败结果:
| 结果配置 | 实际效果 |
|---|---|
0 | 强化失败,等级不变 |
| 负整数 | 强化失败并降低对应等级 |
break | 强化失败并破坏装备 |
失败结果按照权重随机选择,权重总和不要求等于 100。没有配置失败结果时,默认失败后等级不变。降级结果不会让装备等级低于 0 级。
连续失败保底
连续失败次数保存在装备自身的数据中:
- 有效强化失败后,连续失败次数增加 1。
- 强化成功后,连续失败次数清零。
- 保护石阻止降级或破坏时,本次仍然属于失败。
- 金币、额外货币或普通材料不足时没有进入强化结算,不增加失败次数。
- 每个等级规则可以设置不同的失败次数范围和保底数值。
失败次数范围支持以下格式:
| 格式 | 含义 |
|---|---|
3 | 仅连续失败 3 次时生效 |
1-2 | 连续失败 1 至 2 次时生效 |
5-max | 从连续失败 5 次开始持续生效 |
同一等级规则中的失败次数范围不能重叠。
保护石
普通强化方案可以按等级规则配置允许使用的保护石名称。保护石按照物品显示名称完整匹配,并支持配置多个可用名称。
保护石生效后会阻止强化失败造成的降级和装备破坏,但不会将失败改为成功,也不会阻止连续失败次数增加。
保护石消耗时机由 config.yml 的 protection-item-consume 控制:
| 模式 | 消耗规则 |
|---|---|
failure | 只有强化失败时消耗保护石 |
always | 进入有效强化后,无论成功或失败都消耗保护石 |
当前目标等级没有配置 protection-item 时,不能使用保护石。
通用强化材料
普通强化方案可以配置通用强化材料及其可用目标等级范围。通用材料按照物品显示名称完整匹配。
玩家将有效通用材料放入专用槽位后,本次强化不再消耗:
- Vault 金币。
- PlayerPoints、LyShop 或 CraftX 额外货币。
- 普通物品库材料。
每次真正执行强化会消耗一个通用强化材料。通用材料不会代替保护石,也不会改变成功率和失败结果。
Lore 属性强化
插件通过 config.yml 中的 Lore 模板读取装备原始属性,并按照强化等级、方案系数和公式重新生成 Lore。
Lore 模板支持:
- 从指定 Lore 中提取一个或多个整数或小数。
- 保存装备首次强化时的原始属性值。
- 在公式中使用
{base:数值ID}、{level}和{coefficient}。 - 使用
{nbt:节点路径}读取装备 NBT 中的字符串或数值。 - 为计算结果设置小数格式。
- 同一个模板匹配多条 Lore,并分别保存每条 Lore 的基础值。
- 装备回到 0 级时恢复首次保存的原始属性内容。
- 将强化后的装备名称按照
{name}和{level}重新生成。
模板 ID 和数值 ID 不能包含英文冒号 :。公式只能读取当前 Lore 模板、当前实例保存的基础数值,不能跨模板或跨实例读取其他属性。
插件会为被管理的强化属性 Lore 添加隐藏标记,用于定位模板实例。不要手动添加插件专用隐藏标记,也不要随意增加、删除或替换已绑定装备的强化属性 Lore,否则模板实例数量检查可能失败。
强化触发脚本
普通强化等级规则可以按照强化结果和条件执行 Lore 操作或指令。
| 类型 | 触发时机 |
|---|---|
attempt | 完成扣费后的任意强化结果 |
success | 强化成功 |
failure | 任意概率失败 |
protected-failure | 失败并由保护石阻止惩罚 |
unchanged-failure | 失败但强化等级不变 |
downgrade-failure | 失败并发生降级 |
break-failure | 失败并破坏装备 |
cost-insufficient | 金币、额外货币或普通材料不足 |
条件表达式支持逻辑比较和四则运算,可以使用以下强化上下文:
| 变量 | 含义 |
|---|---|
{highest_level} | 本次操作开始前保存的历史最高等级 |
{before_level} | 本次操作前的当前等级 |
{current_level} | 本次结算后的当前等级 |
{target_level} | 本次尝试到达的目标等级 |
{failure_count} | 连续失败次数 |
{level_change} | 本次操作产生的等级变化 |
安装 PlaceholderAPI 后,条件和指令还可以使用 PlaceholderAPI 变量。
脚本动作支持:
- 添加 Lore。
- 在定位 Lore 前插入内容。
- 在定位 Lore 后插入内容。
- 替换 Lore。
- 删除 Lore。
- 执行控制台指令。
- 执行管理员指令。
- 执行玩家指令。
脚本会在强化结算完成后执行。替换强化属性 Lore 时会保留对应隐藏标记;删除强化属性 Lore 后,装备可能无法继续通过强化数据完整性检查。
详细配置格式见强化方案。
自定义界面
插件固定读取三个界面文件:
| 文件 | 用途 |
|---|---|
gui/强化界面.yml | 普通强化界面 |
gui/直升界面.yml | 强化直升界面 |
gui/转移界面.yml | 强化转移界面 |
每个界面均支持:
- 使用
layout配置 1 至 6 行界面布局。 - 每行使用正好 9 个字符对应 Minecraft 背包槽位。
- 使用
button将固定功能按钮映射到布局字符。 - 使用
slot设置展示物品、名称、Lore 和真实物品的附加预览模板。 - 在标题、名称、Lore 和模板中使用当前功能提供的变量。
- 安装 PlaceholderAPI 后解析 PlaceholderAPI 变量。
- 使用
&颜色符。 - 使用同一个材料布局字符显示多个材料槽位。
一个布局字符只能绑定一个固定功能按钮。除材料展示槽位外,固定按钮对应的 slot 必须配置能够识别的展示物品。
普通强化和强化转移界面的材料展示槽位数量,必须不少于任意方案单次需要展示的材料种类数量,否则配置重载会失败。
指令
| 指令 | 说明 | 使用限制 |
|---|---|---|
/lgs strengthen | 为自己打开普通强化界面 | 玩家执行 |
/lgs strengthen [玩家] | 为指定在线玩家打开普通强化界面 | OP |
/lgs direct | 为自己打开强化直升界面 | 玩家执行 |
/lgs direct [玩家] | 为指定在线玩家打开强化直升界面 | OP |
/lgs transfer | 为自己打开强化转移界面 | 玩家执行 |
/lgs transfer [玩家] | 为指定在线玩家打开强化转移界面 | OP |
/lgs reload | 重新加载主配置、全部方案和三个固定界面 | OP |
打开界面的指令需要由玩家执行。指定目标玩家时,目标必须在线。
执行重载时,插件会关闭玩家正在使用的强化系列界面,并归还已经放入界面的装备、保护石、通用材料、强化券和转移装备。新配置存在错误时,本次重载不会替换上一份可用的运行配置。
权限
项目没有声明固定的指令权限节点。指定其他在线玩家打开界面以及执行重载由 OP 状态控制。
普通强化成功率权限通过 config.yml 的 permission-chance 自定义。默认配置包含:
| 权限 | chance | 效果 |
|---|---|---|
lygalaxystrengthen.chance.vip1 | 0.10 | 基础成功率提高 10% |
lygalaxystrengthen.chance.vip2 | 0.20 | 基础成功率提高 20% |
这些权限节点和加成数值可以修改。玩家同时拥有多个节点时,只应用 chance 数值最高的一项。
配置目录
| 路径 | 内容 |
|---|---|
config.yml | 默认物品库、货币显示、状态文本、失败结果文本、材料状态文本、装备名称格式、保护石规则、保底模式、Lore 模板和权限成功率 |
strengthen/ | 普通强化方案,可以放置多个 YAML 文件和子目录 |
strengthen-direct/ | 强化直升方案,可以放置多个 YAML 文件和子目录 |
strengthen-transfer/ | 强化转移方案,可以放置多个 YAML 文件和子目录 |
gui/强化界面.yml | 普通强化界面布局 |
gui/直升界面.yml | 强化直升界面布局 |
gui/转移界面.yml | 强化转移界面布局 |
普通强化、直升和转移方案目录会递归扫描扩展名为 .yml 的文件。每类方案中的 id 必须保持唯一。
配置重载检查
执行 /lgs reload 时,插件会检查:
config.yml是否能够正确读取。permission-chance是否存在错误项目。- Lore 模板是否能够加载,并且至少存在一个可用模板。
- 普通强化、直升和转移方案是否能够加载,并且每类至少存在一个可用方案。
- 三个固定界面是否能够加载。
- 当前服务端版本是否有可用的 NBT 适配器。
- 直升方案引用的普通强化方案是否存在。
- 直升目标等级是否超过普通强化方案上限。
- 转移方案引用的来源和目标强化方案是否存在。
- 转移货币公式能否在来源方案 0 级至最高等级下正常计算。
- 普通强化和转移界面是否有足够的材料展示槽位。
- 方案 ID、等级范围、公式、概率、货币标识和其他必填配置是否合法。
材料对应的物品库没有连接时会产生警告。存在会破坏配置完整性的错误时,本次重载失败,并恢复重载前的主配置、强化方案、直升方案、转移方案、Lore 模板、权限规则和界面数据。
使用注意
- 强化装备的数据直接保存在物品中,不需要数据库。
- 不要随意修改已经投入使用的强化方案 ID 或 Lore 模板 ID。
- 不要让一件未绑定装备同时命中多个普通强化方案的
equipment-names。 - 不要手动添加插件使用的隐藏 Lore 标记。
- 不要在缺少对应插件时配置 Vault、PlayerPoints、LyShop 或 CraftX 货币。
- 方案引用的材料物品库必须已经安装并成功启用。
- 调整方案材料数量后,需要同步确认强化和转移界面的材料展示槽位数量。
- 修改配置后应使用
/lgs reload,由插件完成跨文件引用和界面完整性检查。