如何在discord.py中获取角色ID

时间:2020-06-07 11:14:41

标签: discord.py-rewrite

我正在创建一个createrole命令,我想显示一些有关角色的信息,例如名称,颜色和ID,但是如何获得角色ID?我尝试查看此站点,Reddit和API参考,但找不到答案。

这就是我现在拥有的:

@bot.command(name='createrole')
async def createrole(ctx, *, content):
    guild = ctx.guild
    await guild.create_role(name=content)
    role = get(ctx.guild.roles, name='content')
    roleid = role.id
    description = f'''
    **Name:** <@{roleid}>
    **Created by:** {ctx.author.mention}
    '''
    embed = discord.Embed(name='New role created', description=description)
    await ctx.send(content=None, embed=embed)

1 个答案:

答案 0 :(得分:1)

快速修复:

现在,您正在将字符串'content'传递给get函数,而不是名称为content的变量。尝试替换以下行: role = get(ctx.guild.roles, name='content')

与此:

role = get(ctx.guild.roles, name=content)

更高效,更不易出错的方式:

await guild.create_role返回创建的角色对象,这意味着您不需要按名称重新获取它,只需执行以下操作:

@bot.command(name='createrole')
async def createrole(ctx, *, content):
    guild = ctx.guild
    role = await guild.create_role(name=content)  
    roleid = role.id
    description = f'''
    **Name:** <@{roleid}>
    **Created by:** {ctx.author.mention}
    '''
    embed = discord.Embed(name='New role created', description=description)
    await ctx.send(content=None, embed=embed)