houdini/Houdini/Plugins/__init__.py

34 lines
718 B
Python

from abc import ABC
from abc import abstractmethod
class IPlugin(ABC):
"""
Plugin interface which all plugins *must* implement.
"""
@property
@abstractmethod
def author(self):
"""The plugin's author which is usually a nickname and an e-mail address."""
@property
@abstractmethod
def version(self):
"""The version of the plugin."""
@property
@abstractmethod
def description(self):
"""Short summary of the plugin's intended purpose."""
@abstractmethod
async def ready(self):
"""
Called when the plugin is ready to function.
"""
@abstractmethod
def __init__(self, server):
self.server = server