SnowyGems

新语法、迁移与游戏内编辑器

SnowyGems 0.0.7 对象式动作配置、嵌套技能转换命令,以及可自定义外观的全 GUI 宝石和符文配方编辑器。

新语法、迁移与游戏内编辑器

0.0.7 的 Rewards 和 Skills 支持普通 YAML 对象。每条动作的 action 是函数名,其他字段直接写参数;旧的 {参数;参数} 行仍能读取。

生命宝石:
  Name: 生命宝石
  Material: REDSTONE
  Require: [ARMOR]
  Rewards:
    - action: Attribute
      name: health
      operation: 0
      slot: auto
      var: "v+1"
      limit: 10

技能中的 trigger 指触发时机,target 不写时默认 Self:

缓降:
  Lore: "[BUFF] 缓降"
  Skills:
    - action: PotionBuff
      type: SLOW_FALLING
      trigger: onTimer

闪现:
  Lore: "右键闪现"
  Skills:
    - action: Blink
      distance: 16
      trigger: onUse
      target: Self

一条技能可写多个触发器:trigger: "onUse, onShiftUse"。需要忽略奖励失败时写 ignorable: true。拆卸价格与返还成功率写在独立的 dismantle/ 方案里,宝石奖励不再写 phase: remove。其他参数保持函数原有含义。含 : 、#、$ 或特殊符号的参数值建议加 YAML 引号。YAML 的引号能表达原来的分号、等号和空格,无需额外的反斜杠转义。trigger 是推荐字段名;请勿把它缩写成 on,某些 YAML 解析器会把 on 当布尔值。

迁移已有文件

  1. 更新到 0.0.7 并确认服务器正常启动。
  2. 执行 /sgem migrate。插件扫描 gems/ 和 skills/ 第一层文件,把旧动作行转换成对象式动作。
  3. 指令会报告转换文件数、动作数和备份目录;完成后自动重载配置。
  4. 对照备份检查转换结果。Chance、If、All、Repeat、Reward 等嵌套技能及 Conditional 的嵌套奖励会转换为 then 对象或列表;无法确认转换前后运行结果一致的行仍保留原文。

备份保存在 plugins/SnowyGems/migration-backups/<时间>/。转换前先解析所有待转换行;写入或重载失败会恢复原始文件并重新加载。转换会重新序列化有改动的 YAML 文件,所以注释与原排版可能变化;原始字节在备份中。没有旧动作时不会改文件。权限为 snowygems.migrate,默认包含在 snowygems.admin。此命令只转换动作写法,不迁移旧拆卸价格;后者需按拆卸方案手工处理。

游戏内编辑器

执行 /sgem editor,需要 snowygems.edit,默认仅 OP 或拥有 snowygems.admin 的管理员可用。

  • 首页选择 宝石 或 符文配方,然后进入分类和条目。分类对应 gems/ 或 runes/packs/ 中的配置文件;可在分类页新建分类,右键删除空分类。内置 forge 配方分类不能删除。
  • 分类内可创建宝石或配方,条目 ID 只能包含文字、数字、_、-,最多 48 字。条目页可移动到其他分类;移动会同时更新配置文件。
  • 宝石条目页按 基础、外观、限制、奖励、奖池 分区。字段左键修改;布尔字段左键切换,右键可清空可选字段。Tips、Require、Gui 等列表字段用 | 分隔。自定义字段会先询问字段名,再询问值。
  • 宝石的 奖励动作 页可逐条添加和修改参数;新增时先选常用模板,也可选择“自定义动作”输入完整动作。右键删除动作前会出现确认界面。带嵌套函数的复杂动作可先新增简单动作,再逐项编辑参数。
  • 符文配方的 材料 页会列出已用宝石;添加材料时直接从宝石列表选择,再设置数量。右键移除材料需确认;配方产物在基础字段中的 Result 设置。
  • 随机宝石的 奖池 页可从宝石列表选择子宝石并设置权重,右键移除奖池项需确认。
  • 所有文字和数字都在铁砧 GUI 中输入:修改上方文字后点击右侧保存,点击中间红色图标取消。删除条目、删除分类、移动条目等操作都有 GUI 确认页,不需要聊天输入。

自定义编辑器界面

编辑器的界面配置在 plugins/SnowyGems/gui/editor.yml,首次启动自动生成;已有文件升级时保留。修改后执行 /sgem reload。

  • Titles:首页、分类、条目、字段、确认页等标题。动态标题支持 {id}、{category}、{group}、{index}。
  • Icons:按按钮角色设置 Material、Display、Tips、Glow。Display 和 Tips 可用 {name} 插入该图标原来的文字。留空的属性使用内置值。
  • ContentSlots:六行列表页显示内容的格子。
  • Slots:返回、添加、翻页以及首页、条目详情、确认页的按钮格子。Back、Previous、Add、Next 必须各占不同位置,且不能与 ContentSlots 重叠。

例如,将返回按钮换成指南针:

Icons:
  Back:
    Material: COMPASS
    Display: '&e返回上一层'
    Tips: ['&7点击返回']

铁砧输入界面的三个位置固定为 0、1、2;可通过 InputText、InputCancel、InputSave 调整图标外观。配置文件中的默认值展示了所有可修改的页面、图标角色与按钮位置。

每次修改立即保存并完整重载。无效宝石引用、重复 ID、错误配方或严格校验失败时,相关文件恢复到修改前内容,聊天栏显示错误原因。删除仍被配方引用的宝石也会被拒绝。编辑器操作会重新序列化相应文件,正式服操作前建议保留配置备份。符文配方编辑的是锻造配方;符文物品本身仍是宝石定义,应在“宝石”页编辑。

Copyright © 2026