Skip to content

API 与集成

数据模型

GemState

GemState 是存储在装备 PDC 中的宝石状态数据,记录了这件装备上所有孔位的开启和镶嵌情况:

java
public record GemState(
    String itemDefinitionId,       // 装备模板 ID
    Set<Integer> openedSlotIndexes, // 已开启的孔位索引集合
    Map<Integer, GemItemInstance> socketAssignments, // 孔位 → 镶嵌的宝石实例
    long updatedAt                 // 最后更新时间戳
)

GemItemInstance

每颗镶嵌在孔位中的宝石用 GemItemInstance 表示:

java
public record GemItemInstance(
    String gemId,    // 宝石定义 ID
    int level,       // 宝石等级
    long updatedAt   // 镶嵌/升级时间戳
)

通过 PdcService 读取宝石数据

java
PdcService pdcService = EmakiServiceRegistry.get(PdcService.class);
Map<String, Object> auditMap = pdcService.readAuditMap(itemStack, "gem");

// auditMap 包含:
// - "item_definition_id": 装备模板 ID
// - "opened_slots": 已开孔索引列表
// - "socket_assignments": 孔位 → 宝石实例映射
// - "updated_at": 最后更新时间戳

PDC 数据结构

宝石数据通过 PDC 存储在装备物品上,数据跟着物品走。

字段类型说明
item_definition_idString装备模板 ID
opened_slotsList<Integer>已开启的孔位索引列表
socket_assignmentsMap孔位索引 → 宝石实例(含 gem_idlevelupdated_at
updated_atLong最后更新时间戳

Released under the GPL-3.0 License