esoTalk gamma contains a powerful new plugin architecture which will make developing plugins easier and more flexible. There are three main ways that plugins can extend the esoTalk core:
- Add event handlers that are called when an event is triggered (aka. hooks.)
- Create or override controller methods.
- Override core classes by registering substitutes in a factory object.
Currently there is no documentation on plugin development, but it is high on my priority list to get this done. In the meantime, I encourage you to look at the two plugins that come with gamma (BBCode and Debug) to get a bit of an idea as to how the plugin architecture works.
Please note that events (hooks) have not been added throughout the esoTalk code yet.
In gamma, skins are very similar to plugins in that they are plugins—just a special type of plugins. Technically speaking, a skin can do anything that a plugin can do. However, for consistency's sake, a skin should only really ever add stylesheets to the controller via the
Separate from the default skin, Proto, esoTalk includes a base stylesheet and images in the
skins/base/ directory. Any skin can include this stylesheet and then define additional styles in its own stylesheet to make it unique. This means that skins won't be affected by esoTalk software updates which add or change interfaces. For an example of how this works, see the Proto skin.
Again, there is currently no documentation on skin development, but I'll be working on it soon.
Languages are structured similarly to how they were in the old version, but there are too many definition additions/removals to list so it won't be possible to directly use an old language pack in gamma.
Language packs can also contain separate definition files which are specific to plugins, and automatically included if the plugin is loaded. For an example of this, see the definition files in