sfs2x.client.requests
Class ChangeRoomCapacityRequest

java.lang.Object
  extended by sfs2x.client.requests.BaseRequest
      extended by sfs2x.client.requests.ChangeRoomCapacityRequest
All Implemented Interfaces:
sfs2x.client.requests.IRequest

public class ChangeRoomCapacityRequest
extends sfs2x.client.requests.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, or if the Room was configured so that capacity changing is not allowed (see the RoomSettings.permissions parameter), the roomCapacityChangeError event if fired. An administrator or moderator can override the first constrain (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.

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)); }

See Also:
SFSEvent.ROOM_CAPACITY_CHANGE, SFSEvent.ROOM_CAPACITY_CHANGE_ERROR, RoomSettings.getPermissions()

Field Summary
static java.lang.String KEY_ROOM
          *Private*
static java.lang.String KEY_SPEC_SIZE
          *Private*
static java.lang.String KEY_USER_SIZE
          *Private*
 
Fields inherited from class sfs2x.client.requests.BaseRequest
AddBuddy, AdminMessage, AutoJoin, BanUser, BlockBuddy, CallExtension, ChangeRoomCapacity, ChangeRoomName, ChangeRoomPassword, CreateRoom, CreateSFSGame, FindRooms, FindUsers, GenericMessage, GetRoomList, GoOnline, Handshake, InitBuddyList, InvitationReply, InviteUser, JoinRoom, KEY_ERROR_CODE, KEY_ERROR_PARAMS, KickUser, LeaveRoom, Login, Logout, ManualDisconnection, ModeratorMessage, ObjectMessage, PingPong, PlayerToSpectator, PrivateMessage, PublicMessage, QuickJoinGame, RemoveBuddy, SetBuddyVariables, SetRoomVariables, SetUserVariables, SpectatorToPlayer, SubscribeRoomGroup, UnsubscribeRoomGroup
 
Constructor Summary
ChangeRoomCapacityRequest(Room room, int newMaxUsers, int newMaxSpect)
          Creates a new ChangeRoomCapacityRequest instance.
 
Method Summary
 void execute(SmartFox sfs)
          *Private*
 void validate(SmartFox sfs)
          *Private*
 
Methods inherited from class sfs2x.client.requests.BaseRequest
getId, getMessage, getTargetController, isEncrypted, setEncrypted, setId, setTargetController
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_ROOM

public static final java.lang.String KEY_ROOM
*Private*

See Also:
Constant Field Values

KEY_USER_SIZE

public static final java.lang.String KEY_USER_SIZE
*Private*

See Also:
Constant Field Values

KEY_SPEC_SIZE

public static final java.lang.String KEY_SPEC_SIZE
*Private*

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; the -1 value can be passed not to change the Room.maxUsers property.
newMaxSpect - The new maximum number of spectators who can join the Room (for Game Rooms only); the -1 value can be passed not to change the Room.maxSpectators property.
See Also:
SmartFox.send(sfs2x.client.requests.IRequest), Room.getMaxUsers()
Method Detail

validate

public void validate(SmartFox sfs)
              throws sfs2x.client.exceptions.SFSValidationException
*Private*

Throws:
sfs2x.client.exceptions.SFSValidationException

execute

public void execute(SmartFox sfs)
*Private*