diff options
| author | Dan Hess <[email protected]> | 2016-09-06 15:03:47 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-09-08 07:02:33 -0400 |
| commit | b7ffbca0c781ae88e2593c5ebb2a063e7d4e2253 (patch) | |
| tree | dafbe1377d3c003571e42e7e6456edba54c3a21e /discord/ext | |
| parent | Fix gateway code to work with websockets 3.2. (diff) | |
| download | discord.py-b7ffbca0c781ae88e2593c5ebb2a063e7d4e2253.tar.xz discord.py-b7ffbca0c781ae88e2593c5ebb2a063e7d4e2253.zip | |
[commands] Added a method to reset command cooldown.
Diffstat (limited to 'discord/ext')
| -rw-r--r-- | discord/ext/commands/cooldowns.py | 5 | ||||
| -rw-r--r-- | discord/ext/commands/core.py | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/discord/ext/commands/cooldowns.py b/discord/ext/commands/cooldowns.py index 035ac809..c1aa10a7 100644 --- a/discord/ext/commands/cooldowns.py +++ b/discord/ext/commands/cooldowns.py @@ -43,6 +43,7 @@ class Cooldown: self.type = type self._window = 0.0 self._tokens = self.rate + self._last = 0.0 if not isinstance(self.type, BucketType): raise TypeError('Cooldown type must be a BucketType') @@ -72,6 +73,10 @@ class Cooldown: if self._tokens == 0: self._window = current + def reset(self): + self._tokens = self.rate + self._last = 0.0 + def copy(self): return Cooldown(self.rate, self.per, self.type) diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index b6073b76..d60d55a8 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -337,6 +337,18 @@ class Command: if retry_after: raise CommandOnCooldown(bucket, retry_after) + def reset_cooldown(self, ctx): + """Resets the cooldown on this command. + + Parameters + ----------- + ctx: :class:`Context` + The invocation context to reset the cooldown under. + """ + if self._buckets.valid: + bucket = self._buckets.get_bucket(ctx) + bucket.reset() + @asyncio.coroutine def invoke(self, ctx): ctx.command = self |