【问题标题】:How to give discord bot owner's permissions?如何授予不和谐机器人所有者的权限?
【发布时间】:2021-04-20 22:12:53
【问题描述】:

我正在开发一个 discord.py 机器人,没问题,我的代码运行良好,但我想知道如何授予机器人所有者的权限,他应该删除一个赋予所有高权限的角色,(所有权限位于服务器>服务器设置>角色>角色名称),所以他应该删除他的角色,但他给出了这个错误:

discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

@bot.command(name="godRemove")
async def godremover(ctx, persona, numerogod):
    channel = bot.get_channel(id=786285288469037197)
    numerogod=int(numerogod)
    if not numerogod>1:
        numerogod=1
    #hasadded=False
    #hasgod=False
    rolenumber=0
    try:
        guild=ctx.guild
        if ctx.author.name in canAddGod:
            for i in guild.members:
                if str(i)[:-5].lower().strip()==persona.lower().strip():
                    for role in i.roles:
                        #if str(role)=="God":
                            #hasgod=True
                        if representsint(str(role)):
                            rolename=str(int(str(role))-numerogod).strip().lower()
                            rolenumber=int(rolename)
                            if rolenumber>1:
                                if discord.utils.get(ctx.guild.roles, name=rolename)!=None:
                                    togiverole=discord.utils.get(guild.roles, name=rolename)
                                    await i.add_roles(togiverole)
                                    await i.remove_roles(role)
                                    #hasadded=True
                                    await channel.send(removedliteral)
                                    return
                                else:
                                    togiverole=await ctx.guild.create_role(name=str(int(str(role))+numerogod), colour=discord.Colour(0xFFFFFF))
                                    await i.add_roles(togiverole)
                                    await i.remove_roles(role)
                                    #hasadded=True
                                    await channel.send(removedliteral)
                                    return
                            elif rolenumber==0:
                                await i.remove_roles(discord.utils.get(ctx.guild.roles, name="God"))
                            else:
                                await i.remove_roles(discord.utils.get(ctx.guild.roles, name="God"))
                                await i.remove_roles(role)
    except Exception:
        traceback.print_exc()
        await channel.send(errorliteral)

代码有点乱,但是我有一段时间没有用python编写代码了,所以在这里稍微解释一下(ps,这是我想添加到我的服务器的一个有点有趣的东西,就像,每个人都是上帝,如果他们做了一些有趣的事情,我会添加上帝,如果没有,我会删除上帝,所以如果他们没有足够的上帝(

回答: 在角色列表中将应该拥有更多权限的角色移到应该“支配”的角色之上!

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions 表示由于 bot 的 权限,bot 未能执行某些操作。这与机器人所有者是分开的,后者是另一个具有独立权限的用户。

    您需要授予机器人执行您正在执行的任何操作的权限。这是在您的服务器/公会配置中完成的。

    如果您要编写只有机器人所有者才能执行的命令,Discord.py 中有一个名为 is_owner 的装饰器

    【讨论】:

    • 您好!感谢您的快速回答,很抱歉我的回复晚了,您可以将 is_owner 的文档链接给我吗?谢谢!
    • 谢谢,但这对我有什么帮助?我已经(自己)进行了检查,然后机器人应该删除该角色,只有所有者可以正常删除,我没有找到任何搜索
    • 我没有按照你当时的想法去做。你想删除什么角色?可以提供代码吗?
    • 哦,对不起,我会修改问题
    猜你喜欢
    • 2021-02-14
    • 2010-10-16
    • 2013-04-30
    • 2016-07-17
    • 1970-01-01
    • 2014-02-04
    • 2019-09-20
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多