Python 3.x 如何使一个不和谐的机器人从一个特定的等级只接受一个命令

Python 3.x 如何使一个不和谐的机器人从一个特定的等级只接受一个命令,python-3.x,discord,discord.py,Python 3.x,Discord,Discord.py,我的服务器上已经有了一个使用python的discord机器人,任何人都可以加入我的服务器并使用这个机器人,但我只希望我们的mods角色能够使用特定的命令。因此,如果有人刚进入服务器,他们不能使用一个命令来显示一组只有mod才能看到的信息,但可以使用一个命令来播放一些琐事或其他信息。您可以通过上下文访问消息作者的角色 以下是一个例子: async def command_for_mods(ctx, further_arguments): if "moderator"

我的服务器上已经有了一个使用python的discord机器人,任何人都可以加入我的服务器并使用这个机器人,但我只希望我们的mods角色能够使用特定的命令。因此,如果有人刚进入服务器,他们不能使用一个命令来显示一组只有mod才能看到的信息,但可以使用一个命令来播放一些琐事或其他信息。

您可以通过上下文访问消息作者的角色

以下是一个例子:

async def command_for_mods(ctx, further_arguments):
    if "moderator" in [i.name.lower() for i in ctx.author.roles]:
        # Do things only moderators can do
    else:
        # Tell the user they don't have the moderator role or pass
如果有任何错误,请告诉我,因为我可能不准确。

您可以使用decorator@has\u权限

有多个权限,您可以在上看到它们。所有@property都可以用作权限

import discord
from discord.ext.commands import has_permission

@bot.command(pass_context=True)
@has_permission(administrator=True)
async def some_command(ctx):
    # something to do.