Plugin fields and lifecycle methods
The Plugin base class has various lifecycle methods and properties that may be
useful for plugins.
Fields
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 aiohttpUrlDispatcherfor the plugin (see the HTTP handlers) page.webapp_url- If the HTTP handlers are enabled, the public base URL where the endpoints are exposed.
Methods
register_handler_class(object)- Register another object where handlers are read from (see the Handlers page).
Lifecycle methods
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 callself.config.load_and_update().