Skip to content

升级方案配置

升级方案文件放在 plugins/RedmiItemEnhance/升级/。一个方案的 ID 是 YAML 顶层键,必须保持唯一。

配置骨架

yaml
方案ID:
  # 可选:显示在装备 Lore 中的经验数值标识
  经验值: 武器经验
  # 可选:显示在装备 Lore 中的进度条模板
  经验条: "&8[&a||||||||||&8]"
  # 每个等级对应“升到下一级”需要的经验
  经验公式:
    "0-10": "{level}*10"
    "11-20": "{level}*25"
  # 至少填写一项,可组合使用;推荐使用 ItemID
  物品匹配:
    Name: ""
    ItemID: "[rm]武器ID"
    Lore:
      - ""
  经验获取:
    击杀:
      "僵尸": "10"
    道具:
      "[rm]低级经验石": "20"
      "[ni]exp_stone": "50"
    吞噬:
      "旧武器方案": "0.8"
  物品升级: |-
    var level = 强化.获取等级(item);
    物品.修改物品名(item, '§a武器 +' + (level + 1));
    return true;

物品匹配

匹配条件是“同时满足已填写条件”。

  • Name:物品名包含该文本。
  • Lore:列表中的文本按 RedmiAssyLib 的 Lore 匹配规则检查。
  • ItemID:格式为 [rm]id[ni]id,分别读取 RedmiAssyLibNeigeItems 的物品 ID。

当前版本加载器会校验 ItemID 的来源格式。为了保证方案能够正常载入,生产环境请务必填写有效的 [rm][ni] ID,再用 NameLore 继续收窄匹配范围。

首次匹配成功后,插件会在物品 NBT 的 RedmiItemEnhance.Plan 中记录方案。之后优先使用这个方案;如果方案被删除或物品条件发生变化,插件会重新匹配。config.yml方案修正经验继承 决定重新匹配时是否保留原经验。

经验公式

键支持单个等级或闭区间,例如 "0-10"。值是包含 {level} 的整数表达式,加载时会展开为每个等级的需求经验。

yaml
经验公式:
  "0-4": "{level}*10+20"
  "5": "100"
  "6-9": "{level}*30"

区间应按从小到大填写,不能重叠。没有对应公式的等级即视为等级上限。

经验来源

击杀

键是实体显示名,支持按配置中的名称索引匹配;值必须是整数。插件只检查 config.yml经验获取生效槽位 中列出的装备槽。

道具

值是每个物品提供的经验。强化界面会按堆叠数量计算并只消耗达到本次升级所需经验的数量。[rm][ni] 可直接使用;[mm] 需要 MythicMobs 已启用。

吞噬

键是允许被吞噬的升级方案 ID,值是经验折算比例,例如 0.8 表示按旧装备累计经验的一部分转入当前装备。未列出的方案不能被吞噬。

升级脚本

升级脚本在真正升级时执行,预览会优先使用单独配置的预览脚本。脚本必须返回布尔值;升级成功后插件统一写入“等级 +1、经验 0”。

界面按钮文字

可以在方案内按等级区间追加确认按钮 Lore:

yaml
界面按钮信息:
  "0-9":
    - "§7当前等级:{level}"
    - "§e下一次升级需要的经验请查看装备 Lore"

{level} 会替换为当前等级,文本中的四则运算占位符继续交给 RedmiAssyLib 解析。