如何将不和谐的机器人命令限制为机器人所有者或管理员权限?

时间:2020-11-01 22:48:35

标签: python discord discord.py

好吧,所以我有一个机器人,我在写的每个命令上@commands.has_permissions(administrator = True),但是现在我想在dm中执行一些命令,但是当我这样做时,该机器人会抛出一个错误并说我不这样做。没有管理员权限。我可以将行更改为@commands.is_owner(),但是只有我能做到,所以我尝试同时使用两者,但仍然对我有用。我到处搜寻,但一无所获。所以我的问题是...我怎样告诉机器人响应管理员 或我自己(所有者)?

这是我停止的测试功能。

@bot.command(name="ping")                                           
@commands.has_permissions(administrator = True)
async def ping(ctx):
    await ctx.channel.send("pong")

1 个答案:

答案 0 :(得分:0)

@bot.command(name="ping")                                           
async def ping(ctx):
    user = ctx.author
    if await bot.is_owner(user):
       await ctx.channel.send("pong")
       return
    roles = user.roles
    for role in roles:
        if role.Permissions.administrator:
           await ctx.channel.send("pong")
           return