Skip to content

公开 API

编译依赖

xml
<repositories><repository><id>jiuwu-releases</id><url>https://repo.crypticlib.com/repository/maven-public/</url></repository></repositories>
<dependency><groupId>emaki.jiuwu.craft</groupId><artifactId>emaki-skills-api</artifactId><version>2.7.11</version><scope>provided</scope></dependency>
kotlin
repositories { maven("https://repo.crypticlib.com/repository/maven-public/") }
dependencies { compileOnly("emaki.jiuwu.craft:emaki-skills-api:2.7.11") }

仅编译依赖

runtime 已内嵌未 relocate 的 facade、模型和事件类。不要安装、bundle、shade 或 relocate API Jar;PDC codec 可独立调用也不改变此规则。

门面与分层

检查 EmakiSkillsApi.status().usable()catalog()operations()extensions() 永不为 null;installuninstallBridge 为 runtime 内部契约。

catalog() 提供技能定义、玩家技能视图、等级、已学习状态、cast mode 与最大等级判断。定义查询可任意线程;实时玩家读取需 owner thread。

Operations

当前异步施法方法名是 cast(Player,String)castByTrigger(Player,String),均返回 CompletableFuture<EmakiResult<SkillCastOutcome>>。它们可从任意线程提交,runtime 会切到玩家 owner thread 执行 Bukkit、pre/post event、资源和冷却阶段;future callback 不保证仍在 owner thread。

learnforgetforgetAllequipunequipbindTriggerupgradesetLeveladdLevelsetCastMode 均为同步玩家 owner-thread 操作。升级摇点失败是成功完成的流程,由 SkillUpgradeOutcome.successfulRoll()==false 表示,而非外层 Failure。

Extensions

  • extensions().scriptActions() 返回 SkillScriptActionRegistry
  • registerScriptAction(Plugin,SkillScriptAction) 返回 SkillActionResultunregisterScriptActions(owner) 清理 owner 的动作。
  • registerSkillSource(Plugin,SkillSourceProvider) 返回 SkillSourceRegistration;同 owner/provider id 的新注册替换旧注册,关闭陈旧 handle 不会删掉替代项,并在 owner disable 时自动清理。

SkillScriptAction 描述 id、参数、校验、执行模式、timeout 与可取消执行阶段;异步 I/O 模式不得直接触碰 Bukkit 状态。EquipmentSkillPdcCodec 提供底层 payload read/write/copy/clear,实时装备仍受 owner-thread 约束。

结果语义

无负载成功使用 EmakiResult<Unit>;可选负载使用 optionalValue()FailureKind 精确为 UNAVAILABLENOT_FOUNDINVALID_INPUTREJECTEDCANCELLEDTARGET_OFFLINEWRONG_THREADINTERNAL_ERRORSkillActionResult 是独立动作结果,不等同 EmakiResult