Skip to content

上一页:概览.md · 下一页:方块模型作物.md 相关:../02-服主指南/物品源引用.md · ../04-开发者/物品API.md · 概览.md

🎒 物品类插件对接

QCL 把九个物品来源都接成了「物品桥」。它们的共同价值是:让别家插件的物品,能用 QCL 的统一引用语法被引用 —— 无论是在 QinhItems(QI)、自定义 GUI、CustomBlock 掉落、还是开发者 API 里。

🧷 核心心智模型:你几乎从不直接调用某个桥。你只需要写一段物品源引用字符串(如 mi-SWORD-CUTLASS),QCL 会自动派发到对应的桥取出物品。引用语法总览见 👉 ../02-服主指南/物品源引用.md


🧭 引用前缀速查

插件引用前缀例子
MMOItemsmi-类型-idmi-SWORD-CUTLASS
NeigeItemsni-idni-magic_apple
MythicMobsmm-idmm-SkeletonKingBlade
MagicGemmg-idmg-fire_ruby
CustomFishingcf-idcf-golden_carp
ItemsAdderia-命名空间_idia-myitems_ruby_sword
Nexonx-idnx-ruby_sword
CraftEnginece-命名空间_idce-default_oak_chair
QinhItemsqi:idqi:flame_blade

⚠️ 引用前缀里的 - / _ / : 都是约定写法,请照抄格式。下文每个插件会说明各自的坑。


⚔️ MMOItems

项目内容
桥类MMOItemsBridge
引用前缀mi-类型-id
检测类net.Indyuce.mmoitems.MMOItems
桥能力getItem(类型, id)getType(物品)getID(物品)
反射要点反射 getTypes / get / getItem

MMOItems 的物品天生分类型(SWORD、ARMOR、CONSUMABLE…),所以引用必须带类型

yaml
# ✅ 正确:mi - 类型 - id 三段
item: mi-SWORD-CUTLASS
# ❌ 错误:缺类型,桥无法定位
item: mi-CUTLASS
  • getType(物品) / getID(物品):反向读取一个物品的 MMOItems 类型与 id,用于「这是不是某个 MMOItems」之类判定。

🍎 NeigeItems

项目内容
桥类NeigeItemsBridge
引用前缀ni-id
检测对象pers.neige.neigeitems.manager.ItemManager.INSTANCE
桥能力getItemStack(id)getItemId(物品)

NeigeItems 物品不分类型,引用只要 id:

yaml
item: ni-magic_apple
  • getItemId(物品):反查一个物品是不是某个 NeigeItems(返回它的 id)。

💀 MythicMobs

项目内容
桥类MythicMobsBridge
引用前缀mm-id
桥能力getItemStack(id, 数量)
反射要点双绑定:现代版 io.lumine.mythic.bukkit.MythicBukkit + 遗留版 io.lumine.xikage

MythicMobs 经历过包名大改,所以这个桥同时尝试绑定两套类

绑定模式对应版本类名根
现代版新版 MythicMobsio.lumine.mythic.bukkit.MythicBukkit
遗留版老版 MythicMobsio.lumine.xikage
yaml
item: mm-SkeletonKingBlade

🔍 诊断/qcl status detail 会显示该桥实际命中的 bindMode。如果你的 MythicMobs 物品取不出来,先看 bindMode 是不是和你装的版本对得上。


💎 MagicGem

项目内容
桥类MagicGemBridge
引用前缀mg-id
检测类pku.yim.magicgem.gem.GemManager
桥能力getGemItem(id)hasGem(id)
反射要点getRealGem() / realGem
yaml
item: mg-fire_ruby
  • hasGem(id):判断该宝石 id 是否存在,可用于「引用前先校验」。

🎣 CustomFishing

项目内容
桥类CustomFishingBridge
引用前缀cf-id
桥能力buildItem(id, 数量)
反射要点多类名 + 多构建方法 + 多上下文兼容

CustomFishing 不同版本的构建入口差异较大,桥做了多类名 / 多构建方法 / 多上下文的兼容尝试。

yaml
item: cf-golden_carp

🧩 ItemsAdder

项目内容
桥类ItemsAdderBridge
引用前缀ia-命名空间_id
检测类dev.lone.itemsadder.api.CustomStack
桥能力buildItemStack(id, 数量)
反射要点插件自己的类加载器加载

ItemsAdder 的物品 id 是 命名空间:id 形式。在 QCL 引用里,把冒号 : 换成下划线 _

yaml
# ItemsAdder 里的 myitems:ruby_sword
item: ia-myitems_ruby_sword

⚠️ 下划线转写:ItemsAdder 原生 id 用 : 分隔命名空间,QCL 引用前缀里写成 _


🔷 Nexo

项目内容
桥类NexoBridge
引用前缀nx-id
检测类com.nexomc.nexo.api.NexoItems
桥能力buildItemStack(id, 数量)
反射要点itemFromId().build()

Nexo 是 Oraxen/ItemsAdder 一脉的继任者,物品 id 直接用:

yaml
item: nx-ruby_sword

🛠️ CraftEngine(物品部分)

项目内容
桥类CraftEngineBridge / CraftEngineManager
引用前缀ce-命名空间_id
桥能力(物品)buildItemStack(标识, 数量)
反射要点多版本多签名兼容

CraftEngine 不只提供物品,还提供自定义方块 / 家具的放置与识别能力 —— 物品引用在这里,方块/家具能力见 👉 方块模型作物.md

yaml
# CraftEngine 里的 default:oak_chair
item: ce-default_oak_chair

⚠️ 同 ItemsAdder:命名空间分隔符 : 在引用里写成 _


🏮 QinhItems(内部源)

项目内容
内部源类QinhItemsItemSource(非反射桥,是内部物品源)
引用前缀qi:id
实现反射 QinhItemRegistry.create(id, 数量)
前提QinhItems 已启用

QinhItems(QI)是秦淮生态的自家物品系统。它在 QCL 里以内部物品源形式存在(区别于第三方反射桥),但引用语法照样统一:

yaml
item: qi:flame_blade

💡 QI 物品 id 用冒号 qi:id,与上面多数第三方插件的 - 略有不同,请照抄。


🧪 怎么用这些引用

无论哪个前缀,引用字符串能出现的地方是一致的:

  • QinhItems 配方/掉落/属性来源里引用别家物品。
  • 自定义 GUI:图标 material 写成物品源引用。
  • CustomBlock:方块掉落物。
  • 开发者 API:见 ../04-开发者/物品API.md

所有引用都走 QCL 统一物品源解析层,解析不到(插件没装 / id 写错)时返回空而非报错


📚 继续阅读