Skip to content
iPlugin

导航 API

提供管理玩家导航、追踪任务目标位置、以及导航系统生命周期的功能

导航管理

这些方法用于创建、更新和销毁玩家的导航

创建或更新导航

为玩家创建或更新一个导航,使其追踪特定的任务目标

fun createOrUpdateNavigation(player: Player, objectiveEntity: ObjectiveEntity)
fun createOrUpdateNavigation(player: Player, questEntity: QuestEntity)

参数:

  • player: 要创建或更新导航的玩家实例
  • objectiveEntity: 要追踪的目标数据实体
  • questEntity: 要追踪的任务数据实体

功能:

  • 根据提供的任务或目标数据,为玩家创建或更新一个导航如果玩家已有导航,系统会更新它;如果没有,则会创建一个新的

恢复导航

恢复玩家的导航,此操作仅在内存中进行,不会写入数据库

fun restoreNavigation(player: Player, navigationEntity: NavigationEntity)

参数:

  • player: 玩家实例
  • navigationEntity: 导航数据实体

功能:

  • 将数据库中的导航数据加载到内存中,常用于玩家上线时恢复上次的导航状态

销毁导航

销毁玩家的指定导航,使其停止追踪

fun destroyNavigation(player: Player, objectiveEntity: ObjectiveEntity)
fun destroyNavigation(player: Player, questEntity: QuestEntity)
fun destroyNavigation(player: Player, questId: String)

参数:

  • player: 玩家实例
  • objectiveEntity: 要销毁的目标数据实体
  • questEntity: 要销毁的任务数据实体
  • questId: 任务的唯一标识符

功能:

  • 销毁玩家对特定目标或任务的导航追踪

停止导航

停止玩家的所有导航通常用于玩家下线或退出游戏时

fun stopNavigation(player: Player)

参数:

  • player: 玩家实例

功能:

  • 清除玩家的所有导航数据,使其停止任何追踪行为

导航状态查询

这些方法用于查询玩家当前的导航状态

获取当前导航列表

获取玩家当前正在进行的所有导航上下文

fun getActiveNavigations(player: Player): List<NavigationContext>

参数:

  • player: 玩家实例

返回:

  • 返回一个包含 NavigationContext 实例的列表

构建导航上下文

根据目标数据实体构建导航上下文

fun buildNavigationContext(player: Player, objectiveEntity: ObjectiveEntity): NavigationContext?

参数:

  • player: 玩家实例
  • objectiveEntity: 目标数据实体

返回:

  • 返回对应的导航上下文 NavigationContext,如果无法构建则返回 null

导航渲染器

这些方法用于管理导航的渲染方式,允许开发者自定义导航的显示效果

注册渲染器

注册一个或多个自定义导航渲染器

fun registerRenderer(vararg renderer: NavigationRenderer)

参数:

  • renderer: 一个或多个实现了 NavigationRenderer 接口的实例

获取渲染器

根据 ID 获取已注册的导航渲染器

fun getRenderer(rendererId: String? = null): NavigationRenderer?

参数:

  • rendererId: 渲染器的唯一标识符,默认为 null

返回:

  • 返回对应的 NavigationRenderer 实例

导航系统生命周期

这些方法用于管理整个导航系统的生命周期

启动导航系统

启动导航系统的后台任务和功能

fun start()

关闭导航系统

关闭导航系统的所有后台任务和功能

fun shutdown()