python discord.py 授权会员[已关闭]

68bkxrlz  于 2023-04-10  发布在  Python
关注(0)|答案(3)|浏览(93)

已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。

两年前关闭。
Improve this question
我写了一个禁止成员的命令,但是任何人都可以执行这个命令。我希望只有被授权的人才能使用这个命令。(原谅我在平台上还是写错了部分)

pvabu6sv

pvabu6sv1#

如果要确保只有特定人员可以执行命令,请执行以下操作:

@client.command()
@commands.has_permissions(your_permission=True)  # I'll give a list of permissions down below

或者,您可以让只有特定角色的人可以执行命令,请执行以下操作:

@client.command()
@commands.has_role('YOUR ROLE HERE')  # This will allow only people with the given role to execute the command

或者,如果您希望具有一系列角色的人员能够执行命令,则可以执行以下操作:

@client.command()
@commands.has_any_role('Role1', 'Role2', 'Role3')  # Anyone with any one or more of these roles can execute the command. You can have more than 3 roles stated, or less. If you only have one stated, then it may be better to use the way above

如上所述,我会在这里提供一个权限列表。这些是一些:

@commands.has_permissions(manage_messages=True, kick_members=True, ban_members=True)

权限通常只是您可能给予角色的权限,但要用下划线替换单词之间的空格。

6qqygrtg

6qqygrtg2#

这就是checks的作用。check是一个函数,它获取ctx作为输入,如果命令可以执行,则返回True,如果不能执行,则返回False
API文档,包含示例和如何创建和使用它们的说明:https://discordpy.readthedocs.io/en/latest/ext/commands/api.html?highlight=check#discord.ext.commands.check
如果你在不允许用户执行return的时候使用它,那么在顶部也可以使用if-statement

nwo49xxi

nwo49xxi3#

@client.command():下,请输入以下代码:
@commands.has_permissions(ban_members=True)
这将确保只有具有ban_members权限的用户才能执行该命令。

相关问题