在登录时注册用户的差异

时间:2016-02-29 04:26:33

标签: unity3d smartfoxserver

我使用Unity3D和SmartFoxServer开发多人游戏。

我希望玩家可以注册(我使用SmartFoxServer的注册帮助),这样他们就可以登录游戏了。而且,他们可以扮演嘉宾球员的角色。

我在管理员中启用了此功能,但是当我在客户端中创建LoginRequest时,如果用户不存在(或密码错误),我以Guest身份登录。

我需要一个注册用户登录命令和一个访客玩家登录命令,或者告诉SmartFoxServer注册用户登录和访客登录之间的区别。有一些内置的解决方案吗?

1 个答案:

答案 0 :(得分:0)

这是一种做法。

为登录事件实现自定义处理程序

//Inside your main extension
addEventHandler(SFSEventType.USER_LOGIN, UserLoginEventHandler.class);
public class UserLoginEventHandler extends BaseServerEventHandler{

@Override
public void handleServerEvent(ISFSEvent event) throws SFSException {

String loginName = (String) event.getParameter(SFSEventParam.LOGIN_NAME);

//send a blank username as login for guest, smartfox will create a guest user for you
if(loginName.isEmpty(''))
return 

//Authenticate your registered user here

if(...isNot Authenticated..)
{
SFSErrorData errData = new SFSErrorData(SFSErrorCode.LOGIN_BAD_USERNAME);
errData.addParameter(loginName);
// Fire a Login exception
throw new SFSLoginException("UserName/password not correct", errData);
}
}
}