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: