aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar shtlrs <[email protected]>2024-02-18 20:00:25 +0100
committerGravatar shtlrs <[email protected]>2024-03-18 11:37:57 +0100
commit0f8d49428a0e048b9b460f235fbe36d6be10d05f (patch)
tree14bbaa5b5fd75d286900922a004e37c8a8f43155
parentsubclass CommandTree (diff)
expose a way for registering the command error manager
The manager instance needs to be bound "late" due to the bot since error handlers might need an instance of bot to work
-rw-r--r--pydis_core/_bot.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/pydis_core/_bot.py b/pydis_core/_bot.py
index 08dca6a4..783715dd 100644
--- a/pydis_core/_bot.py
+++ b/pydis_core/_bot.py
@@ -95,9 +95,11 @@ class BotBase(commands.Bot):
super().__init__(
*args,
allowed_roles=allowed_roles,
+ tree_cls=CommandTreeBase,
**kwargs,
)
+ self.command_error_manager: CommandErrorManager | None = None
self.guild_id = guild_id
self.http_session = http_session
self.api_client = api_client
@@ -119,6 +121,16 @@ class BotBase(commands.Bot):
self.all_extensions: frozenset[str] | None = None
+ def register_command_error_manager(self, manager: CommandErrorManager) -> None:
+ """
+ Bind an instance of the command error manager to both the bot and the command tree.
+
+ The reason this doesn't happen in the constructor is because error handlers might need an instance of the bot.
+ So registration needs to happen once the bot instance has been created.
+ """
+ self.command_error_manager = manager
+ self.tree.command_error_manager = manager
+
def _connect_statsd(
self,
statsd_url: str,