Browse Source

[commands] fix BucketType.default bypassing dynamic_cooldown

pull/7971/head
Mikey 3 years ago
committed by GitHub
parent
commit
165e14063f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      discord/ext/commands/core.py
  2. 2
      docs/ext/commands/api.rst

5
discord/ext/commands/core.py

@ -2315,7 +2315,7 @@ def cooldown(
def dynamic_cooldown(
cooldown: Union[BucketType, Callable[[Message], Any]],
type: BucketType = BucketType.default,
type: BucketType,
) -> Callable[[T], T]:
"""A decorator that adds a dynamic cooldown to a :class:`.Command`
@ -2348,6 +2348,9 @@ def dynamic_cooldown(
if not callable(cooldown):
raise TypeError("A callable must be provided")
if type is BucketType.default:
raise ValueError('BucketType.default cannot be used in dynamic cooldowns')
def decorator(func: Union[Command, CoroFunc]) -> Union[Command, CoroFunc]:
if isinstance(func, Command):
func._buckets = DynamicCooldownMapping(cooldown, type)

2
docs/ext/commands/api.rst

@ -356,7 +356,7 @@ Checks
.. autofunction:: discord.ext.commands.cooldown(rate, per, type=discord.ext.commands.BucketType.default)
:decorator:
.. autofunction:: discord.ext.commands.dynamic_cooldown(cooldown, type=BucketType.default)
.. autofunction:: discord.ext.commands.dynamic_cooldown(cooldown, type)
:decorator:
.. autofunction:: discord.ext.commands.max_concurrency(number, per=discord.ext.commands.BucketType.default, *, wait=False)

Loading…
Cancel
Save