Below is a UML diagram of the classes and Plugin API used by the plugins. The class "MyPlugin" is written by the plugin developer (you).
As seen from this image, your plugin must inherit from the class Plugin:
public class MyPlugin extends Plugin implements IEventListener {
If you want the plugin to act on some events in Opinio, then your plugin must implement the IEventListener interface. This is necessary for the plugin to receive Events from the PluginBus (more on that in the next chapter).
If your plugin will have some other functionality, then it must implement the corresponding interface. For example, to do your own login check you can write a LoginPlugin, which must implement ILogin interface.
Your plugin will inherit from the Plugin class, which is declared abstract. In the current version (6.0), there are no abstract methods, so your plugin does not have to implement any methods. This may be changed in later versions. For the plugin to do anything useful, you should override one or more of the plugin methods, like the start() and stop() methods. The included example, the ResponseNotifierPlugin, shows how to do this.
The plugin name must end with "Plugin".