Previous: Commands & PermissionsใยทใNext: Diagnostics & Troubleshooting
๐ฏ Unified Item-Source Reference (Core Page) โ
This is QCL's flagship feature and the one server owners use most often. In one sentence: no matter whether an item comes from vanilla or any external plugin, you reference it with the same string syntax. This page explains the reference grammar thoroughly enough to copy verbatim.
๐ก Concept: Why unify? โ
Items on a server come from all over the place โ vanilla materials, QinhItems, MMOItems, NeigeItems, MythicMobs, CraftEngine, CustomFishing, MagicGem, ItemsAdder, Nexoโฆ Each plugin has its own item-retrieval API and notation.
QCL's ItemSourceManager flattens all of these into one reference string: you just write source:itemID (or source-itemID), and QCL parses it into (source, itemID, optional JSON parameters) and builds the real ItemStack.
The benefits of this:
- Server owners learn only one syntax, usable everywhere (QI config, CustomBlock, GUI, API).
- Adding a new source (e.g. wiring up ItemsAdder/Nexo later) is automatically supported by every caller, with no changes needed in the sub-plugins.
๐ง General parsing rules โ
| Rule | Notation | Description |
|---|---|---|
| Colon separator | alias:itemID | e.g. qi:็ฅๅ |
| Dash separator | alias-itemID | e.g. ni-blade |
| Append JSON parameters | reference::{json} | JSON after ::, passed to the source |
| No separator | itemID | Treated as a vanilla material by default |
โ ๏ธ Note that
::(two colons) is dedicated to appending JSON parameters and does not conflict with the single:used as a source separator.
๐ The 10 sources explained one by one โ
1๏ธโฃ Vanilla โ
| Item | Content |
|---|---|
| Aliases | vanilla, minecraft, mc, v, material, type |
| Syntax | vanilla:materialName or just materialName |
| Example | DIAMOND_SWORD, vanilla:STONE |
| Dependency | None (vanilla suffices) |
๐ The item ID is the Bukkit Material enum name, in all uppercase. With no prefix it defaults to vanilla, so DIAMOND_SWORD is equivalent to vanilla:DIAMOND_SWORD.
2๏ธโฃ QinhItems (QI) โ
| Item | Content |
|---|---|
| Aliases | qinhitems, qi |
| Syntax | qi:itemID |
| Example | qi:็ฅๅ |
| Dependency | QinhItems |
๐ Colon separator.
3๏ธโฃ MMOItems โ
| Item | Content |
|---|---|
| Aliases | mmoitems, mi |
| Syntax | mi-type-itemID (internally converted to type:itemID) |
| Example | mi-SWORD-็็ฐๅ |
| Dependency | MMOItems |
๐ Must be two segments: type + id. MMOItems items inherently carry a "type" (such as SWORD, ARMOR); neither can be omitted.
4๏ธโฃ NeigeItems (NI) โ
| Item | Content |
|---|---|
| Aliases | neigeitems, ni |
| Syntax | ni-itemID or ni-itemID::{JSON} |
| Example | ni-blade, ni-blade::{"ๅ่ดจ":"ไผ ่ฏด"} |
| Dependency | NeigeItems |
๐ NI supports passing JSON parameters after :: (such as specifying quality, random affixes, etc.).
5๏ธโฃ MythicMobs (MM) โ
| Item | Content |
|---|---|
| Aliases | mythicmobs, mm, mythic |
| Syntax | mm-itemID |
| Example | mm-้พๅ (Chinese IDs supported) |
| Dependency | MythicMobs |
6๏ธโฃ CraftEngine (CE) โ
| Item | Content |
|---|---|
| Aliases | craftengine, ce, craft-engine |
| Syntax | ce-namespace_id or ce-namespace:id |
| Example | ce-ๅ
ๅ_็ฉๅ, ce-ๅ
ๅ:็ฉๅ |
| Dependency | CraftEngine |
๐ The first underscore is automatically converted to a colon, so ce-ๅ
ๅ_็ฉๅ is equivalent to ce-ๅ
ๅ:็ฉๅ.
7๏ธโฃ CustomFishing (CF) โ
| Item | Content |
|---|---|
| Aliases | customfishing, cf |
| Syntax | cf-itemID |
| Example | cf-ๅฎ็ฎฑ |
| Dependency | CustomFishing |
8๏ธโฃ MagicGem (MG) โ
| Item | Content |
|---|---|
| Aliases | magicgem, mg, magic-gem |
| Syntax | mg-gemID |
| Example | mg-้ป็ณๅฎ็ณ |
| Dependency | MagicGem |
9๏ธโฃ ItemsAdder (IA) โ
| Item | Content |
|---|---|
| Aliases | itemsadder, ia |
| Syntax | ia-namespace_id or ia-namespace:id |
| Example | ia-ๅ
ๅ_็ฉๅ |
| Dependency | ItemsAdder |
๐ Same as CraftEngine, the first underscore is automatically converted to a colon.
๐ Nexo (NX) โ
| Item | Content |
|---|---|
| Aliases | nexo, nx |
| Syntax | nx-id or nx-namespace:id (takes the part after the colon) |
| Example | nx-่ชๅฎไนๅ |
| Dependency | Nexo |
๐ If you write nx-namespace:id, it actually takes the id part after the colon.
๐ Quick-reference master table โ
| Source | Aliases | Reference syntax | Example |
|---|---|---|---|
| Vanilla | vanilla, minecraft, mc, v, material, type | vanilla:materialName or just materialName | DIAMOND_SWORD / vanilla:STONE |
| QinhItems | qinhitems, qi | qi:itemID | qi:็ฅๅ |
| MMOItems | mmoitems, mi | mi-type-itemID | mi-SWORD-็็ฐๅ |
| NeigeItems | neigeitems, ni | ni-itemID or ni-itemID::{JSON} | ni-blade::{"ๅ่ดจ":"ไผ ่ฏด"} |
| MythicMobs | mythicmobs, mm, mythic | mm-itemID | mm-้พๅ |
| CraftEngine | craftengine, ce, craft-engine | ce-namespace_id or ce-namespace:id | ce-ๅ
ๅ:็ฉๅ |
| CustomFishing | customfishing, cf | cf-itemID | cf-ๅฎ็ฎฑ |
| MagicGem | magicgem, mg, magic-gem | mg-gemID | mg-้ป็ณๅฎ็ณ |
| ItemsAdder | itemsadder, ia | ia-namespace_id or ia-namespace:id | ia-ๅ
ๅ:็ฉๅ |
| Nexo | nexo, nx | nx-id or nx-namespace:id | nx-่ชๅฎไนๅ |
๐๏ธ A ready-to-use list of 20+ reference examples โ
Just copy and rename:
# โโ Vanilla โโ
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-ๅฝๅ็ฉบ้ด:็นๆฎ็พโ Availability and error codes โ
Each source is only available when its corresponding plugin is installed and its corresponding module is enabled; otherwise the reference fails to resolve and returns an error code:
| Error code | Meaning | What to do |
|---|---|---|
PARSE_FAILED | The reference format is written incorrectly | Check the separators (colon/dash) and the number of segments |
MATERIAL_NOT_FOUND | The vanilla material does not exist | Verify the Bukkit Material enum name (all uppercase) |
SOURCE_NOT_FOUND | The source is not registered (plugin not installed or module disabled) | Confirm the corresponding plugin is installed and the corresponding module is not disabled |
ITEM_NOT_FOUND | The source does not contain this item | Verify the item ID is correct and that it has been configured in the corresponding plugin |
๐ For the complete list of error codes see Diagnostic Codes.
๐ฉบ Diagnostic method โ
The end of /qcl status has an "Item Reference Diagnostics" item that actually tests parsing vanilla:stone.
- Diagnostic code
OKโ the item-source pipeline is working. - The summary also lists the number of registered item sources + the list, so you can confirm whether one of your sources is recognized.
๐ฉบ For a line-by-line interpretation see Diagnostics & Troubleshooting.
๐ท Who uses this reference system? โ
| Caller | Usage |
|---|---|
| QinhItems | material base item / consume item / give item |
| QCL CustomBlock | the item_sources field |
| GUI | item references in the GUI |
| Developers | ItemManagerAPI.getHookItem(ref) |
๐ Key design: After adding a source such as ItemsAdder / Nexo, all of the callers above support it automatically, with no changes required in any sub-plugin.
๐ Continue reading โ
- โก๏ธ Next: Diagnostics & Troubleshooting โ how to troubleshoot when a reference fails
- ๐ Item API โ interfaces such as
ItemManagerAPI.getHookItem(ref) - ๐ External Plugin Integration ยท Item Plugins โ integration notes for each item plugin
- ๐ Diagnostic CodesใยทใFAQ