Enhanced Plugin System: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Javydreamercsw No edit summary |
imported>Kymara add templates and navigation |
||
| (12 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{Navigation for Marauroa Top|Internals}} |
|||
{{Navigation for Marauroa Developers}} |
|||
{{Future Concept}} |
|||
== Proposal == |
== Proposal == |
||
*Move the plugin system from Stendhal into Marauroa core. |
*Move the plugin system from Stendhal into Marauroa core. |
||
| Line 16: | Line 22: | ||
*Database Update/Creation |
*Database Update/Creation |
||
**Update the database. Register/Update DAO's here as well |
**Update the database. Register/Update DAO's here as well |
||
'''Note:''' I'm sure there are more hook points... |
|||
== Proposed Interface == |
== Proposed Interface == |
||
| Line 27: | Line 35: | ||
== Notes == |
== 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. |
*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. |
||
[[Category:Marauroa]] |
|||
{{#breadcrumbs: [[Marauroa]] | [[Navigation for Marauroa Developers|Internals]] | [[Marauroa Roadmap|Roadmap]] }} |
|||
Latest revision as of 12:18, 10 May 2011
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.