Skip to content

鉴定与熔铸

魂玉的核心流程分为鉴定和熔铸。未鉴定魂玉需要先完成鉴定,生成随机词条后才能参与熔铸。熔铸会消耗一个副槽魂玉,并允许玩家在原词条与新词条之间选择。

鉴定

魂玉识别

插件通过魂玉配置中的物品名和初始描述识别未鉴定魂玉。

识别项配置项说明
物品名match-name支持配置多个可识别的物品名
初始描述init-lore用于标记尚未鉴定的魂玉

物品不符合对应魂玉的识别条件时,不会进入鉴定流程,并会发送 message.不是魂玉 配置的消息。

yaml
'神器魂玉':
  match-name:
    - '&c神器魂玉'
  init-lore: '&7尚未解封魂玉之力'

鉴定界面

鉴定界面由固定文件 鉴定界面.yml 控制,文件名不可修改。默认布局包含一个魂玉槽位和一个鉴定按钮。

界面配置默认标识作用
button.jadeA放置未鉴定魂玉
button.buttonY执行鉴定

玩家点击背包内的魂玉后,物品会进入鉴定槽位。鉴定按钮的描述支持显示本次成功率、所需金币和玩家持有金币。

界面变量内容
{chance}本次鉴定成功率
{need_eco}本次鉴定所需金币
{has_eco}玩家当前持有金币

鉴定流程

  1. 玩家点击背包内的未鉴定魂玉,将其放入鉴定槽位。
  2. 界面显示成功率、所需金币和玩家当前金币。
  3. 玩家点击鉴定按钮。
  4. 插件按照 appraisal-chance 判断本次鉴定是否成功。
  5. 鉴定成功后,从当前魂玉的词条池中抽取词条。
  6. 插件按照 entry-format 重建魂玉描述。
  7. 插件执行 appraisal-success-commands 中配置的成功指令。

appraisal-chance 使用 01 的数值。例如 0.8 表示配置成功率为 80%

鉴定消耗

配置项说明
appraisal-chance鉴定成功率,取值范围为 01
appraisal-eco每次鉴定所需金币
appraisal-success-commands鉴定成功后执行的指令列表

appraisal-eco 使用字符串配置,支持 PlaceholderAPI 变量和四则运算表达式。PlaceholderAPI 在插件中属于软依赖,表达式使用相关变量时需要服务器已安装并正常加载 PlaceholderAPI。

yaml
appraisal-chance: 0.8
appraisal-eco: '10000'
appraisal-success-commands: []

词条生成

鉴定成功后,插件会从当前魂玉的 entry 词条池中抽取 spawn-entry-count 条词条。

配置项说明
spawn-entry-count鉴定成功时生成的词条数量
entry当前魂玉可以生成的词条池
entry.<词条 ID>.lore词条显示内容和随机数值规则
entry.<词条 ID>.weight词条的抽取权重

权重用于控制不同词条被抽中的相对概率。权重越高,对应词条越容易被抽中。

词条 ID 会参与魂玉数据识别。魂玉投入使用后,不应随意修改已有词条 ID,否则旧物品可能无法继续正确对应原词条。

词条数值表达式

词条描述可以生成一个或多个随机数值,并通过 {strength} 显示本次词条的强度。

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
内容作用
{10-20-%.0f}1020 之间生成数值,并且不保留小数
{20-40-%.0f}2040 之间生成数值,并且不保留小数
{1-10-%.1f}110 之间生成数值,并且保留一位小数
{strength}当前词条强度

同一条 lore 可以包含多个随机数值表达式。例如物理伤害示例会在同一词条中生成两段数值。

熔铸

熔铸界面使用两个已鉴定魂玉。A 槽保存需要继续使用的主魂玉,B 槽提供新词条并在熔铸过程中被扣除。

熔铸槽位

熔铸界面由固定文件 熔炼界面.yml 控制,文件名不可修改。

界面配置默认标识作用
button.jade-aA放入需要保留的主魂玉
button.jade-bB放入提供词条并会被扣除的副魂玉
button.keep-result<保留主魂玉原来的词条
button.replace-result>使用本次获得的新词条
button.buttonY执行熔铸
button.materialX显示熔铸所需材料

尖括号槽位标识在文档中应写为代码形式,例如 <>,避免被页面解析器识别为标签。

材料槽位的 template 会追加到目标材料的描述底部。默认模板支持以下变量:

界面变量内容
{need}当前材料的需求数量
{current}玩家当前拥有的材料数量

熔铸按钮还支持显示以下信息:

界面变量内容
{chance}界面显示的成功率
{need_eco}本次熔铸所需金币
{has_eco}玩家当前持有金币

熔铸流程

  1. 将需要继续使用的已鉴定魂玉放入 A 槽。
  2. 将提供词条的已鉴定魂玉放入 B 槽。
  3. 插件检查两个物品是否可以参与熔铸。
  4. 插件检查主魂玉的熔铸次数是否达到上限。
  5. 插件检查玩家的金币和材料是否满足要求。
  6. 插件从两个魂玉内各抽取一条词条。
  7. B 槽魂玉被扣除,其抽取到的词条作为本次新词条。
  8. 玩家通过结果槽选择保留旧词条,或者将主魂玉抽取到的旧词条替换为新词条。
  9. 熔铸完成后增加主魂玉的熔铸次数。
  10. 插件执行 smelt-success-commands 中配置的成功指令。

A 槽魂玉是最终结果的基础物品。B 槽魂玉属于消耗品,放入前应确认物品是否可以被扣除。

词条数量限制

spawn-entry-count 不仅决定鉴定生成的词条数量,也参与熔铸处理。

熔铸时需要从两个魂玉内各抽取一条词条,因此 spawn-entry-count 不能低于 2。配置为小于 2 的数值会导致熔铸流程无法成立。

按照魂玉配置文件中的规则,熔铸时重新抽取的词条数为 spawn-entry-count - 2

yaml
spawn-entry-count: 3

熔铸消耗

熔铸可以同时消耗金币和物品材料。材料不足或金币不足时,熔铸不会继续。

配置项说明
smelet-material熔铸所需材料列表
smelet-eco熔铸所需金币
max-smelet-count单个魂玉允许熔铸的最大次数
smelt-success-commands熔铸成功后执行的指令列表

配置键中的 smelet 是插件实际使用的拼写,不能改写为 smelt

金币与次数

smelet-eco 使用字符串配置,支持 PlaceholderAPI 变量、{count} 和四则运算表达式。{count} 表示当前熔铸次数,可以用于让消耗随熔铸次数增加。

yaml
smelet-eco: '10000*(1+{count})'
max-smelet-count: 100

max-smelet-count 设置为 -1 时,不限制最大熔铸次数。

材料格式

熔铸材料使用“插件缩写加物品 ID”的格式配置。

yaml
smelet-material:
  'MM@魂玉精粹': '5*{count}'
插件缩写配置格式
MMMM@物品ID
NINI@物品ID
SISI@物品ID
ZAPZAP@物品ID

材料数量使用字符串配置,支持 PlaceholderAPI 变量、{count} 和四则运算表达式。熔铸界面会显示每种材料的需求数量与玩家当前拥有数量。

对应物品来源插件必须已经安装并能提供配置中的物品 ID,否则插件无法正常识别所需材料。

误操作保护

prevent-mishandling-lore 用于防止绑定物品或其他重要物品被放入熔铸副槽。

插件会对 B 槽物品的描述进行关键词匹配。只要物品描述包含列表中的任意关键词,该物品就不能作为会被消耗的副魂玉,并会发送 message.禁止熔铸 配置的消息。

yaml
prevent-mishandling-lore:
  - '已绑定'

该限制只保护 B 槽。需要保护的标记必须实际出现在物品描述中,并与配置的关键词匹配。

强度机制

词条强度会影响随机数值结果,并可以通过 {strength} 插入词条描述。插件还提供强度随机方式、熔铸强度处理和显示替换功能。

强度随机分布

配置项效果
strength-average-three-enablefalse使用普通的强度随机结果
strength-average-three-enabletrue降低极高和极低强度出现的概率,使结果更集中在 50% 附近
yaml
strength-average-three-enable: false

熔铸强度处理

配置项效果
smelt-reroll-strength-enabletrue熔铸时重新随机抽取词条强度
smelt-reroll-strength-enablefalse熔铸时保留提取到的词条强度
smelt-keep-strength-high-priority-enabletrue不重新随机强度时,优先选择较高的强度值
smelt-keep-strength-high-priority-enablefalse不启用高强度优先处理

smelt-keep-strength-high-priority-enable 仅在 smelt-reroll-strength-enable: false 时生效。

yaml
smelt-reroll-strength-enable: false
smelt-keep-strength-high-priority-enable: false

强度显示替换

默认配置可以将 1100 的强度数字替换为分段进度标记。

配置项说明
strengthen-replace-enable是否启用强度文本替换
strengthen-replace-text按强度范围配置替换后的显示文本

strengthen-replace-enablefalse 时,{strength} 正常显示 1100 的数字。当其为 true 时,插件会根据强度所在范围读取 strengthen-replace-text 中的文本。

yaml
strengthen-replace-enable: true
strengthen-replace-text:
  1-5: '&a|&7|||||||||||||||||||'
  6-10: '&a||&7||||||||||||||||||'
  96-100: '&a||||||&e||||||&6||||||&c||'

范围键使用 最小值-最大值 的格式。默认配置以每五点强度为一个区间,覆盖 1-596-100

魂玉描述更新

鉴定和熔铸后的魂玉会按照 entry-format 重新排列描述。默认结构先显示生成的词条,再显示当前熔铸次数。

yaml
entry-format:
  - '{entry}'
  - '&7已熔铸次数: &6{count}/{count_max}'
变量内容
{entry}已生成的魂玉词条内容
{count}当前熔铸次数
{count_max}最大熔铸次数

修改 entry-format 时应保留需要显示的数据变量。移除 {entry} 后,生成的词条将无法通过该格式显示。

高强度词条公告

插件可以在鉴定或熔铸产生高强度词条时发送全服公告。

配置项说明
entry-message-enable是否启用鉴定和熔铸词条公告
entry-message-min-value触发全服公告所需的最低强度
entry-message-text全服公告内容

只有词条强度达到或超过 entry-message-min-value 时才会公告。

yaml
entry-message-enable: true
entry-message-min-value: 90
entry-message-text: '&7恭喜玩家 &a{player}&7 的 {item} &7获得了 &e{value}强度&7 的词条: {entry}'

公告文本支持以下变量:

变量内容
{player}获得词条的玩家名
{item}魂玉物品名
{value}词条强度
{entry}生成或熔铸得到的词条内容

成功指令

appraisal-success-commandssmelt-success-commands 分别在鉴定成功与熔铸成功后执行。

yaml
appraisal-success-commands: []
smelt-success-commands: []

两种成功指令均支持以下变量:

变量内容
{player}玩家名
{item}物品名
{souljade}魂玉 ID
{count}当前熔铸次数
{count_max}最大熔铸次数

指令属于具体魂玉配置,不同魂玉可以配置不同的鉴定成功指令和熔铸成功指令。

消息与音效反馈

鉴定与熔铸流程会使用 config.yml 中的消息和音效提供操作反馈。

事件消息配置音效配置
鉴定成功message.鉴定成功sound.appraisal-success
鉴定失败message.鉴定失败sound.appraisal-failed
物品不是未鉴定魂玉message.不是魂玉无已确认配置
熔铸成功message.熔铸成功sound.smelt-success
保留旧词条message.熔铸保留无已确认配置
物品无法熔铸message.无法熔铸无已确认配置
副槽触发防误熔保护message.禁止熔铸无已确认配置
材料不足message.材料不足无已确认配置
金币不足message.金币不足无已确认配置
放入或取回物品无已确认消息配置sound.pick-or-upload-success

熔铸成功消息支持显示被替换词条、获得词条和熔铸次数。

消息变量内容
{entry_a}主魂玉被替换的旧词条
{entry_b}从副魂玉获得的新词条
{count}当前熔铸次数
{count_max}最大熔铸次数

不同 Minecraft 版本使用的音效名称可能不同。默认配置同时给出了旧版本音效名称的注释,例如 ENTITY_EXPERIENCE_ORB_PICKUP 对应旧版本的 ORB_PICKUPBLOCK_GLASS_BREAK 对应旧版本的 GLASS

MySQL 数据存储

插件配置包含可选的 MySQL 存储开关。启用 mysql.enable 后,需要安装 LyMySQLCore,并确保 LyMySQLCore 已成功连接数据库,相关数据库存储功能才会生效。

MySQL 开关需要重启服务器后生效。数据库连接参数及完整配置说明请查看配置页面。