diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index 918ecc2ec..4845cfff2 100644 --- a/discord/ext/commands/core.py +++ b/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) diff --git a/docs/ext/commands/api.rst b/docs/ext/commands/api.rst index 5fb782e38..048d93896 100644 --- a/docs/ext/commands/api.rst +++ b/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)