Plugin base class has various lifecycle methods and properties that may be
useful for plugins.
client- The mautrix client instance for the bot, can be used to make arbitrary Matrix API requests.
http- An aiohttp client instance, can be used to make arbitrary HTTP requests.
id- The ID of the plugin instance.
log- A logger for the plugin instance.
loop- The asyncio event loop.
loader- The class used to load the plugin files. Can be used to read arbitrary files from the plugin's .mbp archive.
config- If the config is enabled, the data from the config (see the Configuration page).
database- If the database is enabled, the database engine (see the Database page).
webapp- If the HTTP handlers are enabled, the aiohttp
UrlDispatcherfor the plugin (see the HTTP handlers) page.
webapp_url- If the HTTP handlers are enabled, the public base URL where the endpoints are exposed.
register_handler_class(object)- Register another object where handlers are read from (see the Handlers page).
These are methods that the plugin itself can override.
async def start()- Called when the plugin instance is starting.
async def stop()- Called when the plugin instance is stopping.
async def pre_start()- Called when the plugin instance is starting, before the handlers of the main class are registered.
async def pre_stop()- Called when the plugin instance is stopping, before any handlers are unregistered.
def get_config_class() -> Type[Config]- When the plugin has config, this must return the class used for parsing and updating the config.
def on_external_config_update()- Called when the plugin instance's config is updated from the API. By default, this will call