-
-
Save Nanofaux/2f2ed6a183d2f8204eba29502d48a080 to your computer and use it in GitHub Desktop.
Built-in Checks for the commands extension of discord py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@commands.guild_only() | |
# Command cannot be used in private messages. | |
@commands.is_owner() | |
# Command can only be used by the bot owner. | |
@commands.is_nsfw() | |
# Command can only be used in NSFW channels | |
@commands.has_role("name") | |
# Check if member has a role with the name "name" | |
@commands.bot_has_role(11132312313213) | |
# As above, but for the bot itself. (name can be replaced with id) | |
@commands.has_any_role("role1","foo",11132312313213) | |
# Check if user has any of the roles with the names "role1", "foo", or the role with id 11132312313213 | |
@commands.bot_has_any_role(*roles) | |
# As above, but for the bot itself | |
@commands.has_permissions(ban_members=True, kick_members=True) | |
# Check if user has all of the passed permissions | |
# e.g. this command will require both kick and ban permissions | |
@commands.bot_has_permissions(**perms) | |
# As above, but for the bot itself. | |
@commands.has_guild_permissions(**perms) | |
@commands.bot_has_guild_permissions(**perms) | |
# As for the two above, but for guild permissions rather than channel permissions. | |
@commands.check(myfunction) | |
# Check against your own function that returns those able to use your command | |
@commands.check_any(*myfunctions) | |
# Command will be ran if the conditions of any of your own check functions are met | |
from discord.ext.commands.cooldowns import BucketType | |
# BucketType can be BucketType.default, member, user, guild, role, or channel | |
@commands.cooldown(rate,per,BucketType) | |
# Limit how often a command can be used, (num per, seconds, BucketType) | |
@commands.max_concurrency(number, per=BucketType.default, *, wait=False) | |
# Limit how many instances of the command can be running at the same time. | |
# Setting wait=True will queue up additional commands. False will raise MaxConcurrencyReached | |
# Checks can be stacked, and will Raise a CheckFailure if any check fails. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment