Class PythonRPRuleProcessor

java.lang.Object
marauroa.server.game.python.PythonRPRuleProcessor
All Implemented Interfaces:
IRPRuleProcessor

public class PythonRPRuleProcessor extends Object implements IRPRuleProcessor
Python implementation of IRPRuleProcessor. You can't inherit directly IRPRuleProcessor, so you need to inherit in your Python code the PythonRPRuleProcessor class. You should set ruleprocessor in server.ini to this class.
Author:
miguel
See Also:
IRPRuleProcessor
  • Constructor Details

    • PythonRPRuleProcessor

      public PythonRPRuleProcessor()
      Constructor
  • Method Details

    • setContext

      public void setContext(RPServerManager rpman)
      Set the context where the actions are executed.
      Specified by:
      setContext in interface IRPRuleProcessor
      Parameters:
      rpman - the RP Manager object
    • beginTurn

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

      public boolean checkGameVersion(String game, String version)
      Description copied from interface: IRPRuleProcessor
      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 game,version is compatible
    • createAccount

      public AccountResult createAccount(String username, String password, String email)
      Description copied from interface: IRPRuleProcessor
      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)
      Description copied from interface: IRPRuleProcessor
      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 for useful data about token
      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)
      Description copied from interface: IRPRuleProcessor
      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.
    • endTurn

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

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

      public boolean onActionAdd(RPObject object, RPAction action, List<RPAction> actionList)
      Description copied from interface: IRPRuleProcessor
      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:
      object - 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.
    • onExit

      public boolean onExit(RPObject object) throws RPObjectNotFoundException
      Description copied from interface: IRPRuleProcessor
      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) throws RPObjectInvalidException
      Description copied from interface: IRPRuleProcessor
      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
    • onTimeout

      public void onTimeout(RPObject object) throws RPObjectNotFoundException
      Description copied from interface: IRPRuleProcessor
      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
    • getMimeTypeForResource

      public String getMimeTypeForResource(String resource)
      Description copied from interface: IRPRuleProcessor
      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)
      Description copied from interface: IRPRuleProcessor
      gets an input stream to the requested resource
      Specified by:
      getResource in interface IRPRuleProcessor
      Parameters:
      resource - name of resource
      Returns:
      InputStream or null