Class SFSMMOApi

    • Field Detail

      • log

        protected final org.slf4j.Logger log
      • sfsAPI

        protected final SFSApi sfsAPI
      • mmoResponseApi

        protected final com.smartfoxserver.v2.api.response.ISFSMMOResponseApi mmoResponseApi
    • Method Detail

      • getResponseAPI

        public com.smartfoxserver.v2.api.response.ISFSMMOResponseApi getResponseAPI()
        Specified by:
        getResponseAPI in interface ISFSMMOApi
      • sendObjectMessage

        public void sendObjectMessage​(Room targetRoom,
                                      User sender,
                                      ISFSObject message,
                                      Vec3D aoi)

        Send an Object message based on a custom SFSObject that can contain any data. Typically this is used for sending game moves to players or other game related updates.

        The difference with the regular version of this Request is that it works with a custom Area Of Interest (AOI) inside an MMORoom. Instead of using the default Room AOI here we can specify a custom AOI which should be smaller that the default one. Attempting to use a larger AOI is not possible.

        NOTE: The sender must be joined in the target MMORoom.

        Specified by:
        sendObjectMessage in interface ISFSMMOApi
        Parameters:
        targetRoom - the MMORoom
        sender - the sender of the Object
        message - the data
        aoi - the custom Area Of Interest (AOI)
      • sendPublicMessage

        public void sendPublicMessage​(Room targetRoom,
                                      User sender,
                                      java.lang.String message,
                                      ISFSObject params,
                                      Vec3D aoi)
        Sends a public chat message.

        The difference with the regular version of this Request is that it works with a custom Area Of Interest (AOI) inside an MMORoom. Instead of using the default Room AOI here we can specify a custom AOI which should be smaller that the default one. Attempting to use a larger AOI is not possible.

        Specified by:
        sendPublicMessage in interface ISFSMMOApi
        Parameters:
        targetRoom - the MMORoom
        sender - the sender of the Message
        message - the chat message
        params - an optional data object (e.g. to define font and color of the message)
        aoi - the custom Area Of Interest (AOI)
      • setUserPosition

        public void setUserPosition​(User user,
                                    Vec3D pos,
                                    Room targetRoom)
        Set the new User position inside an MMORoom
        Specified by:
        setUserPosition in interface ISFSMMOApi
        Parameters:
        user - The User
        pos - The new position
        targetRoom - The target MMORoom
        See Also:
        MMORoom
      • setMMOItemPosition

        public void setMMOItemPosition​(BaseMMOItem item,
                                       Vec3D pos,
                                       Room targetRoom)
        Set or update an MMOItem inside an MMORoom
        Specified by:
        setMMOItemPosition in interface ISFSMMOApi
        Parameters:
        item - the MMOItem
        pos - the position in 2D/3D space
        targetRoom - the target MMORoom
        See Also:
        MMORoom, MMOItem
      • removeMMOItem

        public void removeMMOItem​(BaseMMOItem item)
        Remove an MMOItem from an MMORoom. (The Room is not required as the system already keeps track of which MMOItem belongs to which MMORoom) This in turn will affect all Users who had this MMOItem in their AOI via a client side PROXIMITY_LIST_UPDATE
        Specified by:
        removeMMOItem in interface ISFSMMOApi
        Parameters:
        item - the MMOItem to remove
        See Also:
        MMORoom, MMOItem
      • setMMOItemVariables

        public void setMMOItemVariables​(BaseMMOItem item,
                                        java.util.List<IMMOItemVariable> variables)
        Set MMOItemVariables. Only the changed variables are broadcast to the Users that can "see" the MMOItem in the MMORoom. In order to delete a variable you can set it to null.
        Specified by:
        setMMOItemVariables in interface ISFSMMOApi
        Parameters:
        item - the MMOItem, owner of the variables
        variables - the variables
        See Also:
        MMOItemVariable, MMOItem, MMORoom
      • setMMOItemVariables

        public void setMMOItemVariables​(BaseMMOItem item,
                                        java.util.List<IMMOItemVariable> variables,
                                        boolean fireClientEvent)
        Set MMOItemVariables. Only the changed variables are broadcast to the Users that can "see" the MMOItem in the MMORoom. In order to delete a variable you can set it to null.
        Specified by:
        setMMOItemVariables in interface ISFSMMOApi
        Parameters:
        item - the MMOItem, owner of the variables
        variables - the variables
        fireClientEvent - set to true to send an update to clients
        See Also:
        MMOItemVariable, MMOItem, MMORoom