I want to use auto invitation of SFSGAME creation but it does not work for me , i use below code in server :
Code: Select all
public class OnInvitationRequestHandler extends BaseClientRequestHandler {
@Override
public void handleClientRequest(User user, ISFSObject isfsObject) {
Random randomGenerator = new Random();
try {
CreateSFSGameSettings setting=createGameSetting(user, isfsObject.getUtfString(Constants.FRIEND_NAME));
this.getApi().createRoom(
this.getParentExtension().getParentZone(),
setting,
user,
true, null, true, true);
SFSInvitation ss=new SFSInvitation(user,
this.getApi().getUserByName(isfsObject.getUtfString(Constants.FRIEND_NAME)),
20,setting.getInvitationParams());
} catch (SFSCreateRoomException e) {
e.printStackTrace();
}
}
private CreateSFSGameSettings createGameSetting( User user,String friend)
{
Random randomGenerator = new Random();
CreateSFSGameSettings s=new CreateSFSGameSettings();
String roomName="ss" + randomGenerator.nextInt(100) + randomGenerator.nextInt(100);
s.setName(roomName);
s.setDynamic(true);
s.setGamePublic(false);
s.setGame(true);
s.setGroupId(ConstantsMishaServerMain.BASE_GROUP_IN_THE_ZONE);
s.setMaxUsers(2);
s.setRoomSettings(
EnumSet.of(SFSRoomSettings.USER_ENTER_EVENT,
SFSRoomSettings.USER_EXIT_EVENT,
SFSRoomSettings.USER_VARIABLES_UPDATE_EVENT,
SFSRoomSettings.USER_COUNT_CHANGE_EVENT
));
s.setAutoRemoveMode(SFSRoomRemoveMode.WHEN_EMPTY_AND_CREATOR_IS_GONE);
List<RoomVariable> data=new ArrayList<RoomVariable>();
RoomVariable roomVariable= new SFSRoomVariable(ConstantsMishaServerMain.ROOM_VAR_IS_GAME_STARTED,false);
RoomVariable roomLeague= new SFSRoomVariable(ConstantsMishaServerMain.ROOM_VAR_LEAGUE,
user.getVariable(ConstantsMishaServerMain.USER_VAR_LEAGUE).getStringValue());
roomLeague.setHidden(true);
data.add(roomVariable);
data.add(roomLeague);
roomVariable.setPrivate(true);
roomVariable.setPersistent(true);
s.setRoomVariables(data);
CreateRoomSettings.RoomExtensionSettings extSetting=new CreateRoomSettings.RoomExtensionSettings(
"mishaServerMainExtension",
"com.codeanimate.mishakosha.danileaguemain.room.RoomExtension");
s.setExtension(extSetting);
s.setInvitationExpiryTime(20);
//
List<User> list1=new ArrayList<User>();
User friendUser=getApi().getUserByName(friend);
list1.add(friendUser);
s.setInvitedPlayers(list1);
ISFSObject invitationParams=new SFSObject();
invitationParams.putUtfString(Constants.FRIEND_NAME,user.getName());
s.setInvitationParams(invitationParams);
return s;
}
}
I just recieve user count change event on the invitee side