常见问题
为什么物品提示“不是魂玉”?
插件会同时检查物品名称和初始描述。请检查对应魂玉配置中的以下项目:
| 配置项 | 检查内容 |
|---|---|
match-name | 物品名称是否与列表中的任意名称匹配 |
init-lore | 未鉴定物品的描述中是否包含指定初始文本 |
名称、颜色代码和描述文本都需要匹配。示例配置使用 &c神器魂玉 作为名称,并使用 &7尚未解封魂玉之力 作为初始描述。
如果物品已经鉴定,原有的 init-lore 会被鉴定后的词条排版替代,不应再作为未鉴定魂玉重复鉴定。
为什么点击鉴定没有反应?
按以下顺序检查:
- 确认使用的文件名是
鉴定界面.yml,该文件名不可修改。 - 确认界面布局中存在魂玉槽位和鉴定按钮。
- 确认
button.jade指向放置魂玉的布局字符。 - 确认
button.button指向鉴定按钮的布局字符。 - 确认放入的物品能够通过
match-name和init-lore棡查。
默认界面使用 A 作为魂玉槽位,使用 Y 作为鉴定按钮。修改布局后,按钮映射也必须同步修改。
为什么鉴定一直失败?
检查魂玉配置中的 appraisal-chance。
该配置使用 0 至 1 的小数:
| 配置值 | 对应成功率 |
|---|---|
0 | 0% |
0.5 | 50% |
0.8 | 80% |
1 | 100% |
鉴定失败时,插件会发送 message.鉴定失败,并播放 sound.appraisal-failed 配置的音效。成功率不是必定成功的次数保证,低于 1 时可能连续失败。
为什么鉴定提示金币不足?
检查对应魂玉配置中的 appraisal-eco。该配置支持 PlaceholderAPI 变量和四则运算。
如果填写了变量或表达式,请确认:
- PlaceholderAPI 已安装,并且相关变量能够正常解析。
- 表达式最终能够得到有效数字。
- 玩家拥有足够的货币。
- 使用的经济相关插件已正常加载。
插件声明了 Vault、PlayerPoints 和 PlaceholderAPI 为软依赖,但是否需要安装取决于实际使用的货币与变量配置。
为什么鉴定成功后没有生成预期数量的词条?
检查魂玉配置中的 spawn-entry-count 和 entry。
spawn-entry-count 表示生成魂玉时抽取的词条数量,不能低于 2。同时需要保证 entry 下配置了足够的有效词条。
每个词条至少需要配置:
| 配置项 | 作用 |
|---|---|
lore | 词条显示格式和数值范围 |
weight | 词条被抽取时使用的权重 |
词条 ID 在投入使用后不应随意修改,否则已有魂玉记录的词条可能无法继续与新配置对应。
为什么词条数值或小数位不正确?
词条数值由 entry.<词条ID>.lore 中的数值表达式生成。示例中的格式包括:
yaml
entry:
物理伤害:
lore: '&e物理伤害 {10-20-%.0f}-{20-40-%.0f} &7(强度{strength}&7)'
weight: 10
伤害加成:
lore: '&e伤害加成 +{1-10-%.1f}% &7(强度{strength}&7)'
weight: 10其中 %.0f 表示不保留小数,%.1f 表示保留一位小数。请检查数值上下限和格式是否符合预期。
为什么词条强度显示为竖线,而不是数字?
检查 strengthen-replace-enable。
| 配置值 | 显示方式 |
|---|---|
true | 根据 strengthen-replace-text 将强度替换为对应文本 |
false | 正常显示 1-100 的强度数字 |
启用替换后,插件会按强度所在区间读取 strengthen-replace-text。如果某个强度区间缺失或区间写错,该强度可能无法得到预期的替换文本。
为什么随机出的强度总是不符合预期?
检查以下全局配置:
| 配置项 | 作用 |
|---|---|
strength-average-three-enable | 降低极高和极低强度出现的概率,使结果尽量靠近 50% |
smelt-reroll-strength-enable | 熔炼提取词条时是否重新随机强度 |
smelt-keep-strength-high-priority-enable | 不重新随机强度时,是否优先保留较高强度 |
smelt-keep-strength-high-priority-enable 需要在 smelt-reroll-strength-enable: false 时使用。它只影响熔炼时的强度选择,不改变普通鉴定生成词条的规则。
为什么高强度词条没有全服公告?
检查以下配置:
| 配置项 | 检查内容 |
|---|---|
entry-message-enable | 必须为 true |
entry-message-min-value | 实际词条强度必须达到该值 |
entry-message-text | 公告内容是否已正确配置 |
默认配置中,词条强度达到 90 时才会公告。公告用于鉴定或熔炼时获得达到要求的词条。
公告文本支持配置中已经使用的以下变量:
| 变量 | 内容 |
|---|---|
{player} | 玩家名称 |
{item} | 物品名称 |
{value} | 词条强度 |
{entry} | 词条内容 |
为什么熔炼界面无法打开或按钮失效?
首先确认文件名仍为 熔炼界面.yml,该文件名不可修改。
然后检查 layout 与 button 的映射关系:
| 配置项 | 默认布局字符 | 作用 |
|---|---|---|
button.jade-a | A | 需要保留并替换词条的主魂玉 |
button.jade-b | B | 被消耗并提取词条的副魂玉 |
button.keep-result | < | 保留旧词条 |
button.replace-result | > | 替换为新词条 |
button.button | Y | 执行熔炼 |
button.material | X | 显示熔炼材料 |
布局字符被修改后,对应的按钮映射必须一起修改。还需要确认布局中实际存在这些字符。
熔炼时两个魂玉槽位有什么区别?
两个槽位的用途不同:
| 槽位 | 用途 |
|---|---|
主槽 jade-a | 放入需要继续保留的魂玉,其中一条随机词条可能被替换 |
副槽 jade-b | 放入被熔炼的魂玉,成功后该魂玉会被扣除,并从中抽取一条词条 |
熔炼会从两个魂玉中各抽取一条词条,并提供保留旧词条或替换新词条的结果选择。放置前应确认两个槽位没有颠倒。
为什么副槽物品放不进去?
检查 prevent-mishandling-lore。
副槽物品的描述只要包含列表中的任意关键词,就会被视为带有防误熔标记,无法放入被熔炼魂玉槽位。默认配置为:
yaml
prevent-mishandling-lore:
- '已绑定'该检查使用关键词匹配,不要求整行描述完全相同。如果物品描述中的其他文本包含相同关键词,也可能触发禁止熔炼。
为什么提示“该物品无法进行熔铸”?
该提示对应 message.无法熔铸。请检查:
- 主槽和副槽中的物品是否都是插件能够识别的魂玉。
- 两个魂玉是否对应有效的魂玉配置。
- 魂玉的名称、词条和熔铸次数信息是否完整。
- 主魂玉是否已经达到
max-smelet-count设置的最大熔铸次数。
max-smelet-count: -1 表示不限制最大熔铸次数。其他数值表示允许的最大次数。
为什么熔炼提示材料不足?
检查魂玉配置中的 smelet-material。注意项目中的真实配置键拼写是 smelet-material,不要自行改成其他拼写。
材料格式为:
yaml
smelet-material:
'MM@魂玉精粹': '5*{count}'| 部分 | 含义 |
|---|---|
MM | 物品库插件缩写 |
魂玉精粹 | 物品 ID |
5*{count} | 所需数量表达式 |
配置中确认支持的插件缩写为 MM、NI、SI、ZAP。请确认对应物品库已经安装并正常加载,同时确认物品 ID 能被该物品库识别。
材料数量支持 PlaceholderAPI 变量和四则运算。表达式无法解析、变量没有返回数字或玩家持有数量不足时,都可能显示材料不足。
为什么第一次熔炼需要的材料数量是 0?
检查材料表达式是否直接使用了 {count}。示例配置为:
yaml
smelet-material:
'MM@魂玉精粹': '5*{count}'{count} 表示当前熔铸次数。如果首次熔铸时该值为 0,表达式 5*{count} 的结果就是 0。如需首次熔铸也消耗材料,应在表达式中加入基础数量,例如使用与金币配置相同的递增思路:
yaml
smelet-material:
'MM@魂玉精粹': '5*(1+{count})'为什么熔炼提示金币不足?
检查魂玉配置中的 smelet-eco。注意项目中的真实配置键拼写是 smelet-eco。
默认示例使用:
yaml
smelet-eco: '10000*(1+{count})'该配置支持 PlaceholderAPI 变量和四则运算。请确认表达式能够得到有效数字,并确认玩家当前货币不少于计算结果。
为什么熔炼后词条强度发生了变化?
检查 smelt-reroll-strength-enable。
- 设置为
true时,熔炼提取到的词条会重新随机强度。 - 设置为
false时,本次熔炼不会重新随机该词条的强度。
如果不希望熔炼改变提取词条的强度,应将其设置为 false。
为什么熔炼后保留的不是强度更高的词条?
确认以下配置:
yaml
smelt-reroll-strength-enable: false
smelt-keep-strength-high-priority-enable: true优先保留高强度的功能要求 smelt-reroll-strength-enable 为 false。如果启用了重新随机强度,原有强度不再作为直接保留依据。
为什么熔炼成功后没有执行配置的指令?
检查对应魂玉配置中的 smelt-success-commands。该配置必须位于具体魂玉 ID 下,而不是全局 config.yml 中。
同样,鉴定成功指令应配置在 appraisal-success-commands 中。两个列表为空时不会执行任何指令。
项目配置中确认可用于成功指令的变量如下:
| 变量 | 内容 |
|---|---|
{player} | 玩家名称 |
{item} | 物品名称 |
{souljade} | 魂玉 ID |
{count} | 当前熔铸次数 |
{count_max} | 最大熔铸次数 |
请只使用以上已经确认的变量,不要将公告变量直接视为成功指令变量。
为什么鉴定或熔炼音效没有播放?
检查 config.yml 中的 sound 配置:
| 配置项 | 触发时机 |
|---|---|
sound.appraisal-success | 鉴定成功 |
sound.appraisal-failed | 鉴定失败 |
sound.smelt-success | 熔炼成功 |
sound.pick-or-upload-success | 取回或放入物品成功 |
不同服务端版本的音效名称可能不同。项目默认配置同时给出了旧版与新版名称提示,例如:
| 事件 | 1.12.2 示例 | 1.7 示例 |
|---|---|---|
| 鉴定成功、熔炼成功 | ENTITY_EXPERIENCE_ORB_PICKUP | ORB_PICKUP |
| 鉴定失败 | BLOCK_GLASS_BREAK | GLASS |
| 取回或放入物品 | BLOCK_CLOTH_PLACE | DIG_WOOL |
请按实际服务端版本填写可用的 Bukkit 音效名称。
为什么修改提示文本后没有生效?
确认修改的是 config.yml 中的 message 节点,并检查 YAML 缩进。项目中提供的提示项包括:
| 配置项 | 使用场景 |
|---|---|
message.无法熔铸 | 物品无法进行熔铸 |
message.禁止熔铸 | 副槽物品带有防误熔标记 |
message.材料不足 | 熔铸材料不足 |
message.金币不足 | 货币不足 |
message.鉴定失败 | 鉴定未成功 |
message.不是魂玉 | 物品不是未鉴定魂玉 |
message.鉴定成功 | 鉴定成功 |
message.熔铸成功 | 熔铸后替换词条 |
message.熔铸保留 | 熔铸后保留原词条 |
修改配置后需要通过插件实际支持的方式重新载入配置。数据库开关属于需要重启服务器的配置,不应仅依赖热重载。
为什么熔铸成功提示中的内容没有被替换?
默认 message.熔铸成功 使用以下变量:
| 变量 | 内容 |
|---|---|
{entry_a} | 原词条 |
{entry_b} | 新词条 |
{count} | 当前熔铸次数 |
{count_max} | 最大熔铸次数 |
请保持变量使用英文半角花括号,不要修改变量名称。变量只在对应消息的处理场景中保证可用,不能据此认定它们可以用于所有配置项。
为什么界面中的成功率、金币或材料数量没有显示?
检查界面文件中的模板变量是否保持原样。
鉴定按钮使用:
| 变量 | 内容 |
|---|---|
{chance} | 鉴定成功率 |
{need_eco} | 需要的货币 |
{has_eco} | 玩家拥有的货币 |
熔炼按钮同样使用 {chance}、{need_eco} 和 {has_eco}。材料模板使用:
| 变量 | 内容 |
|---|---|
{need} | 需要的材料数量 |
{current} | 当前拥有的材料数量 |
如果删除、改名或拼错这些变量,界面将无法显示对应数据。
为什么数据库功能没有生效?
数据库配置位于 config.yml 的 mysql 节点:
yaml
mysql:
enable: false
databasename: mc2
username: mc2
password: mc1234
port: 3306
ip: 127.0.0.1启用 MySQL 时必须同时满足以下条件:
- 将
mysql.enable设置为true。 - 安装 LyMySQLCore。
- 确保 LyMySQLCore 已成功连接数据库。
- 正确填写数据库地址、端口、数据库名、用户名和密码。
- 完整重启服务器。
LyMySQLCore 在插件声明中属于软依赖,但 MySQL 存储功能依赖它。未安装 LyMySQLCore、数据库连接失败或仅修改配置而未重启时,相关数据库功能不会生效。
修改 mysql.enable 后可以直接重载吗?
不建议。项目配置已经明确标注,数据库开关需要重启服务器。
修改 mysql.enable 或数据库连接参数后,应完整关闭并重新启动服务器,避免旧连接或旧存储状态继续生效。
为什么 YAML 配置修改后报错?
常见原因包括:
- 使用了 Tab,而不是空格缩进。
- 同一层级的缩进数量不一致。
- 包含冒号、井号或特殊字符的文本没有使用引号。
- 将真实配置键
smelet-material、smelet-eco或max-smelet-count改成了其他拼写。 - 修改了
鉴定界面.yml或熔炼界面.yml的文件名。 - 在
layout中删除了按钮映射需要的字符。 spawn-entry-count被设置为小于2的数字。
修改前建议保留原文件副本。排查时先恢复最小配置,再逐项加入自定义内容。
插件支持哪些服务端版本?
项目包含以下 NMS 适配模块:
| NMS 模块 | 对应项目构建版本 |
|---|---|
V1_7_R4 | 1.7.10 |
V1_8_R3 | 1.8.8 |
V1_11_R1 | 1.11.2 |
V1_12_R1 | 1.12.2 |
V1_13_R2 | 1.13.2 |
V1_14_R1 | 1.14.4 |
V1_15_R1 | 1.15.2 |
V1_16_R3 | 1.16.5 |
V1_17_R1 | 1.17.1 |
V1_18_R2 | 1.18.2 |
V1_19_R1 | 1.19.2 |
V1_19_R3 | 1.19.4 |
V1_20_R1 | 1.20.1 |
V1_20_R2 | 1.20.2 |
V1_20_R3 | 1.20.3 |
项目证据中没有对应模块的其他版本,不应直接视为已经适配。跨大版本使用时,还需要同步检查界面物品写法和音效名称是否适用于当前服务端。