Enhanced Plugin System
Jump to navigation
Jump to search
This article describes a future concept. It may still have some open issues and it was not decided, yet, whether to implement it in this way.
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
Note: I'm sure there are more hook points...
Proposed Interface
Of course the names of the Interface and class needs to be updated. Proposed Interface
This interfaced has been already ported in git branch server_extenstions for further testing/evaluation.
See related thread at: https://sourceforge.net/projects/arianne/forums/forum/3192/topic/4453500
Notes
- Most of the plugin hook points happen a lot earlier than the plugins are initialized right now (in Stendhal). part of the change is also initialize/registering them earlier so they can hook into early parts of the life cycle like Database update.