Skip to content

上一页:命令与权限 · 下一页:诊断与排错

🎯 统一物品源引用(核心页)

这是 QCL 最重磅、服主最常用的功能。一句话:不管物品来自原版还是任何外部插件,都用同一套字符串语法去引用它。本页把这套引用讲到可以照抄。


💡 概念:为什么要统一?

服务器上的物品来源五花八门——原版材料、QinhItems、MMOItems、NeigeItems、MythicMobs、CraftEngine、CustomFishing、MagicGem、ItemsAdder、Nexo……每个插件都有自己的取物 API 和写法。

QCL 的 ItemSourceManager 把这些全部抹平成一种引用字符串:你只写 源:物品ID(或 源-物品ID),QCL 负责解析成 (源, 物品ID, 可选JSON参数) 并构建出真正的 ItemStack

这样带来的好处:

  • 服主只学一套语法,到处都能用(QI 配置、CustomBlock、GUI、API)。
  • 新增一个源(比如以后接 ItemsAdder/Nexo),所有调用方自动支持,子插件无需改动。

🔧 通用解析规则

规则写法说明
冒号分隔别名:物品idqi:神剑
破折号分隔别名-物品idni-blade
追加 JSON 参数引用::{json}:: 后跟 JSON,传给源
无分隔符物品id默认当成原版 vanilla 材料

⚠️ 注意 ::(两个冒号)专门用来追加 JSON 参数,和源分隔用的单个 : 不冲突。


📚 10 种源逐一讲解

1️⃣ 原版 Vanilla

内容
别名vanillaminecraftmcvmaterialtype
语法vanilla:材料名 或直接 材料名
示例DIAMOND_SWORDvanilla:STONE
依赖无(原版即可)

📌 物品 id 是 Bukkit Material 枚举名,全大写无前缀时默认就是 vanilla,所以 DIAMOND_SWORD 等价于 vanilla:DIAMOND_SWORD


2️⃣ QinhItems(QI)

内容
别名qinhitemsqi
语法qi:物品id
示例qi:神剑
依赖QinhItems

📌 冒号分隔。


3️⃣ MMOItems

内容
别名mmoitemsmi
语法mi-类型-物品id(内部转为 类型:物品id
示例mi-SWORD-烈焰剑
依赖MMOItems

📌 必须两段:类型 + id。MMOItems 物品天然带「类型」(如 SWORDARMOR),缺一不可。


4️⃣ NeigeItems(NI)

内容
别名neigeitemsni
语法ni-物品idni-物品id::{JSON}
示例ni-bladeni-blade::{"品质":"传说"}
依赖NeigeItems

📌 NI 支持 :: 后传 JSON 参数(如指定品质、随机词条等)。


5️⃣ MythicMobs(MM)

内容
别名mythicmobsmmmythic
语法mm-物品id
示例mm-龙剑(支持中文 id)
依赖MythicMobs

6️⃣ CraftEngine(CE)

内容
别名craftenginececraft-engine
语法ce-命名空间_idce-命名空间:id
示例ce-包名_物品ce-包名:物品
依赖CraftEngine

📌 首个下划线会自动转成冒号,所以 ce-包名_物品 等价于 ce-包名:物品


7️⃣ CustomFishing(CF)

内容
别名customfishingcf
语法cf-物品id
示例cf-宝箱
依赖CustomFishing

8️⃣ MagicGem(MG)

内容
别名magicgemmgmagic-gem
语法mg-宝石id
示例mg-钻石宝石
依赖MagicGem

9️⃣ ItemsAdder(IA)

内容
别名itemsadderia
语法ia-命名空间_idia-命名空间:id
示例ia-包名_物品
依赖ItemsAdder

📌 同 CraftEngine,首个下划线自动转冒号


🔟 Nexo(NX)

内容
别名nexonx
语法nx-idnx-命名空间:id(取冒号后部分)
示例nx-自定义剑
依赖Nexo

📌 若写 nx-命名空间:id,实际取冒号后的 id 部分。


📊 总表速查

别名引用语法示例
原版 Vanillavanilla, minecraft, mc, v, material, typevanilla:材料名 或直接 材料名DIAMOND_SWORD / vanilla:STONE
QinhItemsqinhitems, qiqi:物品idqi:神剑
MMOItemsmmoitems, mimi-类型-物品idmi-SWORD-烈焰剑
NeigeItemsneigeitems, nini-物品idni-物品id::{JSON}ni-blade::{"品质":"传说"}
MythicMobsmythicmobs, mm, mythicmm-物品idmm-龙剑
CraftEnginecraftengine, ce, craft-enginece-命名空间_idce-命名空间:idce-包名:物品
CustomFishingcustomfishing, cfcf-物品idcf-宝箱
MagicGemmagicgem, mg, magic-gemmg-宝石idmg-钻石宝石
ItemsAdderitemsadder, iaia-命名空间_idia-命名空间:idia-包名:物品
Nexonexo, nxnx-idnx-命名空间:idnx-自定义剑

🗒️ 20+ 即用引用示例清单

直接照抄改名即可:

text
# —— 原版 ——
DIAMOND_SWORD
vanilla:STONE
v:GOLDEN_APPLE
minecraft:OAK_LOG
material:NETHERITE_INGOT

# —— QinhItems ——
qi:神剑
qinhitems:回血药

# —— MMOItems ——
mi-SWORD-烈焰剑
mmoitems-ARMOR-龙鳞甲

# —— NeigeItems ——
ni-blade
ni-blade::{"品质":"传说"}
neigeitems-staff

# —— MythicMobs ——
mm-龙剑
mythic-神圣法杖

# —— CraftEngine ——
ce-包名_物品
ce-包名:物品

# —— CustomFishing ——
cf-宝箱
customfishing-金鱼

# —— MagicGem ——
mg-钻石宝石
magicgem-红宝石

# —— ItemsAdder ——
ia-包名_物品
ia-包名:物品

# —— Nexo ——
nx-自定义剑
nexo-命名空间:特殊盾

✅ 可用性与错误码

每个源只有在对应插件装了且对应模块启用时才可用,否则该引用解析失败并返回错误码:

错误码含义怎么办
PARSE_FAILED引用格式写错检查分隔符(冒号/破折号)、段数
MATERIAL_NOT_FOUND原版材料不存在核对 Bukkit Material 枚举名(全大写)
SOURCE_NOT_FOUND源未注册(插件没装或模块禁用)确认对应插件已安装、对应模块未被禁用
ITEM_NOT_FOUND源里没有这个物品核对物品 id 是否正确、是否已在对应插件里配置

🔗 完整错误码见 诊断码


🩺 诊断方法

/qcl status 末尾有「物品引用诊断」一项,它会实际测试解析 vanilla:stone

  • 诊断码 OK → 物品源管道正常。
  • 摘要里还会列出已注册的物品源数量 + 列表,可据此确认你的某个源是否被识别。

🩺 逐项解读见 诊断与排错


👷 谁在用这套引用?

调用方用法
QinhItemsmaterial 底物 / consume 消耗物 / give 给物
QCL CustomBlockitem_sources 字段
GUIGUI 里的物品引用
开发者ItemManagerAPI.getHookItem(ref)

🌟 关键设计:新增 ItemsAdder / Nexo 等源后,上述所有调用方自动支持,无需任何子插件改动。


📖 继续阅读