Browse Source

[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.
pull/1164/merge
Rapptz 7 years ago
parent
commit
e12db3a25d
  1. 15
      discord/ext/commands/bot.py

15
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:

Loading…
Cancel
Save