Class ChangeRoomCapacityRequest
- java.lang.Object
-
- sfs2x.client.requests.BaseRequest
-
- sfs2x.client.requests.ChangeRoomCapacityRequest
-
- All Implemented Interfaces:
sfs2x.client.requests.IRequest
public class ChangeRoomCapacityRequest extends BaseRequest
Changes the maximum number of users and/or spectators who can join a Room.If the operation is successful, the roomCapacityChange event is dispatched to all the users who subscribed the Group to which the target Room belongs, including the requester user himself. If the user is not the creator (owner) of the Room the roomCapacityChangeError event is fired. An administrator or moderator can override this constraint (he is not requested to be the Room's owner).
In case the Room's capacity is reduced to a value less than the current number of users/spectators inside the Room, exceeding users are NOT disconnected.
If the Room was configured so that resizing is not allowed (see the RoomSettings.permissions parameter), the request is ignored and no error is fired.
Also note that some restrictions are applied to the passed values (i.e. a client can't set the max users to more than 200, or the max spectators to more than 32).
Example
The following example changes the capacity of an existing Room:private void someMethod() { sfs.addEventListener(SFSEvent.ROOM_CAPACITY_CHANGE, new IEventListener() { public void dispatch(BaseEvent evt) throws SFSException { System.out.println("The capacity of Room " + ((Room)evt.getArguments().get("room")).getName() + " was changed successfully"); } }); sfs.addEventListener(SFSEvent.ROOM_CAPACITY_CHANGE_ERROR, new IEventListener() { public void dispatch(BaseEvent evt) throws SFSException { System.out.println("Room capacity change failed: " + evt.getArguments().get("errorMessage")); } }); Room theRoom = sfs.getRoomByName("Gonzo's Room"); // Resize the Room so that it allows a maximum of 100 users and zero spectators sfs.send(new ChangeRoomCapacityRequest(theRoom, 100, 0)); }
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
KEY_ROOM
* API internal usage only *static java.lang.String
KEY_SPEC_SIZE
* API internal usage only *static java.lang.String
KEY_USER_SIZE
* API internal usage only *-
Fields inherited from class sfs2x.client.requests.BaseRequest
AddBuddy, AdminMessage, AutoJoin, BanUser, BlockBuddy, CallExtension, ChangeRoomCapacity, ChangeRoomName, ChangeRoomPassword, ClusterInviteUsers, ClusterJoinOrCreate, CreateRoom, CreateSFSGame, FindRooms, FindUsers, GameServerConnectionRequired, GenericMessage, GetRoomList, GoOnline, Handshake, InitBuddyList, InvitationReply, InviteUser, JoinRoom, JoinRoomInvite, KEY_ERROR_CODE, KEY_ERROR_PARAMS, KickUser, LeaveRoom, Login, Logout, ManualDisconnection, ModeratorMessage, ObjectMessage, PingPong, PlayerToSpectator, PrivateMessage, PublicMessage, QuickJoinGame, QuickJoinOrCreateRoom, RemoveBuddy, SetBuddyVariables, SetRoomVariables, SetUserPosition, SetUserVariables, SpectatorToPlayer, SubscribeRoomGroup, UnsubscribeRoomGroup
-
-
Constructor Summary
Constructors Constructor Description ChangeRoomCapacityRequest(Room room, int newMaxUsers, int newMaxSpect)
Creates a new ChangeRoomCapacityRequest instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute(ISmartFox sfs)
* API internal usage only *void
validate(ISmartFox sfs)
* API internal usage only *-
Methods inherited from class sfs2x.client.requests.BaseRequest
getId, getMessage, getTargetController, isEncrypted, setEncrypted, setId, setTargetController
-
-
-
-
Field Detail
-
KEY_ROOM
public static final java.lang.String KEY_ROOM
* API internal usage only *- See Also:
- Constant Field Values
-
KEY_USER_SIZE
public static final java.lang.String KEY_USER_SIZE
* API internal usage only *- See Also:
- Constant Field Values
-
KEY_SPEC_SIZE
public static final java.lang.String KEY_SPEC_SIZE
* API internal usage only *- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ChangeRoomCapacityRequest
public ChangeRoomCapacityRequest(Room room, int newMaxUsers, int newMaxSpect)
Creates a new ChangeRoomCapacityRequest instance. The instance must be passed to the SmartFox.send() method for the request to be performed.- Parameters:
room
- The Room object corresponding to the Room whose capacity should be changed.newMaxUsers
- The new maximum number of users/players who can join the Room;newMaxSpect
- The new maximum number of spectators who can join the Room (for Game Rooms only);- See Also:
SmartFox.send(sfs2x.client.requests.IRequest)
,Room.getMaxUsers()
-
-