ItemMaster - 物品大师
ItemMaster 是一款由脚本驱动的 GUI 式物品操作框架。
物品大师专为 Minecraft 服务器的物品交互流程而生,提供一套完整的 DSL(领域特定语言)来描述 GUI 布局、槽位交互、匹配规则、脚本逻辑和外部联动。你可以用它快速搭建装备强化、属性洗练、装备锻造、装备吞噬、宝石镶嵌、物品分解、抽奖转盘等任意玩法,只需几个 YAML 文件就能把整个交互链路跑起来。
如果你想要的是一个能把"玩家放物品 → 条件判断 → 消耗资源 → 修改物品"这条链路写活的工具,ItemMaster 很适合这类内容。
你可以用它做什么
- 搭建装备强化、属性洗练、锻造、吞噬、镶嵌、分解、抽奖转盘等典型系统
- 用字符矩阵快速定义 GUI 布局,通过 8 种槽位处理各类物品交互
- 用 36+ 匹配器精细筛选玩家放入的物品,并用脚本实现复杂的业务逻辑
- 通过预览槽位给玩家展示"强化后效果",不影响真实物品
- 接入 MythicMobs、NeigeItems、PlaceholderAPI、Vault、CraftX、LyShop、SoulRingX 等常见前置
- 使用离线会话系统,实现制造倒计时、转盘动画等跨生命周期的流程
推荐阅读顺序
新手最快上手路径
如果你是第一次接触 ItemMaster,建议按下面的顺序做:
- 装好插件并确认
plugins/ItemMaster/目录生成。 - 打开
recipes/目录,复制一份示例配方文件(如enhance.yml)。 - 先改
title、rows、layout、slots四个顶级字段,做出一个能打开的空 GUI。 - 给关键槽位加上
match匹配,让玩家能放入对应物品。 - 再补
variables和execute脚本块,实现最小闭环(消耗材料 → 改 Lore → 给反馈)。 - 最后接入预览槽位、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 一定先做"最小闭环",不要一次把预览、动画、联动全塞进去。
- 尽量把脚本拆成
variables、conditions、execute、onchange四块,各司其职。 - 动态更新材料/按钮显示的逻辑放在
variables末尾,配合effect.refresh()刷新。 - 消息、音效、粒子只能放在
execute或onchange里,千万不要放在variables,否则会随着每次刷新重复触发。 - 修改物品前务必用
装备 = @槽位显式赋值,修改后用slot.set("槽位ID", 装备)写回。 - 正式上线前至少完整测试一次:放入、取出、成功、失败、关闭、重进,并检查玩家背包物品是否正常归还。