Skip to content

槽位强化 LySlotStrengthen ​

MySQL 前置要求

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

LySlotStrengthen 用于把强化等级绑定到装备槽位,而不是绑定到某一件装备。

玩家强化指定槽位后,该槽位会保存独立的强化等级。槽位上的装备可以获得固定属性,也可以根据装备 Lore 中读取到的数值进行属性增幅。强化界面支持显示当前等级、下级效果、强化条件、成功率和降级条件。

插件信息 ​

项目内容
插件名LySlotStrengthen
插件版本1.0.7
作者离渊
Bukkit API 版本1.13
Java1.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 展示当前强化效果和下级强化效果。

支持的属性插件配置值包括:

  • AttributePlus
  • SX-Attribute2
  • SX-Attribute3
  • AttributeSystem
  • ItemLoreOrigin

属性会在关闭背包、切换主手物品和切换副手物品时刷新。只有满足槽位 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
DragonCoreDragonCore#槽位名
GermPluginGermPlugin#槽位名
APInventoryAPInventory#分页ID#槽位ID,槽位 ID 为 0-53
LyInventoryLyInventory#背包ID#类型
LyInventoryReloadLyInventoryReload#背包ID#类型
YeeJewelryYeeJewelry#背包ID#槽位ID

指令 ​

主命令:/lss

指令使用者说明
/lssOP显示帮助信息
/lss reloadOP重载主配置、槽位配置和界面配置
/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 时必须同时满足以下条件:

  1. 已安装 LyMySQLCore。
  2. LyMySQLCore 已成功连接数据库。
  3. 本插件的 MySQL 配置已经填写正确。
  4. 修改 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。

相关页面 ​