Last active
November 1, 2024 18:21
-
Star
(128)
You must be signed in to star a gist -
Fork
(10)
You must be signed in to fork a gist
-
-
Save Painezor/eb2519022cd2c907b56624105f94b190 to your computer and use it in GitHub Desktop.
Built-in Checks for the commands extension of discord py
This file contains 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.dm_only() | |
# Command can only 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. |
Is there an example as to how I could use my own function? What should the function return? Should it be true/false or a list of ID's?
@jeanravenclaw true/false yea
@FireRedz thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@Mr-ROI what is "it", are you talking about the checks, or something else?
If you're talking about the checks, simply put the check decorator before a method that is being used for a command.