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 aiohttpUrlDispatcher
for 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()
.