Skip to content

ItemMaster - 物品大师

ItemMaster 是一款由脚本驱动的 GUI 式物品操作框架。

物品大师专为 Minecraft 服务器的物品交互流程而生,提供一套完整的 DSL(领域特定语言)来描述 GUI 布局、槽位交互、匹配规则、脚本逻辑和外部联动。你可以用它快速搭建装备强化、属性洗练、装备锻造、装备吞噬、宝石镶嵌、物品分解、抽奖转盘等任意玩法,只需几个 YAML 文件就能把整个交互链路跑起来。

如果你想要的是一个能把"玩家放物品 → 条件判断 → 消耗资源 → 修改物品"这条链路写活的工具,ItemMaster 很适合这类内容。

你可以用它做什么

  • 搭建装备强化、属性洗练、锻造、吞噬、镶嵌、分解、抽奖转盘等典型系统
  • 用字符矩阵快速定义 GUI 布局,通过 8 种槽位处理各类物品交互
  • 用 36+ 匹配器精细筛选玩家放入的物品,并用脚本实现复杂的业务逻辑
  • 通过预览槽位给玩家展示"强化后效果",不影响真实物品
  • 接入 MythicMobs、NeigeItems、PlaceholderAPI、Vault、CraftX、LyShop、SoulRingX 等常见前置
  • 使用离线会话系统,实现制造倒计时、转盘动画等跨生命周期的流程

推荐阅读顺序

  1. 安装与启动
  2. 顶级字段
  3. 布局系统
  4. 槽位类型
  5. 匹配系统
  6. 脚本概览
  7. 流程控制
  8. 实战案例

新手最快上手路径

如果你是第一次接触 ItemMaster,建议按下面的顺序做:

  1. 装好插件并确认 plugins/ItemMaster/ 目录生成。
  2. 打开 recipes/ 目录,复制一份示例配方文件(如 enhance.yml)。
  3. 先改 titlerowslayoutslots 四个顶级字段,做出一个能打开的空 GUI。
  4. 给关键槽位加上 match 匹配,让玩家能放入对应物品。
  5. 再补 variablesexecute 脚本块,实现最小闭环(消耗材料 → 改 Lore → 给反馈)。
  6. 最后接入预览槽位、onchange 实时反馈、模块复用与外部插件联动。

一个配方文件长什么样

recipes/ 目录下每个 .yml 文件就是一个配方(一个 GUI 配置),文件名即配方 ID

yaml
# plugins/ItemMaster/recipes/enhance.yml  → 配方 ID: enhance
title: "&6装备强化"
rows: 6

layout: |
  XXXXXXXXX
  X...I...X
  X...M...X
  X...O...X
  X.......X
  XXXXBXXXX

slots:
  X: decoration(id=边框, material=BLACK_STAINED_GLASS_PANE, name=" ")
  I: input(id=装备, match="lore.contains('可强化')")
  M: material(id=材料, match="type.is(DIAMOND)", amount=1)
  O: output(id=结果)
  B: button(id=确认, material=LIME_WOOL, name="&a确认强化")

variables: |
  当前等级 = @装备.counter('强化等级')
  成功率 = max(10, 100 - 当前等级 * 5)

conditions: |
  require @装备.filled : "请放入装备"
  require @材料.filled : "请放入材料"

execute: |
  装备 = @装备
  money.take(1000)
  装备.lore.setCounter("强化等级", 当前等级 + 1, 20)
  slot.set("装备", 装备)
  effect.message("&a强化成功!")

使用建议

  • 第一个 GUI 一定先做"最小闭环",不要一次把预览、动画、联动全塞进去。
  • 尽量把脚本拆成 variablesconditionsexecuteonchange 四块,各司其职。
  • 动态更新材料/按钮显示的逻辑放在 variables 末尾,配合 effect.refresh() 刷新。
  • 消息、音效、粒子只能放在 executeonchange 里,千万不要放在 variables,否则会随着每次刷新重复触发。
  • 修改物品前务必用 装备 = @槽位 显式赋值,修改后用 slot.set("槽位ID", 装备) 写回。
  • 正式上线前至少完整测试一次:放入、取出、成功、失败、关闭、重进,并检查玩家背包物品是否正常归还。

常见文档入口

TQ Minecraft Server Plugin Docs