From e12db3a25d62265ed1db71080fe39acec909abdd Mon Sep 17 00:00:00 2001 From: Rapptz Date: Thu, 11 Oct 2018 02:52:07 -0400 Subject: [PATCH] [commands] Add call_once keyword-only parameter for Bot.remove_check Technically a breaking change. This is to be a parallel with the Bot.add_check interface. --- discord/ext/commands/bot.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/discord/ext/commands/bot.py b/discord/ext/commands/bot.py index 15999455b..c9ce299ed 100644 --- a/discord/ext/commands/bot.py +++ b/discord/ext/commands/bot.py @@ -281,7 +281,7 @@ class BotBase(GroupMixin): else: self._checks.append(func) - def remove_check(self, func): + def remove_check(self, func, *, call_once=False): """Removes a global check from the bot. This function is idempotent and will not raise an exception @@ -291,15 +291,16 @@ class BotBase(GroupMixin): ----------- func The function to remove from the global checks. + call_once: bool + If the function was added with ``call_once=True`` in + the :meth:`.Bot.add_check` call or using :meth:`.check_once`. """ + l = self._check_once if call_once else self._checks try: - self._checks.remove(func) + l.remove(func) except ValueError: - try: - self._check_once.remove(func) - except ValueError: - pass + pass def check_once(self, func): r"""A decorator that adds a "call once" global check to the bot. @@ -649,7 +650,7 @@ class BotBase(GroupMixin): except AttributeError: pass else: - self.remove_check(check) + self.remove_check(check, call_once=True) unloader_name = '_{0.__class__.__name__}__unload'.format(cog) try: