跳转到主要内容
mod kernel 的服务注册表按优先级排序。通过注册优先级高于 Aether 内置实现的服务,你的 Native Mod 会成为该服务 ID 的活跃实现。移除你的注册后,会自动恢复下一较低优先级的实现。

API

onLoad 中调用 context.registerService()
AetherModServiceHandler 是带有一个 suspend 方法的 fun interface

优先级规则

Aether 核心服务使用刻意较低的优先级,以便 Native Mods 用标准优先级值即可覆盖它们。使用优先级 500 可可靠覆盖任意内置服务。移除你的注册(调用返回的清理 lambda)会恢复下一较低优先级的实现,可能是其他 mod 的注册,也可能是 Aether 内置实现。

示例 — 覆盖 skills 服务

以下 mod 将自身注册为 skills 服务的活跃实现,并返回空 skill 列表:
MyNativeMod.kt
context.registerService() 返回清理 lambda。若需要在运行时注销服务,请自行保留并调用它;当前 Native Mod 管理器不会调用 onUnload

内置服务

以下服务由 Aether 核心注册:

skills

有效的 scope 值:currentdefault / globalboth / current_and_default

state

你可以从 Native Mod 暴露全新服务 — 而不仅是覆盖现有服务。其他扩展通过 aether.services.list() 发现它们,并通过 aether.services.invoke() 调用。