任务HUD对接
任务HUD即将玩家当前任务与任务目标显示在HUD上。因此,需要频繁地(或被动地)获取玩家的任务状态来实现该功能。
一,了解接口
ITaskHudInfoProvider - 任务对接接口。
public interface ITaskHudInfoProvider extends IFunctionProvider {
/**
* 获得目标玩家的简要任务信息
* 注意!为此方法区别与ITaskInfoProvider,该方法会被频繁调用,因此需要简短且快速地获取信息。
*
* @param playerUuid 目标玩家的uuid
* @return 玩家的任务信息表
**/
List<IBriefTaskInfo> getBriefTaskInfoOf(UUID playerUuid);
}
IBriefTaskInfo - 简短任务信息接口。
public interface IBriefTaskInfo {
/**
* 获得任务名字
* */
String getTaskName();
/***
* 获得目标信息与状态,其中Key为目标信息,Value为目标状态。
*
* 注意!Key中需包含任务进度信息,例如: 击杀玩家(2/10)
* Value中为目标的进度枚举,枚举中包括 NOT_STARTED(未开始)、PROCEED(进行中)、DONE(已完成)。
*
* */
Map<String, ObjectiveStatusEnum> getObjectiveInfo();
}二,进行对接
1 创建IBriefTaskInfo
2 接口对接
3 注册接口
在此之前请完成对接指南的阅读
主动调用更新
为减少频繁调用更新造成的资源消耗,同时保证更新的实时性,该插件提供了主动调用更新。
示例代码如下
最终效果如下

Last updated
Was this helpful?