新社交系统对接
社交系统现包括好友与组队
社交TAB界面对接,实现BaseSocialGui。
社交TAB界面利用ForgeGui框架。由你方提供数据与逻辑,客户端进行渲染。
BaseSocialGui类是针对需求对于ForgeGui的抽象实现,以方便你方开发。
示例代码
你可以主动地提供、更新数据。
public class ExampleSocialGui extends BaseSocialGui {
public ExampleSocialGui(Player viewer) {
super(viewer);
setup();
}
public void setup() {
//提供好友数据,若无可不传
getProperty().setFriends(list);
//提供组队数据,若无可不传
getProperty().setTeammates(list);
//提供未处理请求,若无可不传
getProperty().setRequests(list);
//若需要立即更新,请主动进行,以确保客户体验。
forceSynProperty();
}
@Override
public void onRequest(RequestProperty requestProperty) {
//在此进行逻辑层处理
/**
* 以下为例
* */
//情况一:客户端向服务器发出请求,请求与某好友组队
if (requestProperty.getRequestType() == SocialRequestEnum.FRIEND_REQUEST_TEAM) {
//在此,target为目标玩家UUID
String requestTarget = requestProperty.cTarget.get();
UUID targetUuid = UUID.fromString(requestTarget);
//生成新的请求,发送给目标玩家
RequestProperty applyRequest = new RequestProperty(requestProperty.cSource.get(), SocialRequestEnum.REQUEST_CLIENT_APPLY_FRIEND);
//⚠️ 在此,我们将target规范为为该请求的UUID,以便回调。可见下方回调代码。
applyRequest.cTarget.set(UUID.randomUUID().toString());
applyRequest.cExtMsg.set(目标玩家名);
//TODO 保存该请求,并发送给目标玩家
/***/
//你可以通过该方法将请求转换为Json进行保存。
applyRequest.getProperty().getCompleteJson();
/***/
//反馈
info("好友请求发出!");
}
//情况二:客户端向服务器发出请求,同意了某个请求
else if (requestProperty.getRequestType() == SocialRequestEnum.REQUEST_ACCEPT) {
//此Uuid为目标请求的回调ID
String targetRequestUuid = requestProperty.cTarget.get();
//TODO 处理请求
}
}功能接口对接,实现ISocialProvider
附加对照
Last updated
Was this helpful?