在 discord.py 中,如何使用 guild.create_role()?

Posted

技术标签:

【中文标题】在 discord.py 中,如何使用 guild.create_role()?【英文标题】:In discord.py, how do you use guild.create_role()? 【发布时间】:2021-04-25 11:09:03 【问题描述】:

考虑代码

@CLIENT.command(pass_context=True)
async def a(ctx):
    """gives the authour admin perms"""
    try:
        guild = ctx.guild
        await guild.create_role(name="admin", permissions=discord.Permissions(8), colour=discord.Colour(0xff0000))
        authour = ctx.message.author
        role = discord.utils.get(user.server.roles, name="admin")
        await authour.add_roles(role)
    except:
        print("something went wrong (A)")

当我尝试这个命令时,代码会在 guild.create_role() 上永远等待

为什么会这样?为了使此代码正常工作,我可以进行哪些更改?

谢谢!

【问题讨论】:

老实说,我很难过。我查看了discord.py API reference,但找不到任何东西。您完全确定问题出在guild.create_role() 上吗? user.server.roles 应该是authour.guild.roles 【参考方案1】:

我看到的一个具体问题是使用.server,它已在重写中更改为.guild,而user 未定义

您可以将新角色分配给变量,因此您不需要获取角色

@CLIENT.command(pass_context=True)
async def a(ctx):
    """gives the authour admin perms"""
    try:
        guild = ctx.guild
        role = await guild.create_role(name="admin", permissions=discord.Permissions(8), colour=discord.Colour(0xff0000))
        authour = ctx.message.author
        await authour.add_roles(role)
    except:
        print("something went wrong (A)")

【讨论】:

以上是关于在 discord.py 中,如何使用 guild.create_role()?的主要内容,如果未能解决你的问题,请参考以下文章

为 discord.py 使用 pytz 时区

如何通过用户名-discord.py获得用户权限?

discord py,ctx.guild.members,只返回bot

如何使用 discord.py 创建和分配角色?

如何从 .json 文件 discord.py 中获取信息

如何使用 discord.py 获取所有文本频道?