小编Eup*_*ony的帖子

权限检查 Discord.py Bot

我工作的基本适度其中做了不和谐的机器人kickbanmute至少现在。但问题是其他成员也可以使用它。我只想要几个可以使用它的指定角色。

不想根据@role两者进行工作,因为不同服务器上的角色名称不相同。还希望保持机器人尽可能简单。

现在,我开始是这样的:

@client.command(name='ban')
async def mod_ban(member: discord.User):
    try:
        await client.ban(member, delete_message_days=0)
        await client.say('**{0}** has been banned.'.format(str(member)))
    except Exception as error:
        await client.say(error)
Run Code Online (Sandbox Code Playgroud)

但是任何成员都可以使用这些命令。因此,尝试遵循这个 = Discord.py Bot 的权限系统并最终得到以下结果:

@client.command(name='ban')
async def mod_ban(context, member: discord.User):
    if context.message.author.server_premission.administrator:
        try:
            await client.ban(member, delete_message_days=0)
            await client.say('**{0}** has been banned.'.format(str(member)))
        except Exception as error:
            await client.say(error)
    else:
        await client.say('Looks like you don\'t have the perm.')
Run Code Online (Sandbox Code Playgroud)

这让我遇到了这个错误:;-;

raise MissingRequiredArgument('{0.name} is a required argument that is missing.'.format(param))
discord.ext.commands.errors.MissingRequiredArgument: …
Run Code Online (Sandbox Code Playgroud)

python python-3.x discord discord.py

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

discord ×1

discord.py ×1

python ×1

python-3.x ×1