多物品源支持
EMC 高级商店内置 32 种物品源,可在商店配置中直接使用来自各种第三方插件的自定义物品,无需硬依赖——全部通过反射实现,按需对接。
物品格式
在所有商店配置的 material 字段中,使用 源:物品ID 格式引用物品:
items:
# 原版物品(可省略 Minecraft: 前缀)
diamond_sword:
material: DIAMOND_SWORD
buy-price: 250.0
# MythicMobs 物品
skeleton_sword:
material: MythicMobs:SkeletonKingSword
buy-price: 5000.0
# ItemsAdder 物品
custom_gem:
material: ItemsAdder:custom_namespace:ruby_gem
buy-price: 1000.0
# MMOItems 物品
excalibur:
material: MMOItems:SWORD:EXCALIBUR
buy-price: 10000.0
# 带 data 值的旧版物品
lapis:
material: INK_SACK
data: 4
display-name: "青金石"
buy-price: 8.0
32 种物品源一览
原版与通用
| # | 源 ID | 插件名 | 说明 |
|---|---|---|---|
| 1 | Minecraft | — | 原版物品,可省略前缀直接写 Material 名 |
怪物/RPG 物品插件
| # | 源 ID | 插件名 | 说明 |
|---|---|---|---|
| 2 | MythicMobs | MythicMobs | MythicMobs 自定义物品 |
| 3 | Zaphkiel | Zaphkiel | Zaphkiel 物品系统 |
| 4 | MMOItems | MMOItems | MMOItems 物品(格式 MMOItems:TYPE:ID) |
| 5 | SX-Item | SX-Item | SX-Item 物品 |
| 6 | MagicGem | MagicGem | MagicGem 宝石物品 |
| 7 | Ratziel | Ratziel | Ratziel 物品系统 |
| 8 | PxRpg | PxRPG | PxRPG 物品 |
自定义物品插件
| # | 源 ID | 插件名 | 说明 |
|---|---|---|---|
| 9 | ItemsAdder | ItemsAdder | ItemsAdder 自定义物品 |
| 10 | Oraxen | Oraxen | Oraxen 自定义物品 |
| 11 | Nexo | Nexo | Nexo 物品系统 |
| 12 | NeigeItems | NeigeItems | NeigeItems 物品 |
| 13 | Nova | Nova | Nova 物品系统 |
| 14 | CraftEngine | CraftEngine | CraftEngine 物品 |
| 15 | ExecutableItems | ExecutableItems | ExecutableItems 可执行物品 |
| 16 | Slimefun | Slimefun | Slimefun 科技物品(兼容新旧版 API) |
| 17 | HeadDatabase | HeadDatabase | HeadDatabase 自定义头颅 |
| 18 | CustomFishing | CustomFishing | CustomFishing 钓鱼物品 |
装饰/外观插件
| # | 源 ID | 插件名 | 说明 |
|---|---|---|---|
| 19 | DragonArmourers | DragonArmourers | 龙之盔甲师外观物品 |
| 20 | HMCCosmetics | HMCCosmetics | HMC 装饰物品 |
| 21 | Sertraline | Sertraline | Sertraline 物品 |
| 22 | AzureFlow | AzureFlow | AzureFlow 物品 |
| 23 | Repository | Repository | Repository 物品仓库 |
Eco 生态系列
| # | 源 ID | 插件名 | 说明 |
|---|---|---|---|
| 24 | EcoArmor | EcoArmor | Eco 护甲 |
| 25 | EcoCrates | EcoCrates | Eco 箱子 |
| 26 | EcoItems | EcoItems | Eco 物品 |
| 27 | EcoMobs | EcoMobs | Eco 怪物掉落 |
| 28 | EcoPets | EcoPets | Eco 宠物 |
| 29 | EcoScrolls | EcoScrolls | Eco 卷轴 |
| 30 | Reforges | Reforges | Eco 重铸 |
| 31 | StatTrackers | StatTrackers | Eco 统计追踪器 |
| 32 | Talismans | Talismans | Eco 护身符 |
技术实现
插件启动时自动检测服务器上已安装的插件,对接可用的物品源。无需在 plugin.yml 中添加依赖——所有物品源均通过 Java 反射动态加载,不存在编译时依赖。
启动日志示例:
[物品源] 已对接: Minecraft (Minecraft)
[物品源] 已对接: MythicMobs (MythicMobs)
[物品源] 已对接: ItemsAdder (ItemsAdder)
[物品源] 共注册 32 种物品源, 当前可用 3 种
反射调用链
对于大多数插件,物品获取通过通用反射源 ReflectiveSource 实现,调用链示例:
MythicBukkit.inst().getItemManager().getItemStack("itemId")
部分插件(ItemsAdder、Oraxen、MMOItems、Slimefun、HeadDatabase 等)由于 API 差异较大,使用专用的物品源实现类。
配置示例
官方商店中使用 MythicMobs 物品
# shops/admin-shop.yml
categories:
mythic-weapons:
name: "&c神话武器"
icon: DIAMOND_SWORD
slot: 25
items:
skeleton_sword:
material: MythicMobs:SkeletonKingSword
display-name: "&c骷髅王之剑"
buy-price: 5000.0
sell-price: -1
daily-limit: 1
官方商店中使用 ItemsAdder 物品
ruby:
material: ItemsAdder:custom_items:ruby
display-name: "&c红宝石"
buy-price: 2000.0
sell-price: 1000.0
官方商店中使用 Slimefun 物品
electric_motor:
material: Slimefun:ELECTRIC_MOTOR
display-name: "&e电动马达"
buy-price: 500.0
sell-price: 200.0
注意事项
- 物品源 ID 不区分大小写(
MythicMobs和mythicmobs均可) - 如果对应插件未安装,该物品源自动标记为不可用,不会报错
- 带 data 值的旧版原版物品使用
Material:data格式(如WOOL:14)或配合data字段 - 所有商店模块(官方商店、每日商店、黑市、转盘奖品等)均支持多物品源格式