Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 aiohttp UrlDispatcher 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 call self.config.load_and_update().