配置说明
LySlotStrengthen 的配置分为全局配置、槽位配置和强化界面配置:
| 文件或目录 | 用途 |
|---|---|
config.yml | 全局兼容、数据保存、装备检测、冷却、属性插件和消息配置 |
slot/ | 配置强化槽位、强化等级、强化条件、强化属性和降级功能 |
gui/ | 配置强化界面、预设物品和槽位按钮位置 |
插件会读取 slot/ 和 gui/ 下的所有 .yml 文件,但文件名为 示例.yml 和 示例界面.yml 的示例文件会被跳过,不会作为实际配置读取。
修改配置后,可以使用 /lss reload 重载。该命令仅管理员或服务器 OP 可执行。修改属性插件类型或 MySQL 开关后,建议重启服务器。
config.yml
基础设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
compatible-srp-enable | 布尔值 | false | 是否启用 SRP 灵魂空间兼容支持。 |
auto-save-interval | 整数 | 3 | 玩家强化数据自动保存间隔,单位为秒。 |
click-cooldown | 整数 | 100 | 点击强化槽位、降级按钮或预设按钮的冷却时间,单位为毫秒。 |
click-cooldown-message | 文本 | &7对不起, 操作过快, 请稍后尝试. | 冷却期间重复操作时发送的消息。 |
attribute-plugin | 文本 | 空 | 强化属性加载到的属性插件类型。 |
filter-item-contain-specified-lore | 文本列表 | 已绑定 | 物品包含指定 Lore 时,不会被识别为强化材料。 |
calculate-key-left | 文本 | < | 公式计算左边界标记。 |
calculate-key-right | 文本 | > | 公式计算右边界标记。 |
max-level-lore | 文本 | &7已满级 | 槽位达到最大等级后,用于显示下级强化效果和强化条件的文本。 |
attribute-plugin 支持以下值:
| 值 | 说明 |
|---|---|
AttributePlus | 使用 AttributePlus 加载强化属性。 |
SX-Attribute2 | 使用 SX-Attribute2 加载强化属性。 |
SX-Attribute3 | 使用 SX-Attribute3 加载强化属性。 |
AttributeSystem | 使用 AttributeSystem 加载强化属性。 |
ItemLoreOrigin | 使用 ItemLoreOrigin 加载强化属性。 |
属性插件配置为空或填写不受支持的值时,不会按上述属性插件加载强化属性。修改该配置后建议重启服务器。
完整基础配置示例:
yaml
# 是否启用 SRP 灵魂空间兼容支持
compatible-srp-enable: false
# 自动保存间隔,单位:秒
auto-save-interval: 3
# 点击操作冷却时间,单位:毫秒
click-cooldown: 100
click-cooldown-message: '&7对不起, 操作过快, 请稍后尝试.'
# 属性插件类型
attribute-plugin: ''
# 包含指定 Lore 的物品不会作为强化材料
filter-item-contain-specified-lore:
- '已绑定'
# 公式计算边界标记
calculate-key-left: '<'
calculate-key-right: '>'
# 满级显示文本
max-level-lore: '&7已满级'MySQL 数据库
yaml
mysql:
enable: false
databasename: mc2
username: mc2
password: mc1234
port: 3306
ip: 127.0.0.1| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
mysql.enable | 布尔值 | false | 是否启用 MySQL 数据保存。修改后建议重启服务器。 |
mysql.databasename | 文本 | mc2 | 数据库名称。 |
mysql.username | 文本 | mc2 | 数据库用户名。 |
mysql.password | 文本 | mc1234 | 数据库密码。 |
mysql.port | 整数 | 3306 | MySQL 端口。 |
mysql.ip | 文本 | 127.0.0.1 | MySQL 服务器地址。 |
MySQL 前置要求
启用 mysql.enable 后,必须安装 LyMySQLCore,并确认 LyMySQLCore 已成功连接数据库。未加载 LyMySQLCore 或数据库连接失败时,玩家数据无法正常通过 MySQL 读取、保存和同步,相关功能不会生效。
未启用 MySQL 时,玩家数据会保存到插件目录下的本地文件:
text
plugins/LySlotStrengthen/data/<玩家UUID>.yml装备穿戴检测
check-put-on-condition 用于根据装备 Lore 限制槽位强化属性是否生效。插件会查找包含 contain-lore 的 Lore,从匹配文本后提取数值,并将数值替换到条件中的 <value>。
yaml
check-put-on-condition:
'等级检测':
contain-lore: '&f装备等级: '
condition:
- 'papi:{%player_level% >= <value>} <-> &7<item>需要<value>级才可装备, 你当前%player_level%级了!'| 配置项 | 说明 |
|---|---|
check-put-on-condition.<检测名称> | 检测规则名称,只需保持名称不重复。 |
check-put-on-condition.<检测名称>.contain-lore | 需要匹配的 Lore 文本。 |
check-put-on-condition.<检测名称>.condition | 匹配后执行的条件列表。 |
条件格式为:
text
条件表达式 <-> 失败提示<-> 左侧是实际检测条件,右侧是条件不满足时的提示文本。提示文本支持 PlaceholderAPI 变量以及以下替换内容:
| 占位符 | 说明 |
|---|---|
<value> | 从匹配 Lore 中提取出的数值。 |
<item> | 装备显示名称;装备没有自定义名称时使用物品类型名称。 |
全局装备检测支持以下条件格式:
| 条件格式 | 说明 |
|---|---|
papi:{条件} | 使用 PlaceholderAPI 变量进行条件判断。 |
permission:{权限节点} | 要求玩家拥有指定权限。 |
nopermission:{权限节点} | 要求玩家没有指定权限。 |
消息
yaml
message:
max-level: '&c无法强化至下一级!'
condition: '&c不满足强化条件!'
strengthen-success: '&a强化成功!'
strengthen-fail: '&c强化失败...'
enable-condition: '&c你还无法强化这个槽位'
level-down-success: '&a降级成功!'
level-down-fail: '&c降级失败... 降级材料不足!'| 配置项 | 触发时机 |
|---|---|
message.max-level | 当前槽位没有可用的下一级强化配置时。 |
message.condition | 强化条件不满足时。 |
message.strengthen-success | 强化成功时。 |
message.strengthen-fail | 强化失败时。 |
message.enable-condition | 槽位的 enable-condition 不满足,无法强化或降级时。 |
message.level-down-success | 降级成功时。 |
message.level-down-fail | 降级条件不满足时。 |
slot/ 槽位配置
每个槽位配置以槽位 ID 为顶级键。一个文件可以配置多个槽位,插件会遍历 slot/ 目录下的 .yml 文件读取。
yaml
Origin#MainHand:
item: '160:2'
name: '&7>> &6主手槽位强化 &a({now_level}/{max_level})'
lore:
- '&7当前强化效果:'
- '{now_strength}'
- '&7下级强化效果:'
- '{next_strength}'
- '&7下级强化需求:'
- '{need_condition}'
- '&7强化成功率:'
- '&6 {chance}'
- '&a&n<左键点击强化>&u &7| &c&n<右键点击降级>'
- '&7强化降级需求:'
- '{leveldown_condition}'槽位 ID
示例配置中列出了以下槽位 ID 写法:
| 槽位来源 | 槽位 ID 格式 |
|---|---|
| DragonCore | DragonCore#槽位名 |
| GermPlugin | GermPlugin#槽位名 |
| APInventory | APInventory#分页ID#槽位ID |
| LyInventory | LyInventory#背包ID#类型 |
| LyInventoryReload | LyInventoryReload#背包ID#类型 |
| YeeJewelry | YeeJewelry#背包ID#槽位ID |
| 主手 | Origin#MainHand |
| 副手 | Origin#OffHand |
| 头盔 | Origin#Helmet |
| 胸甲 | Origin#ChestPlate |
| 护腿 | Origin#Legging |
| 靴子 | Origin#Boots |
| 原版槽位 | Minecraft#槽位ID |
原版槽位 ID 的示例范围为 0-36。实际槽位 ID 必须与对应背包或物品槽位插件提供的 ID 一致。
槽位按钮
| 配置项 | 说明 |
|---|---|
<槽位ID>.item | 强化界面中该槽位按钮使用的物品 ID。默认值为 160:2。 |
<槽位ID>.name | 强化界面中该槽位按钮的名称。支持 {now_level} 和 {max_level}。 |
<槽位ID>.lore | 强化界面中该槽位按钮的 Lore。支持强化相关动态占位符。 |
槽位按钮 Lore 支持以下动态占位符:
| 占位符 | 说明 |
|---|---|
{now_level} | 当前强化等级。 |
{max_level} | 槽位最大强化等级。根据 strengthen 中配置的等级范围自动计算。 |
{now_strength} | 当前等级的强化效果 Lore。 |
{next_strength} | 下一级强化效果 Lore;没有下一级时显示 max-level-lore。 |
{need_condition} | 下一级强化条件的显示文本;没有下一级时显示 max-level-lore。 |
{chance} | 当前槽位下一级强化成功率。 |
{leveldown_condition} | 降级条件的显示文本;未启用降级时显示“降级功能未启用”。 |
槽位启用条件
enable-condition 用于限制槽位是否可以强化、降级以及是否加载该槽位的强化属性。所有条件都必须满足;未配置或留空时默认满足。
yaml
enable-condition:
- 'permission:{lss.mainhand}'
- 'nopermission:{lss.blocked}'
- 'papi:{%player_level% >= 0}'| 条件格式 | 说明 |
|---|---|
permission:{权限节点} | 玩家必须拥有指定权限。 |
nopermission:{权限节点} | 玩家不能拥有指定权限。 |
papi:{条件} | 使用 PlaceholderAPI 变量进行条件判断。 |
权限强化几率加成
permission-chance-addition 用于根据玩家权限修改本次强化成功率。多个规则同时满足时,使用计算结果最高的规则。
yaml
permission-chance-addition:
'vip权限':
permission: 'vip.1'
formula: '{chance}*1.1'
show-lore: '&a(VIP1权限加成10%)'| 配置项 | 说明 |
|---|---|
<规则名称>.permission | 检查的权限节点。 |
<规则名称>.formula | 成功率计算公式。{chance} 表示当前成功率。 |
<规则名称>.show-lore | 应用该规则后追加到成功率显示文本的内容。 |
强化等级配置
强化规则写在:
text
<槽位ID>.strengthen.<等级或等级范围>等级键可以是单个等级,例如 0,也可以是等级范围,例如 0-5。范围配置表示当前等级处于该范围内时,使用同一组强化规则。插件会根据配置中的最大等级自动确定槽位最大等级。
yaml
strengthen:
0-5:
condition:
- 'item:{插件@物品#1*{level}}| &7需要: {item}x{amount}'
- 'eco:{10*{level}*{level}}| &e需要: 金币x{amount}'
- 'point:{10*{level}*{level}}| &b需要: 点券x{amount}'
- 'papi:{%player_level% >= 0}| &7需要: 等级大于等于0级'
- 'permission:{qh.1-5}| &7需要: 拥有qh.1-5权限'
- 'nopermission:{qh.1-5}| &7需要: 没有qh.1-5权限'
chance: '1-({level}*0.1)'
start-command:
- '[op]say %player_name% 你正在开始进行{now_level}->{next_level}级的强化!'
success-command:
- '[console]say %player_name% 恭喜! 你强化到{next_level}级成功!'
fail-command:
- '[console]say %player_name% 对不起, 你强化到{next_level}级失败!'
fixed-lore:
- '&6 攻击力 &a+<1*{level}~%.0f>'
show-lore:
- '{fixed_lore}'
- ' &6增强装备攻击力 &a+<0.1*{level}*100~%.0f>%'强化条件
强化条件格式为:
text
条件表达式|按钮显示文本| 左侧用于实际检测和扣除,右侧用于显示在强化按钮上。省略 | 及右侧文本时,不会显示该条件的按钮提示行。
| 条件格式 | 作用 | 需要的外部插件或服务 |
|---|---|---|
item:{插件@物品ID#数量公式} | 检查并扣除指定物品。 | 对应物品库插件。示例注释列出 MM4、MM5、NI、SI、SX2。 |
eco:{金额公式} | 检查并扣除 Vault 经济余额。 | Vault 及可用的经济服务。 |
point:{点券公式} | 检查并扣除 PlayerPoints 点券。 | PlayerPoints。 |
cx:{货币ID#金额公式} | 检查并扣除 CraftX 指定货币。 | CraftX。 |
lshop:{货币ID#金额公式} | 检查并扣除 LyShop 指定货币。 | LyShop。 |
papi:{条件} | 使用 PlaceholderAPI 变量判断条件。 | PlaceholderAPI。 |
permission:{权限节点} | 要求玩家拥有指定权限。 | 无额外插件要求。 |
nopermission:{权限节点} | 要求玩家没有指定权限。 | 无额外插件要求。 |
{level} 表示本次目标等级。物品数量、金币、点券和货币数量可以使用公式计算。
强化条件会先统一检查;全部满足后,插件才会扣除物品或货币。强制升级命令会跳过强化条件检查和扣除,但仍会执行强化流程中的成功结果。
强化几率
| 配置项 | 说明 |
|---|---|
chance | 强化成功率,可以填写固定数值或公式。代码中的示例使用 0-1 范围表示成功率,例如 1 表示 100%。 |
chance 中的 {level} | 本次强化的目标等级。 |
chance 中的 %lss_fail_count_<槽位ID>% | 当前槽位连续失败次数,可用于根据失败次数调整成功率。强化成功后失败次数会归零。 |
强化几率会受到 permission-chance-addition 规则影响,最终结果会限制在 0 到 1 之间。
强化执行指令
| 配置项 | 执行时机 |
|---|---|
start-command | 强化条件满足、扣除材料后,在判断成功率前执行。 |
success-command | 强化成功后执行。 |
fail-command | 强化失败后执行。 |
指令中的变量:
| 变量 | 说明 |
|---|---|
{now_level} | 强化前等级。 |
{next_level} | 本次目标等级。 |
%player_name% 等变量 | 支持 PlaceholderAPI 变量。 |
指令前缀由执行方式决定,示例中使用了 [console] 和 [op]。
固定属性 Lore
fixed-lore 用于生成每次强化都存在的固定属性 Lore。{level} 会替换为当前等级,公式边界使用全局配置中的 calculate-key-left 和 calculate-key-right。
yaml
fixed-lore:
- '&6攻击力 &a+<1*{level}~%.0f>'公式格式:
text
<计算公式~格式化字符串>未填写格式化字符串时,默认使用整数格式。示例中的 ~%.0f 表示将结果格式化为整数。
增幅属性 Lore
addition-lore 用于读取装备 Lore 中已有的属性数值,再根据公式计算强化增幅,并将结果提交给 attribute-plugin。
yaml
addition-lore:
'攻击力':
formula:
- '&6攻击力 &a+<value>'
- '这里是左边的字<value>这里是右边的字'
value: '{value}*0.1*{level}'
attribute-format: '{attribute}+{value}'| 配置项 | 说明 |
|---|---|
<属性名称> | 要处理的属性名称,必须与所使用属性插件中的属性名称一致。 |
<属性名称>.formula | 用于在装备 Lore 中定位和读取原始属性值。<value> 表示待提取的数值位置。 |
<属性名称>.value | 根据读取到的数值计算实际增幅。{value} 表示读取到的数值,{level} 表示当前强化等级。 |
<属性名称>.attribute-format | 提交给属性插件的格式。{attribute} 替换为属性名称,{value} 替换为计算结果。 |
一条 formula 由 <value> 分隔左右文本,只有匹配到装备 Lore 中对应文本并成功读取数值时,才会生成增幅属性。数值支持单个正数和正数区间;区间会取平均值。
强化效果显示 Lore
show-lore 用于替换槽位按钮 Lore 中的 {now_strength} 和 {next_strength}。
yaml
show-lore:
- '{fixed_lore}'
- ' &6增强装备攻击力 &a+<0.1*{level}*100~%.0f>%'| 写法 | 说明 |
|---|---|
{fixed_lore} | 展开当前等级配置中的全部 fixed-lore。 |
| 其他文本 | 按当前等级替换 {level},执行公式计算并显示。 |
Lore 取值变量
lore-get-value 用于从装备 Lore 的固定文本位置读取数值,并在 addition-lore 的公式中通过 {v.<变量ID>} 使用。该功能适合读取固定格式的 Lore,不适合套娃读取。
yaml
lore-get-value:
'变量1':
default-value: 1
lore-formula: '&7槽位增幅强度: <value>%'| 配置项 | 说明 |
|---|---|
<变量ID> | 变量名称,在增幅公式中以 {v.<变量ID>} 引用。 |
<变量ID>.default-value | 无法从 Lore 读取数值时使用的默认值。 |
<变量ID>.lore-formula | 用于匹配 Lore 的文本格式。<value> 表示数值位置。 |
读取到的值支持单个正数和正数区间,区间会取平均值。
降级配置
降级配置位于:
text
<槽位ID>.level-downyaml
level-down:
enable: true
condition:
- 'item:{插件@物品#1*{level}}| &7需要: {item}x{amount}'
- 'eco:{10*{level}*{level}}| &e需要: 金币x{amount}'
- 'point:{10*{level}*{level}}| &b需要: 点券x{amount}'
- 'papi:{%player_level% >= 0}| &7需要: 等级大于等于0级'
- 'permission:{qh.1-5}| &7需要: 拥有qh.1-5权限'
- 'nopermission:{qh.1-5}| &7需要: 没有qh.1-5权限'
command:
- '[console]tell %player_name% 降级成功!'| 配置项 | 说明 |
|---|---|
level-down.enable | 是否启用降级。启用后,强化界面中右键点击槽位按钮会尝试降低 1 级。 |
level-down.condition | 降级所需条件,写法与强化条件相同。 |
level-down.command | 降级成功后执行的指令。 |
降级最低为 0 级。降级成功后会将强化等级降低 1 级,并将失败次数归零;降级失败时不会改变等级。
gui/ 强化界面配置
每个界面配置以一个 YAML 文件表示,界面 ID 由 id 指定。界面文件中的强化槽位通过 slot-set 映射到界面槽位。
yaml
id: 'test'
title: '&6主手强化界面'
size: 6
permission: ''
default-set:
边框:
id: '160:0'
name: ' '
lore:
- ' &7边界 '
command:
- 'tell %player_name% 你点击了一下边框'
slot: '0-8,9,17,18,26,27,35,36,44,45-53'
slot-set:
Origin#MainHand:
slot: 22界面基础配置
| 配置项 | 类型 | 说明 |
|---|---|---|
id | 文本 | 界面 ID,用于 /lss open <界面ID> 和开发者 API 调用。不同界面应使用不同 ID。 |
title | 文本 | 界面标题,支持 & 颜色符号和 PlaceholderAPI 变量。 |
size | 整数 | 界面行数,范围为 1-6。超过 6 按 6 处理,小于 1 按 1 处理。 |
permission | 文本 | 打开界面所需权限。留空时不限制权限。 |
预设物品
default-set 用于设置边框、填充物和玩家信息等固定物品。预设物品只能配置点击执行指令,不能直接执行强化或降级逻辑。
| 配置项 | 说明 |
|---|---|
default-set.<物品名称>.id | 物品 ID,默认值为 160:0。 |
default-set.<物品名称>.name | 物品名称。 |
default-set.<物品名称>.lore | 物品 Lore 列表。 |
default-set.<物品名称>.command | 点击该物品后执行的指令列表。 |
default-set.<物品名称>.slot | 物品放置的界面槽位。 |
slot 支持逗号分隔的单个槽位和连续范围,例如:
yaml
slot: '0-8,9,17,18,26,27,35,36,44,45-53'连续范围 0-8 表示放置到 0 至 8 的全部槽位。
强化槽位映射
slot-set 的键必须填写已经在 slot/ 中配置的槽位 ID,slot 表示该强化按钮放置在界面中的位置。
yaml
slot-set:
Origin#MainHand:
slot: 22| 配置项 | 说明 |
|---|---|
slot-set.<槽位ID>.slot | 强化按钮在界面中的槽位编号。 |
界面点击行为:
| 操作 | 行为 |
|---|---|
| 左键点击强化槽位按钮 | 尝试强化该槽位。 |
| 右键点击强化槽位按钮 | 尝试降级该槽位。 |
| 点击预设物品 | 执行该物品的 command,然后刷新界面。 |
| 拖动物品 | 界面内的拖动操作会被取消。 |
数据保存与重载
- 启用 MySQL 时,玩家强化等级和强化失败次数保存到 MySQL。
- 未启用 MySQL 时,玩家数据保存到
plugins/LySlotStrengthen/data/下的玩家 YAML 文件。 - 玩家强化数据包含各槽位的强化等级和失败次数。
- 自动保存间隔由
auto-save-interval控制。 - 关闭强化界面时会保存玩家数据。
- 插件关闭时会保存在线玩家数据。
- 执行
/lss reload会重新读取全局配置、槽位配置和界面配置,并重新启动自动保存任务。
常见问题
修改配置后没有生效
确认配置文件位于插件实际目录,并检查 YAML 缩进和键名。然后执行 /lss reload;如果修改了 attribute-plugin 或 mysql.enable,建议直接重启服务器。
示例槽位或示例界面没有生效
slot/示例.yml 和 gui/示例界面.yml 是示例文件,插件会主动跳过它们。请复制为新的 .yml 文件后再修改使用。
强化条件显示了,但没有扣除材料
检查条件左侧的格式是否正确。物品条件必须包含插件名、物品 ID、@ 和 #,例如:
text
item:{插件@物品ID#数量公式}同时确认对应物品插件已经正常加载。
强化属性没有生效
检查以下内容:
attribute-plugin是否填写了受支持的属性插件类型。- 对应属性插件是否已加载。
- 槽位的
enable-condition是否满足。 - 装备是否匹配
check-put-on-condition。 addition-lore.formula是否能在装备 Lore 中定位到数值。- 使用 MySQL 时,是否已安装
LyMySQLCore且数据库连接成功。
启用 MySQL 后玩家无法正常进入服务器
插件在 MySQL 模式下会检查数据库连接。请确认 LyMySQLCore 已加载、数据库地址和账号配置正确,并且 LyMySQLCore 已成功连接数据库。数据库未连接完成时,玩家登录会被阻止,直到数据库初始化完成。
降级按钮没有效果
检查对应槽位是否配置了:
yaml
level-down:
enable: true同时确认玩家当前等级大于 0,并满足 level-down.condition 中的全部条件。