槽位强化 LySlotStrengthen
MySQL 前置要求
启用 MySQL 存储时,必须安装 LyMySQLCore,并确认它已成功连接数据库。否则本插件的 MySQL 数据读取、保存、同步或相关记录不会生效。
LySlotStrengthen 用于把强化等级绑定到装备槽位,而不是绑定到某一件装备。
玩家强化指定槽位后,该槽位会保存独立的强化等级。槽位上的装备可以获得固定属性,也可以根据装备 Lore 中读取到的数值进行属性增幅。强化界面支持显示当前等级、下级效果、强化条件、成功率和降级条件。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名 | LySlotStrengthen |
| 插件版本 | 1.0.7 |
| 作者 | 离渊 |
| Bukkit API 版本 | 1.13 |
| Java | 1.8 |
| 软依赖 | PlaceholderAPI、Vault、PlayerPoints |
| MySQL 支持 | 需要安装并成功连接 LyMySQLCore |
项目文件将核心模块和插件模块分别打包,插件包名称为 LySlotStrengthen,核心包名称为 LySlotStrengthen-Core。
玩法与机制
槽位强化
- 强化等级按槽位 ID 独立保存。
- 未保存过的槽位默认从
0级开始。 - 每个槽位可以配置单个等级或等级区间,例如
0-5。 - 槽位最大等级由该槽位配置中的最高等级自动计算。
- 达到最大等级后,界面显示
max-level-lore配置的内容。 - 强化成功后等级增加,失败后等级不变。
- 强化失败次数会单独保存,并在下一次强化成功后归零。
强化条件
强化条件可以同时配置多种类型:
| 条件类型 | 写法 | 用途 |
|---|---|---|
| 物品 | item:{插件@物品ID#数量} | 检查并扣除指定物品 |
| 金币 | eco:{公式} | 通过 Vault 检查并扣除金币 |
| 点券 | point:{公式} | 通过 PlayerPoints 检查并扣除点券 |
| 变量条件 | papi:{表达式} | 使用 PlaceholderAPI 变量参与条件判断 |
| 权限 | permission:{权限节点} | 要求玩家拥有指定权限 |
| 无权限 | nopermission:{权限节点} | 要求玩家没有指定权限 |
| CraftX 货币 | cx:{货币ID#公式} | 检查并扣除 CraftX 货币 |
| LyShop 货币 | lshop:{货币ID#公式} | 检查并扣除 LyShop 货币 |
条件可以使用 {level} 代表目标等级。条件显示文本写在 | 后面,并可以使用 {item} 和 {amount} 显示物品名称与数量。
插件会先检查全部条件,条件满足后才会扣除物品或货币。随后执行 start-command,最后判断强化成功率。
强化成功率
chance 支持固定值、计算公式和 PlaceholderAPI 变量。配置中的 {level} 代表目标强化等级,计算结果会限制在 0 到 1 之间。
槽位还可以通过 permission-chance-addition 为拥有指定权限的玩家配置成功率加成,并在强化按钮的成功率后追加展示文本。
强化过程支持分别配置:
- 强化开始指令。
- 强化成功指令。
- 强化失败指令。
- 强化成功、失败消息。
- 强化失败次数记录。
属性效果
槽位强化效果分为两类:
| 类型 | 说明 |
|---|---|
| 固定属性 | 通过 fixed-lore 按强化等级生成固定 Lore 属性 |
| Lore 增幅 | 读取当前装备 Lore 中的数值,再按公式计算增幅值 |
Lore 增幅支持:
- 通过左右文本定位装备 Lore 中的数值。
- 通过
lore-get-value读取固定 Lore 中的自定义数值。 - 使用
{value}代表读取到的原始数值。 - 使用
{level}代表当前槽位强化等级。 - 通过
attribute-format将结果传入属性插件。 - 通过
show-lore展示当前强化效果和下级强化效果。
支持的属性插件配置值包括:
AttributePlusSX-Attribute2SX-Attribute3AttributeSystemItemLoreOrigin
属性会在关闭背包、切换主手物品和切换副手物品时刷新。只有满足槽位 enable-condition 且装备满足全局穿戴检测条件时,相关属性才会生效。
降级
槽位可以单独启用降级功能。启用后:
- 在强化界面右键点击槽位按钮可降低一级。
- 等级为
0时不能继续降级。 - 降级可以配置物品、金币、点券、变量、权限、CraftX 货币和 LyShop 货币条件。
- 降级条件满足后会扣除对应消耗。
- 降级后执行
level-down.command。 - 降级成功后等级降低一级,失败次数归零。
- 未启用降级时,
{leveldown_condition}显示降级功能未启用。
支持的槽位类型
槽位 ID 由槽位配置文件中的顶层键决定,支持以下写法:
| 槽位来源 | 槽位 ID 格式 |
|---|---|
| 原版主手 | Origin#MainHand |
| 原版副手 | Origin#OffHand |
| 原版头盔 | Origin#Helmet |
| 原版胸甲 | Origin#ChestPlate |
| 原版护腿 | Origin#Legging |
| 原版靴子 | Origin#Boots |
| Minecraft 原版槽位 | Minecraft#槽位ID,槽位 ID 为 0-36 |
| DragonCore | DragonCore#槽位名 |
| GermPlugin | GermPlugin#槽位名 |
| APInventory | APInventory#分页ID#槽位ID,槽位 ID 为 0-53 |
| LyInventory | LyInventory#背包ID#类型 |
| LyInventoryReload | LyInventoryReload#背包ID#类型 |
| YeeJewelry | YeeJewelry#背包ID#槽位ID |
指令
主命令:/lss
| 指令 | 使用者 | 说明 |
|---|---|---|
/lss | OP | 显示帮助信息 |
/lss reload | OP | 重载主配置、槽位配置和界面配置 |
/lss open <界面ID> | 玩家 | 打开指定强化界面 |
/lss open <界面ID> <玩家> | OP | 为指定在线玩家打开强化界面 |
/lss strengthen <槽位> <玩家> | OP | 让指定在线玩家按正常流程尝试强化槽位 |
/lss levelup <槽位> <玩家> | OP | 让指定在线玩家强制升级槽位,跳过强化条件和消耗 |
/lss setlevel <玩家> <槽位> <等级> | OP | 设置指定在线玩家的槽位等级 |
setlevel 设置的等级会自动限制在 0 到该槽位最大等级之间。项目中未配置独立权限节点,管理指令通过 OP 身份判断。
界面 ID、槽位 ID 和玩家名称均需要使用实际配置或在线玩家中的值。目标玩家不在线或槽位不存在时,管理指令不会执行对应操作。
配置文件
插件运行后使用以下目录结构:
text
plugins/LySlotStrengthen/
├─ config.yml
├─ slot/
│ ├─ 示例.yml
│ └─ 其他槽位配置.yml
├─ gui/
│ ├─ 示例界面.yml
│ └─ 其他界面配置.yml
└─ data/
└─ 玩家UUID.yml示例.yml 和 示例界面.yml 仅用于参考,插件重载时会自动保存,但会跳过这两个示例文件的读取。实际配置需要复制示例文件后使用其他文件名。
| 页面 | 内容 |
|---|---|
| 配置说明 | 全局配置、数据存储、属性插件、穿戴检测和消息设置 |
| 槽位规则 | 槽位 ID、强化等级、条件、成功率、属性和降级配置 |
| 插件变量 | PlaceholderAPI 变量及其返回内容 |
| 常见问题 | 配置加载、数据保存、属性生效和依赖问题 |
| 更新日志 | 文档更新记录 |
数据存储
YAML 存储
未启用 MySQL 时,玩家数据保存到:
text
plugins/LySlotStrengthen/data/<玩家UUID>.yml每个槽位保存强化等级和强化失败次数。插件使用带备份的 YAML 保存方式,并在玩家加入、退出、被踢出、关闭强化界面和自动保存时处理数据。
MySQL 存储
启用 mysql.enable: true 后,插件会通过 LyMySQLCore 的安全玩家数据事件读取和保存数据,数据表名称使用插件名 LySlotStrengthen。
使用 MySQL 时必须同时满足以下条件:
- 已安装
LyMySQLCore。 LyMySQLCore已成功连接数据库。- 本插件的 MySQL 配置已经填写正确。
- 修改 MySQL 开关后重启服务器。
数据库未连接完成时,相关玩家登录流程会被阻止,数据库数据读取、保存和同步不会生效。
交互限制
- 强化界面中的物品点击和拖动操作会被取消。
- 左键点击强化槽位按钮执行强化。
- 右键点击强化槽位按钮执行降级。
- 普通预设物品只能执行配置中的命令,并通过点击刷新界面内容。
- 所有界面操作都受
click-cooldown和click-cooldown-message控制。 - 界面尺寸限制为
1到6行。 - 界面权限为空或删除时,不限制打开权限。
变量概览
PlaceholderAPI 标识符为 lss,变量格式如下:
| 变量 | 说明 |
|---|---|
%lss_nowlevel_<槽位ID>% | 获取槽位当前强化等级 |
%lss_maxlevel_<槽位ID>% | 获取槽位最大强化等级 |
%lss_fail_count_<槽位ID>% | 获取槽位当前强化失败次数 |
%lss_lore_<槽位ID>% | 获取槽位强化按钮的完整 Lore,使用换行符连接 |
%lss_now_strength_<槽位ID>% | 获取当前强化效果 Lore,使用换行符连接 |
%lss_next_strength_<槽位ID>% | 获取下级强化效果 Lore,使用换行符连接 |
%lss_need_condition_<槽位ID>% | 获取下级强化条件 Lore,使用换行符连接 |
%lss_leveldown_condition_<槽位ID>% | 获取降级条件 Lore,使用换行符连接 |
%lss_chance_<槽位ID>% | 获取当前下一级强化成功率 |
变量中的 <槽位ID> 必须替换为实际槽位配置的 ID,例如 Origin#MainHand。当玩家数据未加载或槽位不存在时,部分变量会返回空内容或 0。