Skip to content

槽位强化 LySlotStrengthen

MySQL 前置要求

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

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

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

插件信息

项目内容
插件名LySlotStrengthen
插件版本1.0.7
作者离渊
Bukkit API 版本1.13
Java1.8
软依赖PlaceholderAPIVaultPlayerPoints
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} 代表目标强化等级,计算结果会限制在 01 之间。

槽位还可以通过 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-cooldownclick-cooldown-message 控制。
  • 界面尺寸限制为 16 行。
  • 界面权限为空或删除时,不限制打开权限。

变量概览

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

相关页面