常见问题
插件的主要用途是什么?
LySlotStrengthen 用于为指定装备槽位配置强化等级、强化条件、强化概率、强化属性、降级功能和强化界面。
插件会根据槽位当前等级计算强化效果,也可以读取装备 Lore 中的数值,将其转换为属性增幅。
槽位无法强化,应该检查什么?
按以下顺序检查:
- 检查强化界面中的槽位 ID 是否与槽位配置的顶层节点完全一致。
- 检查槽位下的
enable-condition是否满足。 - 检查当前等级是否存在对应的
strengthen配置。 - 检查强化条件中的物品、经济、点券、变量或权限条件是否满足。
- 检查当前等级是否已经达到最大等级。
- 检查是否触发了点击冷却。
enable-condition 同时影响槽位是否可以强化,以及该槽位强化属性是否生效。未配置或留空时,默认满足条件。
为什么槽位属性没有生效?
先检查以下内容:
- 槽位的
enable-condition是否满足。 - 槽位 ID 是否正确。
- 当前等级是否存在对应的强化配置。
attribute-plugin是否填写为正在使用的属性插件。- 服务器是否已安装并正确加载对应属性插件。
- 配置
attribute-plugin后是否已经重启服务器。
插件支持以下 attribute-plugin 配置值:
| 配置值 | 对应属性插件 |
|---|---|
AttributePlus | AttributePlus |
SX-Attribute2 | SX-Attribute2 |
SX-Attribute3 | SX-Attribute3 |
AttributeSystem | AttributeSystem |
ItemLoreOrigin | ItemLoreOrigin |
如果没有配置属性插件,强化 Lore 可以正常显示,但插件不会向这些属性插件写入强化属性。
为什么强化材料没有被识别?
检查强化条件中的物品格式是否正确。示例格式如下:
yaml
condition:
- 'item:{插件@物品#1*{level}}| &7需要: {item}x{amount}'材料检测会根据配置的物品库类型读取物品。项目示例中支持以下物品库标识:
| 标识 | 物品来源 |
|---|---|
MM4 | MythicMobs 4 |
MM5 | MythicMobs 5 |
NI | NeigeItems |
SI | SX-Item |
SX2 | SX-Attribute |
同时检查以下问题:
- 物品 ID 是否存在。
- 物品库插件是否已加载。
- 条件中的数量表达式是否能正确计算。
- 材料是否被
filter-item-contain-specified-lore过滤。 - 物品名称、Lore、材质或耐久值是否与配置物品一致。
插件会检查玩家背包中的材料,也可以在启用对应插件并完成兼容配置后检查 LyLootsWareHouse、LyWarehouse 或灵魂空间中的材料。
为什么装备明明存在,却没有强化属性?
强化属性的计算不只依赖槽位等级,还依赖槽位实际物品。
检查以下内容:
- 槽位 ID 是否指向正确的装备槽位。
- 槽位中是否有物品。
- 物品是否有 Lore。
check-put-on-condition中的 Lore 检测是否通过。addition-lore中的formula是否能匹配物品 Lore。addition-lore使用的属性名是否与当前属性插件中的属性名一致。
如果使用 addition-lore,公式中的 <value> 用于标记需要读取的数值位置。左右文本必须能够匹配装备 Lore。
为什么变量不显示或显示为空?
检查以下内容:
- 玩家数据是否已经加载。
- 槽位 ID 是否与配置中的顶层节点完全一致。
- 变量格式是否正确。
- 变量是否使用在支持 PlaceholderAPI 的位置。
- 当前槽位是否存在玩家数据。
变量格式如下:
| 变量 | 作用 |
|---|---|
%lss_nowlevel_槽位ID% | 获取槽位当前强化等级 |
%lss_maxlevel_槽位ID% | 获取槽位最大强化等级 |
%lss_lore_槽位ID% | 获取槽位物品的全部 Lore,使用 \\n 换行 |
%lss_now_strength_槽位ID% | 获取当前强化效果 Lore,使用 \\n 换行 |
%lss_next_strength_槽位ID% | 获取下级强化效果 Lore,使用 \\n 换行 |
%lss_need_condition_槽位ID% | 获取下级强化条件 Lore,使用 \\n 换行 |
%lss_leveldown_condition_槽位ID% | 获取槽位降级条件 Lore,使用 \\n 换行 |
%lss_chance_槽位ID% | 获取槽位强化几率 |
例如,配置节点为 Origin#MainHand 时,应使用:
text
%lss_nowlevel_Origin#MainHand%为什么强化概率显示不正确?
强化配置中的 chance 支持固定值或公式,示例中的概率值范围为 0-1:
yaml
chance: '1-({level}*0.1)'检查以下内容:
- 公式是否使用了正确的变量名。
- 公式是否包含无法识别的字符。
- 当前等级是否能匹配对应的等级段。
permission-chance-addition中的公式是否正确。
权限加成只会在玩家拥有对应权限时参与计算。如果同时满足多个权限加成,插件会取计算结果最高的加成。
为什么强化失败次数没有按预期使用?
强化数据会保存当前等级和失败次数。示例配置支持在 chance 公式中使用失败次数变量:
yaml
chance: '1-({level}*0.1)'项目配置注释中记录了失败次数变量为 %lss_fail_count_槽位id%。该变量可以用于概率计算,强化成功后失败次数会归零。
如果失败次数没有变化,检查玩家数据是否正常保存,以及是否使用了正确的槽位 ID。
为什么强化成功后没有扣除材料?
强化条件满足后,插件会执行 start-command,然后判断强化概率。项目示例中,材料和经济条件本身负责检测所需资源;如果需要通过指令进行额外处理,可以配置 start-command。
检查以下内容:
- 强化条件是否正确填写。
start-command是否配置在对应的等级段下。- 指令前缀是否正确。
- 指令是否需要 PlaceholderAPI 变量。
支持的指令执行方式包括:
| 前缀 | 执行身份 |
|---|---|
[console] | 以控制台身份执行 |
[op] | 临时以 OP 身份执行 |
| 无前缀 | 以玩家身份执行 |
为什么降级按钮没有效果?
检查对应槽位下的 level-down 配置:
yaml
level-down:
enable: true
condition:
- 'item:{插件@物品#1*{level}}| &7需要: {item}x{amount}'
command:
- '[console]tell %player_name% 降级成功!'降级功能需要同时满足以下条件:
level-down.enable必须为true。- 玩家必须通过
level-down.condition中的所有条件。 - 当前槽位存在可降级等级。
- 降级操作没有触发点击冷却。
在强化界面中,左键点击强化槽位会尝试强化,右键点击会尝试降级。
为什么强化界面打不开?
检查以下内容:
- 界面文件是否位于插件读取的界面配置目录中。
id是否填写且没有重复。- 指令中的界面 ID 是否与配置中的
id完全一致。 size是否在1-6范围内。slot-set中引用的槽位 ID 是否已经配置。- 界面是否配置了权限要求。
示例界面文件中的 id 为 test,因此打开该界面时使用:
text
/lss open testgui/示例界面.yml 仅用于参考,不会被插件直接读取,需要复制为新的界面配置文件后再修改。
为什么界面中的强化按钮没有显示?
检查 slot-set 配置:
yaml
slot-set:
Origin#MainHand:
slot: 22需要确认:
- 槽位 ID 与槽位配置一致。
slot是有效的界面槽位编号。- 对应的槽位配置已经成功加载。
- 界面大小足以包含该槽位。
如果 slot-set 引用的槽位不存在,插件会跳过该强化按钮。
为什么点击界面后提示操作过快?
插件会对强化、降级和预设按钮点击进行冷却限制。冷却时间由以下配置控制,单位为毫秒:
yaml
click-cooldown: 100
click-cooldown-message: '&7对不起, 操作过快, 请稍后尝试.'100 毫秒等于 0.1 秒。需要调整时修改 click-cooldown,并根据需要修改提示消息。
为什么装备条件没有生效?
全局装备条件配置在 check-put-on-condition 下。插件会先查找物品 Lore 中包含 contain-lore 的行,再把读取到的数值替换到条件中的 <value>。
示例:
yaml
check-put-on-condition:
等级检测:
contain-lore: '&f装备等级: '
condition:
- 'papi:{%player_level% >= <value>} <-> &7<item>需要<value>级才可装备, 你当前%player_level%级了!'支持的条件类型包括:
| 条件 | 作用 |
|---|---|
papi:{表达式} | 使用 PlaceholderAPI 变量计算表达式 |
permission:{权限} | 检查玩家是否拥有权限 |
nopermission:{权限} | 检查玩家是否没有权限 |
<-> 左侧为检测条件,右侧为检测失败时显示的提示消息。提示消息支持 PlaceholderAPI 变量。
为什么物品 Lore 中的数值读取错误?
检查 lore-get-value 和 addition-lore 的 Lore 公式。
lore-get-value 用于从固定格式的 Lore 中读取数值:
yaml
lore-get-value:
变量1:
default-value: 1
lore-formula: '&7槽位增幅强度: <value>%'注意事项:
<value>只能表示需要读取的数值位置。- 公式中的其他文本必须与物品 Lore 对应部分匹配。
- 读取不到数值时使用
default-value。 - 该功能适合读取固定格式的 Lore,不适合层层套用读取结果。
addition-lore中可以使用{v.变量1}引用读取到的数值。
数值支持单个数字,也支持区间格式并转换为区间平均值。
为什么计算公式无法解析?
配置中的公式支持数字、小数、加减乘除和括号。检查公式中是否包含无法识别的字符。
默认公式边界符号为:
yaml
calculate-key-left: '<'
calculate-key-right: '>'如果 Lore 文本本身包含冲突符号,可以修改这两个配置项。修改后需要重新加载配置或重启插件使配置重新读取。
修改 attribute-plugin 后为什么没有变化?
attribute-plugin 的配置注释明确要求修改后重启服务器。请完成以下操作:
- 修改
attribute-plugin。 - 确认对应属性插件已安装并加载。
- 重启服务器。
- 重新打开强化界面或触发装备属性刷新。
插件会在背包关闭、切换快捷栏物品和交换主副手时刷新属性。
为什么配置重载后数据没有立即变化?
/lss reload 会调用插件重载逻辑,但部分配置或外部插件状态仍可能需要重启服务器才能生效。
以下配置明确要求重启服务器:
mysql.enableattribute-plugin
如果修改了上述配置,请重启服务器,不要只执行重载。
MySQL 数据库不生效,应该检查什么?
使用 MySQL 存储必须满足以下条件:
- 安装 LyMySQLCore。
- 在 LyMySQLCore 中正确配置数据库连接。
- 确认 LyMySQLCore 已成功连接数据库。
- 在 LySlotStrengthen 的
mysql.enable中启用数据库。 - 修改数据库开关后重启服务器。
只有安装 LyMySQLCore 且成功连接数据库后,LySlotStrengthen 的 MySQL 相关功能才会生效。
配置示例:
yaml
mysql:
enable: false
databasename: mc2
username: mc2
password: mc1234
port: 3306
ip: 127.0.0.1如果数据库连接失败,启用数据库存储时玩家登录可能会被阻止,直到数据库连接完成。
YAML 存储保存在哪里?
未使用 MySQL 存储时,玩家数据保存在:
text
plugins/LySlotStrengthen/data/<玩家UUID>.yml保存时会使用备份文件和临时文件机制。主文件损坏时,插件会尝试从对应的 .bak 备份文件恢复。
为什么玩家数据没有保存?
检查以下内容:
- 玩家是否已经完成数据加载。
- 插件是否在玩家退出或被踢出时正常执行保存。
auto-save-interval是否配置合理。- YAML 数据目录是否可写。
- 使用 MySQL 时,LyMySQLCore 是否已成功连接数据库。
- MySQL 表是否初始化成功。
自动保存间隔由以下配置控制,单位为秒:
yaml
auto-save-interval: 3插件会在界面关闭、玩家退出和玩家被踢出时保存数据;启用 MySQL 后,数据会保存到以插件名称命名的数据表中。
灵魂空间兼容功能没有生效怎么办?
- 确认已安装并加载灵魂空间相关插件。
- 将
compatible-srp-enable设置为true。 - 由于该兼容开关在 1.0.5 版本后需要主动开启,不能只安装插件而不修改配置。
- 修改后重新加载配置;如果仍未生效,重启服务器。
配置示例:
yaml
compatible-srp-enable: true/lss 指令没有执行权限怎么办?
项目代码中,管理类指令通过 OP 状态检查。可用指令如下:
| 指令 | 作用 | 使用限制 |
|---|---|---|
/lss | 显示管理指令帮助 | OP |
/lss reload | 重载插件 | OP |
/lss setlevel <玩家> <槽位> <等级> | 强制设置指定玩家的槽位等级 | OP |
/lss levelup <槽位> <玩家> | 强制升级指定玩家的槽位 | OP |
/lss strengthen <槽位> <玩家> | 操控指定玩家尝试强化槽位 | OP |
/lss open <界面ID> | 为自己打开指定强化界面 | 玩家;界面自身还可能配置权限 |
/lss open <界面ID> <玩家> | 为指定玩家打开强化界面 | OP |
setlevel 设置的等级会被限制在 0 到该槽位最大等级之间。
为什么强制操作提示玩家不在线?
setlevel、levelup、strengthen 和为指定玩家打开界面的指令都要求目标玩家在线,并且玩家数据已经加载。
如果目标玩家在线但仍提示失败,检查玩家数据加载是否完成,以及数据库或 YAML 存储是否正常。
插件支持哪些槽位?
项目示例中实现了以下槽位类型:
| 槽位 ID 格式 | 用途 |
|---|---|
DragonCore#槽位名 | DragonCore 槽位 |
GermPlugin#槽位名 | GermPlugin 槽位 |
APInventory#分页ID#槽位ID | 梦星桐背包槽位 |
LyInventory#背包ID#类型 | 离渊背包槽位 |
LyInventoryReload#背包ID#类型 | 离渊背包重置版槽位 |
YeeJewelry#背包ID#槽位ID | 清守饰品背包槽位 |
Origin#MainHand | 主手 |
Origin#OffHand | 副手 |
Origin#Helmet | 头盔 |
Origin#ChestPlate | 胸甲 |
Origin#Legging | 护腿 |
Origin#Boots | 靴子 |
Minecraft#槽位ID | 原版背包槽位,槽位 ID 为数字 |
槽位 ID 会同时用于槽位配置、强化界面、玩家数据和变量,修改时必须同步检查所有引用位置。
为什么插件加载了但部分功能不可用?
插件声明了以下软依赖:
- PlaceholderAPI
- Vault
- PlayerPoints
其中,PlaceholderAPI 用于变量和表达式条件;Vault、PlayerPoints 相关功能是否可用取决于对应插件是否正确安装并加载。使用外部物品库、属性插件、背包插件或 MySQL 存储时,也必须确认对应插件已经正常运行。
修改配置后需要重启还是重载?
一般配置可以使用以下指令重载:
text
/lss reload但以下配置修改后必须重启服务器:
| 配置项 | 原因 |
|---|---|
mysql.enable | 数据库连接在插件启动阶段初始化 |
attribute-plugin | 属性插件接口在启动阶段初始化 |
如果重载后仍未生效,先检查控制台是否出现配置读取或外部插件连接错误,再执行完整重启。