Class BuddyMessageRequest

  • All Implemented Interfaces:
    sfs2x.client.requests.IRequest

    public class BuddyMessageRequest
    extends sfs2x.client.requests.GenericMessageRequest
    Sends a message to a buddy in the current user's buddies list.

    Messages sent to buddies using the BuddyMessageRequest request are similar to the standard private messages (see the PrivateMessageRequest request) but are specifically designed for the Buddy List system: they don't require any Room parameter, nor they require that users joined a Room. Additionally, buddy messages are subject to specific validation, such as making sure that the recipient is in the sender's buddies list and the sender is not blocked by the recipient.

    If the operation is successful, a buddyMessage event is dispatched in both the sender and recipient clients.

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

    Example
    The following example sends a message to a buddy and handles the related event:

     private void someMethod() {
         sfs.addEventListener(SFSBuddyEvent.BUDDY_MESSAGE, new IEventListener() {
             public void dispatch(BaseEvent evt) throws SFSException {
                 // As messages are forwarded to the sender too,
                 // I have to check if I am the sender
                 boolean isItMe = (Boolean)evt.getArguments().get("isItMe");
                 Buddy sender = (Buddy)evt.getArguments().get("buddy");
                 
                 if (isItMe)
                     System.out.println("I said:" + evt.getArguments().get("message"));
                 else
                     System.out.println("My buddy " + sender.getName() + " said:" + evt.getArguments().get("message"));
             }
         });
         
         // Get the recipient of the message, in this case my buddy Jack
         Buddy buddy = sfs.getBuddyManager().getBuddyByName("Jack");
         
         // Send a message to Jack
         sfs.send(new BuddyMessageRequest("Hello Jack!", buddy));
     }
     
    See Also:
    SFSBuddyEvent.BUDDY_MESSAGE, InitBuddyListRequest
    • Constructor Detail

      • BuddyMessageRequest

        public BuddyMessageRequest​(java.lang.String message,
                                   Buddy targetBuddy,
                                   com.smartfoxserver.v2.entities.data.ISFSObject params)
        Creates a new BuddyMessageRequest instance. The instance must be passed to the SmartFox.send() method for the request to be performed.
        Parameters:
        message - The message to be sent to a buddy.
        targetBuddy - The Buddy object corresponding to the message recipient.
        params - An instance of SFSObject containing additional custom parameters (e.g. the message color, an emoticon id, etc).
        See Also:
        SmartFox.send(sfs2x.client.requests.IRequest), SFSObject