Class GoOnlineRequest

  extended by sfs2x.client.requests.BaseRequest
      extended by sfs2x.client.requests.buddylist.GoOnlineRequest
All Implemented Interfaces:

public class GoOnlineRequest
extends BaseRequest

Toggles the current user's online/offline state as buddy in other users' buddies lists.

All clients who have the current user as buddy in their buddies list will receive the buddyOnlineStateChange event and see the Buddy.isOnline property change accordingly. The same event is also dispatched to the current user, who sent the request, so that the application interface can be updated accordingly. Going online/offline as buddy doesn't affect the user connection, the currently joined Zone and Rooms, etc.

The online state of a user in a buddy list is handled by means of a reserved and persistent Buddy Variable.

NOTE: this request can be sent if the Buddy List system was previously initialized only (see the InitBuddyListRequest request description).

The following example changes the user online state in the Buddy List system:

 private void someMethod() {
     sfs.addEventListener(SFSBuddyEvent.BUDDY_ONLINE_STATE_UPDATE, new IEventListener() {
         public void dispatch(BaseEvent evt) throws SFSException {
             // As the state change event is dispatched to me too,
             // I have to check if I am the one who changed his state
             boolean isItMe = (Boolean) evt.getArguments().get("isItMe");
             if (isItMe)
                 System.out.println("I'm now" + (sfs.getBuddyManager().getMyOnlineState() ? "online" : "offline"));
                 System.out.println("My buddy " + ((Buddy)evt.getArguments().get("buddy")).getName() + " is now" + (((Buddy)evt.getArguments().get("buddy")).isOnline() ? "online" : "offline" ));
     // Put myself offline in the Buddy List system
     sfs.send(new GoOnlineRequest(false));

See Also:
IBuddyManager.getMyOnlineState(), Buddy.isOnline(), SFSBuddyEvent.BUDDY_ONLINE_STATE_UPDATE, InitBuddyListRequest

Field Summary
static java.lang.String KEY_BUDDY_ID
          * API internal usage only *
static java.lang.String KEY_BUDDY_NAME
          * API internal usage only *
static java.lang.String KEY_ONLINE
          * API internal usage only *
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, JoinRoomInvite, KEY_ERROR_CODE, KEY_ERROR_PARAMS, KickUser, LeaveRoom, Login, Logout, ManualDisconnection, ModeratorMessage, ObjectMessage, PingPong, PlayerToSpectator, PrivateMessage, PublicMessage, QuickJoinGame, RemoveBuddy, SetBuddyVariables, SetRoomVariables, SetUserPosition, SetUserVariables, SpectatorToPlayer, SubscribeRoomGroup, UnsubscribeRoomGroup
Constructor Summary
GoOnlineRequest(boolean online)
          Creates a new GoOnlineRequest instance.
Method Summary
 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
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


public static final java.lang.String KEY_ONLINE
* API internal usage only *

See Also:
Constant Field Values


public static final java.lang.String KEY_BUDDY_NAME
* API internal usage only *

See Also:
Constant Field Values


public static final java.lang.String KEY_BUDDY_ID
* API internal usage only *

See Also:
Constant Field Values
Constructor Detail


public GoOnlineRequest(boolean online)
Creates a new GoOnlineRequest instance. The instance must be passed to the SmartFox.send() method for the request to be performed.

online - true to make the current user available (online) in the Buddy List system; false to make him not available (offline).
See Also:
Method Detail


public void validate(ISmartFox sfs)
              throws sfs2x.client.exceptions.SFSValidationException
* API internal usage only *



public void execute(ISmartFox sfs)
             throws com.smartfoxserver.v2.exceptions.SFSException
* API internal usage only *