-
-
Save AwSkies/6128d89a1e842b4e802b3a077d7f98a5 to your computer and use it in GitHub Desktop.
| import discord | |
| from discord.ext import commands | |
| from discord.ext.commands.cooldowns import BucketType | |
| bot = commands.Bot(command_prefix = "your prefix here") | |
| token = 'token goes here' | |
| #on ready login message | |
| @bot.event | |
| async def on_ready(): | |
| print('Logged in as {} - {}'.format(bot.user.name, bot.user.id)) | |
| #rate: how many times the command can be used before triggering the cooldown | |
| rate = 1 | |
| #per: the amount of seconds the cooldown lasts | |
| per = 10 | |
| #type: the scope of the cooldown, go to https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.cooldown for more info | |
| t = BucketType.default | |
| #example command | |
| @bot.command( | |
| name = 'command', | |
| description = 'example description', | |
| ) | |
| #cooldown | |
| @commands.cooldown(rate, per, t) | |
| async def example_command(ctx): | |
| #put your command things here | |
| pass | |
| #whitelist: the list of IDs of people/roles/channels/things to ignore | |
| #to whitelist someone/something, add their ID to the whitelist | |
| whitelist = [123456789, 987654321] | |
| @example_command.after_invoke | |
| async def reset_cooldown(ctx): | |
| for e in whitelist: | |
| #to whitelist a person: | |
| if e == ctx.author.id: | |
| example_command.reset_cooldown(ctx) | |
| #to whitelist a channel: | |
| if e == ctx.message.channel.id: | |
| example_command.reset_cooldown(ctx) | |
| #to whitelist a guild/server: | |
| if e == ctx.message.guild.id: | |
| example_command.reset_cooldown(ctx) | |
| #to whitelist a role: | |
| if e in [role.id for role in ctx.author.roles]: | |
| example_command.reset_cooldown(ctx) | |
| bot.run(token) |
| import discord | |
| from discord.ext import commands | |
| from discord.ext.commands.cooldowns import BucketType | |
| #rate: how many times the command can be used before triggering the cooldown | |
| rate = 1 | |
| #per: the amount of seconds the cooldown lasts | |
| per = 10 | |
| #type: the scope of the cooldown, go to https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.cooldown to see what they are | |
| t = BucketType.default | |
| class MyCog(commands.Cog): | |
| def __init__(self, bot): | |
| self.bot = bot | |
| #whitelist: the list of IDs of people/roles/channels/things to ignore | |
| #to whitelist someone/something, add their ID to the whitelist | |
| self.whitelist = [123456789, 987654321] | |
| #example command | |
| @bot.command( | |
| name = 'command', | |
| description = 'example description', | |
| ) | |
| #cooldown | |
| @commands.cooldown(rate, per, t) | |
| async def example_command(self, ctx): | |
| #put your command things here | |
| pass | |
| @example_command.after_invoke | |
| async def reset_cooldown(self, ctx): | |
| for e in self.whitelist: | |
| #to whitelist a person: | |
| if e == ctx.author.id: | |
| self.example_command.reset_cooldown(ctx) | |
| #to whitelist a channel: | |
| if e == ctx.message.channel.id: | |
| self.example_command.reset_cooldown(ctx) | |
| #to whitelist a guild/server: | |
| if e == ctx.message.guild.id: | |
| self.example_command.reset_cooldown(ctx) | |
| #to whitelist a role: | |
| if e in [role.id for role in ctx.author.roles]: | |
| self.example_command.reset_cooldown(ctx) | |
| #cog setup function | |
| def setup(bot): | |
| bot.add_cog(MyCog(bot)) |
No, you can change it cogs by after defining the command, use @example_command.after_invoke and then define the function to reset the cooldown. I'm going to add a cogs example.
does the whitelist here mean that whitlisted people can bypass the cooldown or that only whitelisted people can use the command?
@MrHitMan1 it means that only whitelisted people can bypass the cooldown.
hi, @CapClumsy mine doesnt work (command not found).
i change the command_prefix to "."
it should work if i type .pass right? because i set the prefix to "." and the #put your commands here to pass
@daffanovel12 Is the name of your command pass? The name of your command is specified by the name of the function or by the name parameter in the @bot.command decorator. The keyword pass is just something used as example code to put in a command. My guess would be try using .command or .example_command. I may just be confused by your question however.
nvm, i missunderstood by the code. i thought its for bypass slowmode. sorry to bother
i used cogs how can i turn this into cogs compatible do i just add
async def reset_cooldown(self ,ctx):and the code below it to under@commands.command()