Class RPRuleProcessorImpl

java.lang.Object
marauroa.server.game.rp.RPRuleProcessorImpl
All Implemented Interfaces:
IRPRuleProcessor

public class RPRuleProcessorImpl extends Object implements IRPRuleProcessor
a default implementation of RPRuleProcessorImpl
  • Field Details

  • Constructor Details

    • RPRuleProcessorImpl

      public RPRuleProcessorImpl()
  • Method Details

    • get

      public static IRPRuleProcessor get()
      gets the Rule singleton object
      Returns:
      Rule
    • setContext

      public void setContext(RPServerManager rpman)
      Set the context where the actions are executed.
      Specified by:
      setContext in interface IRPRuleProcessor
      Parameters:
      rpman - the RPServerManager object that is running our actions
    • checkGameVersion

      public boolean checkGameVersion(String game, String version)
      Returns true if the version of the game is compatible
      Specified by:
      checkGameVersion in interface IRPRuleProcessor
      Parameters:
      game - the game name
      version - the game version
      Returns:
      true, if the game and version is compatible
    • onTimeout

      public void onTimeout(RPObject object)
      Callback method called when a new player time out. This method MUST logout the player
      Specified by:
      onTimeout in interface IRPRuleProcessor
      Parameters:
      object - the new player that timeouts.
      Throws:
      RPObjectNotFoundException - if the object was not found
    • onExit

      public boolean onExit(RPObject object)
      Callback method called when a player exits the game
      Specified by:
      onExit in interface IRPRuleProcessor
      Parameters:
      object - the new player that exits the game.
      Returns:
      true to allow player to exit
      Throws:
      RPObjectNotFoundException - if the object was not found
    • onInit

      public boolean onInit(RPObject object)
      Callback method called when a new player enters in the game
      Specified by:
      onInit in interface IRPRuleProcessor
      Parameters:
      object - the new player that enters in the game.
      Returns:
      true if object has been added.
      Throws:
      RPObjectInvalidException - if the object was not accepted
    • beginTurn

      public void beginTurn()
      Notify it when a begin of actual turn happens.
      Specified by:
      beginTurn in interface IRPRuleProcessor
    • onActionAdd

      public boolean onActionAdd(RPObject caster, RPAction action, List<RPAction> actionList)
      This method is called *before* adding an action by RPScheduler so you can choose not to allow the action to be added by returning false
      Specified by:
      onActionAdd in interface IRPRuleProcessor
      Parameters:
      caster - the object that casted the action
      action - the action that is going to be added.
      actionList - the actions that this player already owns.
      Returns:
      true if we approve the action to be added.
    • endTurn

      public void endTurn()
      Notify it when a end of actual turn happens.
      Specified by:
      endTurn in interface IRPRuleProcessor
    • execute

      public void execute(RPObject caster, RPAction action)
      Execute an action in the name of a player.
      Specified by:
      execute in interface IRPRuleProcessor
      Parameters:
      caster - the object that executes
      action - the action to execute
    • createAccount

      public AccountResult createAccount(String username, String password, String email)
      Creates an account for the game
      Specified by:
      createAccount in interface IRPRuleProcessor
      Parameters:
      username - the username who is going to be added.
      password - the password for our username.
      email - the email of the player for notifications or password reminders.
      Returns:
      the Result of creating the account.
    • createAccountWithToken

      public AccountResult createAccountWithToken(String username, String tokenType, String token)
      Create an account for a player in game. Uses token instead of password for cases like 3rd party authentication (e.g. google sign-in).
      Specified by:
      createAccountWithToken in interface IRPRuleProcessor
      Parameters:
      username - username for a new account
      tokenType - token type
      token - auth token to verify, usually obtained from 3rd party
      Returns:
      the Result of creating a new account
    • createCharacter

      public CharacterResult createCharacter(String username, String character, RPObject template)
      Creates an new character for an account already logged into the game
      Specified by:
      createCharacter in interface IRPRuleProcessor
      Parameters:
      username - the username who owns the account of the character to be added.
      character - the character to create
      template - the desired values of the avatar representing the character.
      Returns:
      the Result of creating the character.
    • createCharacterObject

      protected RPObject createCharacterObject(String username, String character, RPObject template)
      Creates an new character object that will used by createCharacter
      Parameters:
      username - the username who owns the account of the character to be added.
      character - the character to create
      template - the desired values of the avatar representing the character.
      Returns:
      RPObject
    • getMimeTypeForResource

      public String getMimeTypeForResource(String resource)
      gets the content type for the requested resource
      Specified by:
      getMimeTypeForResource in interface IRPRuleProcessor
      Parameters:
      resource - name of resource
      Returns:
      mime content/type or null
    • getResource

      public InputStream getResource(String resource)
      gets an input stream to the requested resource
      Specified by:
      getResource in interface IRPRuleProcessor
      Parameters:
      resource - name of resource
      Returns:
      InputStream or null