如何在单个命令中将角色与通道关联?如何获取角色id



我有一个命令,根据用户传递的参数创建一个通道和一个角色。我很难以只有创建的角色才能访问创建的频道的方式覆盖权限。

如何从角色名称中获取角色id?这可以解决问题。我试过使用utils.get,但我不知道如何真正使用这个函数。。。

这是我的代码:

@bot.command() 
@commands.has_permissions(administrator=True)
async def salon_create(ctx, arg):   
guild = ctx.guild
role = await guild.create_role(name=arg)
print(role)
cat=ctx.channel.category 
role=discord.utils.get(guild.roles, name=arg)
print(role)
roles = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
#guild.get_role(role): discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel(name=arg, overwrites=roles, category=cat)

create_role返回它创建的Role对象,您可以直接使用它:

@bot.command() 
@commands.has_permissions(administrator=True)
async def salon_create(ctx, arg):   
guild = ctx.guild
role = await guild.create_role(name=arg)
cat=ctx.channel.category 
roles = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
role: discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel(name=arg, overwrites=roles, category=cat)

最新更新