Enhanced Plugin System
Proposal
- Move the plugin system from Stendhal into Marauroa core.
- Provide hook system for the plugins to interact with Marauroa life cycle
Identified hook points
- Object added to Zone
- Query the extension to plug in any action when an object is added to a zone
- Object removed from Zone
- Query the extension to plug in any action when an object is removed from a zone
- Perception Generation
- Query the extension to plug in any changes to the perception of an object
- Client Object definition
- Plug into the definition of the client class
- After RPWorld is initialized
- Action to perform after the world is initialized (all classes are defined)
- Database Update/Creation
- Update the database. Register/Update DAO's here as well
Proposed Interface
Of course the names of the Interface and class needs to be updated. Proposed Interface