Skip to content

API 接入

Strengthen API 用于让其他插件读取强化等级、执行强化、监听强化结果或把强化数据写入自定义装备。普通强化玩法建议优先使用配置和 GUI,只有跨插件联动时才需要 API。

接入前提

yaml
softdepend:
  - EmakiStrengthen

调用方应在插件启用后获取服务,并在模块缺失时降级处理。不要假设所有服务器都安装 Strengthen。

常见能力

能力说明
读取等级获取装备当前强化等级、失败次数或保底进度。
判断可强化检查配方、材料、权限、等级上限和经济消耗。
执行强化消耗材料后更新装备强化 payload。
重建展示根据强化等级刷新 Lore、名称或属性。
监听事件在成功、失败、降级、保护触发时追加业务逻辑。

读取强化等级示例

java
ItemStack item = player.getInventory().getItemInMainHand();
int level = strengthenService.getLevel(item);
player.sendMessage("当前强化等级: +" + level);

执行强化示例

java
StrengthenResult result = strengthenService.tryStrengthen(player, item, "weapon_basic");
if (result.success()) {
    player.getInventory().setItemInMainHand(result.item());
} else {
    player.sendMessage(result.message());
}

线程安全

  • 强化会修改 ItemStack 和玩家背包,必须在主线程执行。
  • 经济、数据库记录可以异步准备,但回写装备前要切回主线程。
  • API 返回的新物品应替换原物品,避免旧引用继续被其他逻辑修改。

使用边界

  • 固定强化概率、材料和保护符:使用配方配置。
  • 玩家手动强化:使用 GUI。
  • 任务或成就监听:使用事件。
  • 需要批量迁移旧装备数据:使用 API 或专用管理命令。