Skip to content

API

EmakiItem 对外提供物品创建、识别和查询能力。其他插件可通过 Bukkit ServicesManager 获取 EmakiItemApi 实例。

EmakiItemApi 接口

方法返回值说明
exists(String id)boolean检查物品 ID 是否已加载。
create(String id, int amount)ItemStack根据物品 ID 创建 ItemStack。返回 null 表示 ID 不存在。
identify(ItemStack itemStack)String识别物品的 EmakiItem ID。返回 null 表示不是 EmakiItem 物品。
definitionIds()Set<String>获取所有已加载的物品 ID 集合。
displayName(String id)String获取物品的显示名(纯文本,不含 MiniMessage 标签)。

获取方式

java
RegisteredServiceProvider<EmakiItemApi> provider =
    Bukkit.getServicesManager().getRegistration(EmakiItemApi.class);
if (provider != null) {
    EmakiItemApi api = provider.getProvider();
    // 使用 api
}

接入建议

  • 在插件 onEnable 之后再查询服务,确保 EmakiItem 已加载。
  • 查询不到服务时降级运行,不要让 softdepend 模块直接崩溃。
  • create 返回的 ItemStack 是全新实例,已包含所有 PDC 数据和展示。
  • identify 通过 PDC 中的 emakiitem:id 标记识别,不依赖 Lore 或名称。