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 或专用管理命令。