我正在创建一个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)
答案 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)